Merge pull request #4727 from openanolis/anolis-fix-network

fix network failed for kata ci
This commit is contained in:
Peng Tao 2022-07-26 15:10:55 +08:00 committed by GitHub
commit 129335714b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 7 deletions

View File

@ -163,7 +163,7 @@ fn generate_route(name: &str, route: &RouteMessage) -> Result<Option<Route>> {
Ok(Some(Route {
dest: route
.destination_prefix()
.map(|(addr, _)| addr.to_string())
.map(|(addr, prefix)| format!("{}/{}", addr, prefix))
.unwrap_or_default(),
gateway: route.gateway().map(|v| v.to_string()).unwrap_or_default(),
device: name.to_string(),

View File

@ -20,6 +20,7 @@ impl TcFilterModel {
Ok(Self {})
}
}
#[async_trait]
impl NetworkModel for TcFilterModel {
fn model_type(&self) -> NetworkModelType {
@ -60,22 +61,25 @@ impl NetworkModel for TcFilterModel {
handle
.traffic_filter(tap_index as i32)
.add()
.protocol(0x0003)
.egress()
.parent(0xffff0000)
// get protocol with network byte order
.protocol(0x0003_u16.to_be())
.redirect(virt_index)
.execute()
.await
.context("add tap egress")?;
.context("add redirect for tap")?;
handle
.traffic_filter(virt_index as i32)
.add()
.protocol(0x0003)
.egress()
.parent(0xffff0000)
// get protocol with network byte order
.protocol(0x0003_u16.to_be())
.redirect(tap_index)
.execute()
.await
.context("add virt egress")?;
.context("add redirect for virt")?;
Ok(())
}