mirror of
https://github.com/kata-containers/kata-containers.git
synced 2026-07-26 15:55:24 +00:00
runtime-rs: Propagate queue_num and queue_size to network endpoints
Set queue_num (derived from net_pair.queues, one TX + one RX per queue pair) and queue_size (256) when building the network pair for veth, macvlan, ipvlan and vlan endpoints so the virtio-net device is created with the configured multi-queue layout. Meanwhile, update endpoint tests accordingly. Signed-off-by: Alex Lyn <alex.lyn@antgroup.com>
This commit is contained in:
@@ -119,6 +119,7 @@ mod tests {
|
||||
},
|
||||
model: Arc::new(TcFilterModel::new().unwrap()), // impossible to panic
|
||||
network_qos: false,
|
||||
network_queues: 5,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -159,6 +160,7 @@ mod tests {
|
||||
_ => unreachable!(),
|
||||
}
|
||||
assert_eq!(manual.net_pair.network_qos, result.net_pair.network_qos);
|
||||
assert_eq!(manual.net_pair.network_queues, result.net_pair.network_queues);
|
||||
}
|
||||
assert!(delete_link(&handle, manual_vlan_iface_name.as_str())
|
||||
.await
|
||||
@@ -250,6 +252,7 @@ mod tests {
|
||||
model: network_model::new(model_str)
|
||||
.expect("failed to create new network model"),
|
||||
network_qos: false,
|
||||
network_queues: 5,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -291,6 +294,7 @@ mod tests {
|
||||
_ => unreachable!(),
|
||||
}
|
||||
assert_eq!(manual.net_pair.network_qos, result.net_pair.network_qos);
|
||||
assert_eq!(manual.net_pair.network_queues, result.net_pair.network_queues);
|
||||
}
|
||||
// delete the manually created links
|
||||
assert!(delete_link(&handle, manual_macvlan_iface_name.as_str())
|
||||
@@ -333,7 +337,8 @@ mod tests {
|
||||
.await
|
||||
.context("failed to create manual veth pair")
|
||||
{
|
||||
if let Ok(mut result) = IPVlanEndpoint::new(&d, &handle, "", idx, 5)
|
||||
// Test with 0 and fallback default behaviour with 1
|
||||
if let Ok(mut result) = IPVlanEndpoint::new(&d, &handle, "", idx, 0)
|
||||
.await
|
||||
.context("failed to create new ipvlan endpoint")
|
||||
{
|
||||
@@ -355,6 +360,7 @@ mod tests {
|
||||
},
|
||||
model: Arc::new(TcFilterModel::new().unwrap()), // impossible to panic
|
||||
network_qos: false,
|
||||
network_queues: 1,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -395,6 +401,7 @@ mod tests {
|
||||
_ => unreachable!(),
|
||||
}
|
||||
assert_eq!(manual.net_pair.network_qos, result.net_pair.network_qos);
|
||||
assert_eq!(manual.net_pair.network_queues, result.net_pair.network_queues);
|
||||
}
|
||||
assert!(delete_link(&handle, manual_virt_iface_name.as_str())
|
||||
.await
|
||||
|
||||
@@ -58,6 +58,8 @@ impl IPVlanEndpoint {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
guest_mac: Some(guest_mac),
|
||||
queue_num: self.net_pair.network_queues,
|
||||
queue_size: 256,
|
||||
..Default::default()
|
||||
})
|
||||
}
|
||||
|
||||
@@ -57,6 +57,8 @@ impl MacVlanEndpoint {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
guest_mac: Some(guest_mac),
|
||||
queue_num: self.net_pair.network_queues,
|
||||
queue_size: 256,
|
||||
..Default::default()
|
||||
})
|
||||
}
|
||||
|
||||
@@ -57,6 +57,8 @@ impl VethEndpoint {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
guest_mac: Some(guest_mac),
|
||||
queue_num: self.net_pair.network_queues,
|
||||
queue_size: 256,
|
||||
..Default::default()
|
||||
})
|
||||
}
|
||||
|
||||
@@ -57,6 +57,8 @@ impl VlanEndpoint {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
guest_mac: Some(guest_mac),
|
||||
queue_num: self.net_pair.network_queues,
|
||||
queue_size: 256,
|
||||
..Default::default()
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user