mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-18 23:04:20 +01:00
runtime-rs: Network config distinguishes backends
Network backends determine the virtio dataplane implementations. Common protocols include virtio-net, vhost-net and vhost-user-net, etc. Network config has a new field named `backend` to specify which protocol to use. Signed-off-by: Xuewei Niu <niuxuewei.nxw@antgroup.com>
This commit is contained in:
@@ -19,7 +19,7 @@ use hypervisor::{
|
||||
driver::NetworkConfig,
|
||||
DeviceConfig, DeviceType,
|
||||
},
|
||||
Hypervisor, NetworkDevice,
|
||||
Hypervisor, NetworkBackend, NetworkDevice, VirtioConfig,
|
||||
};
|
||||
|
||||
use super::{
|
||||
@@ -64,8 +64,11 @@ impl IPVlanEndpoint {
|
||||
})?;
|
||||
|
||||
Ok(NetworkConfig {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
backend: NetworkBackend::Virtio(VirtioConfig {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
..Default::default()
|
||||
}),
|
||||
guest_mac: Some(guest_mac),
|
||||
..Default::default()
|
||||
})
|
||||
|
||||
@@ -19,7 +19,7 @@ use hypervisor::{
|
||||
driver::NetworkConfig,
|
||||
DeviceConfig, DeviceType,
|
||||
},
|
||||
Hypervisor, NetworkDevice,
|
||||
Hypervisor, NetworkBackend, NetworkDevice, VirtioConfig,
|
||||
};
|
||||
|
||||
use super::{
|
||||
@@ -63,8 +63,11 @@ impl MacVlanEndpoint {
|
||||
})?;
|
||||
|
||||
Ok(NetworkConfig {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
backend: NetworkBackend::Virtio(VirtioConfig {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
..Default::default()
|
||||
}),
|
||||
guest_mac: Some(guest_mac),
|
||||
..Default::default()
|
||||
})
|
||||
|
||||
@@ -10,7 +10,7 @@ use anyhow::{Context, Result};
|
||||
use async_trait::async_trait;
|
||||
use hypervisor::device::device_manager::{do_handle_device, DeviceManager};
|
||||
use hypervisor::device::{DeviceConfig, DeviceType};
|
||||
use hypervisor::{Hypervisor, NetworkConfig, NetworkDevice};
|
||||
use hypervisor::{Hypervisor, NetworkBackend, NetworkConfig, NetworkDevice, VirtioConfig};
|
||||
use tokio::sync::RwLock;
|
||||
|
||||
use super::endpoint_persist::TapEndpointState;
|
||||
@@ -74,8 +74,11 @@ impl TapEndpoint {
|
||||
fn get_network_config(&self) -> Result<NetworkConfig> {
|
||||
let guest_mac = utils::parse_mac(&self.guest_mac).context("Parse mac address")?;
|
||||
Ok(NetworkConfig {
|
||||
host_dev_name: self.tap_iface.name.clone(),
|
||||
virt_iface_name: self.name.clone(),
|
||||
backend: NetworkBackend::Virtio(VirtioConfig {
|
||||
host_dev_name: self.tap_iface.name.clone(),
|
||||
virt_iface_name: self.name.clone(),
|
||||
..Default::default()
|
||||
}),
|
||||
guest_mac: Some(guest_mac),
|
||||
queue_num: self.queue_num,
|
||||
queue_size: self.queue_size,
|
||||
|
||||
@@ -19,7 +19,7 @@ use hypervisor::{
|
||||
driver::NetworkConfig,
|
||||
DeviceConfig, DeviceType,
|
||||
},
|
||||
Hypervisor, NetworkDevice,
|
||||
Hypervisor, NetworkBackend, NetworkDevice, VirtioConfig,
|
||||
};
|
||||
|
||||
use super::{
|
||||
@@ -63,8 +63,11 @@ impl VethEndpoint {
|
||||
})?;
|
||||
|
||||
Ok(NetworkConfig {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
backend: NetworkBackend::Virtio(VirtioConfig {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
..Default::default()
|
||||
}),
|
||||
guest_mac: Some(guest_mac),
|
||||
..Default::default()
|
||||
})
|
||||
|
||||
@@ -19,7 +19,7 @@ use hypervisor::{
|
||||
driver::NetworkConfig,
|
||||
DeviceConfig, DeviceType,
|
||||
},
|
||||
Hypervisor, NetworkDevice,
|
||||
Hypervisor, NetworkBackend, NetworkDevice, VirtioConfig,
|
||||
};
|
||||
|
||||
use super::{
|
||||
@@ -62,8 +62,11 @@ impl VlanEndpoint {
|
||||
})?;
|
||||
|
||||
Ok(NetworkConfig {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
backend: NetworkBackend::Virtio(VirtioConfig {
|
||||
host_dev_name: iface.name.clone(),
|
||||
virt_iface_name: self.net_pair.virt_iface.name.clone(),
|
||||
..Default::default()
|
||||
}),
|
||||
guest_mac: Some(guest_mac),
|
||||
..Default::default()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user