mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-29 04:04:45 +00:00
dragonball: Convert VirtioNetDeviceMgr function to method
Convert VirtioNetDeviceMgr::insert_device and VirtioNetDeviceMgr::update_device_ratelimiters to method. Fixes: #6880 Signed-off-by: Shuaiyi Zhang <zhang_syi@qq.com>
This commit is contained in:
parent
4659facb74
commit
c477ac551f
@ -549,7 +549,9 @@ impl VmmService {
|
||||
}
|
||||
})?;
|
||||
|
||||
VirtioNetDeviceMgr::insert_device(vm.device_manager_mut(), ctx, config)
|
||||
vm.device_manager_mut()
|
||||
.virtio_net_manager
|
||||
.insert_device(ctx, config)
|
||||
.map(|_| VmmData::Empty)
|
||||
.map_err(VmmActionError::VirtioNet)
|
||||
}
|
||||
@ -562,7 +564,9 @@ impl VmmService {
|
||||
) -> VmmRequestResult {
|
||||
let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
|
||||
|
||||
VirtioNetDeviceMgr::update_device_ratelimiters(vm.device_manager_mut(), config)
|
||||
vm.device_manager_mut()
|
||||
.virtio_net_manager
|
||||
.update_device_ratelimiters(config)
|
||||
.map(|_| VmmData::Empty)
|
||||
.map_err(VmmActionError::VirtioNet)
|
||||
}
|
||||
|
@ -223,7 +223,7 @@ impl VirtioNetDeviceMgr {
|
||||
|
||||
/// Insert or update a virtio net device into the manager.
|
||||
pub fn insert_device(
|
||||
device_mgr: &mut DeviceManager,
|
||||
&mut self,
|
||||
mut ctx: DeviceOpContext,
|
||||
config: VirtioNetDeviceConfigInfo,
|
||||
) -> std::result::Result<(), VirtioNetDeviceError> {
|
||||
@ -234,8 +234,6 @@ impl VirtioNetDeviceMgr {
|
||||
return Err(VirtioNetDeviceError::UpdateNotAllowedPostBoot);
|
||||
}
|
||||
|
||||
let mgr = &mut device_mgr.virtio_net_manager;
|
||||
|
||||
slog::info!(
|
||||
ctx.logger(),
|
||||
"add virtio-net device configuration";
|
||||
@ -244,7 +242,7 @@ impl VirtioNetDeviceMgr {
|
||||
"host_dev_name" => &config.host_dev_name,
|
||||
);
|
||||
|
||||
let device_index = mgr.info_list.insert_or_update(&config)?;
|
||||
let device_index = self.info_list.insert_or_update(&config)?;
|
||||
|
||||
if ctx.is_hotplug {
|
||||
slog::info!(
|
||||
@ -260,17 +258,17 @@ impl VirtioNetDeviceMgr {
|
||||
let dev = DeviceManager::create_mmio_virtio_device(
|
||||
device,
|
||||
&mut ctx,
|
||||
config.use_shared_irq.unwrap_or(mgr.use_shared_irq),
|
||||
config.use_shared_irq.unwrap_or(self.use_shared_irq),
|
||||
config.use_generic_irq.unwrap_or(USE_GENERIC_IRQ),
|
||||
)
|
||||
.map_err(VirtioNetDeviceError::DeviceManager)?;
|
||||
ctx.insert_hotplug_mmio_device(&dev, None)
|
||||
.map_err(VirtioNetDeviceError::DeviceManager)?;
|
||||
// live-upgrade need save/restore device from info.device.
|
||||
mgr.info_list[device_index].set_device(dev);
|
||||
self.info_list[device_index].set_device(dev);
|
||||
}
|
||||
Err(e) => {
|
||||
mgr.info_list.remove(device_index);
|
||||
self.info_list.remove(device_index);
|
||||
return Err(VirtioNetDeviceError::Virtio(e));
|
||||
}
|
||||
}
|
||||
@ -281,16 +279,15 @@ impl VirtioNetDeviceMgr {
|
||||
|
||||
/// Update the ratelimiter settings of a virtio net device.
|
||||
pub fn update_device_ratelimiters(
|
||||
device_mgr: &mut DeviceManager,
|
||||
&mut self,
|
||||
new_cfg: VirtioNetDeviceConfigUpdateInfo,
|
||||
) -> std::result::Result<(), VirtioNetDeviceError> {
|
||||
let mgr = &mut device_mgr.virtio_net_manager;
|
||||
match mgr.get_index_of_iface_id(&new_cfg.iface_id) {
|
||||
match self.get_index_of_iface_id(&new_cfg.iface_id) {
|
||||
Some(index) => {
|
||||
let config = &mut mgr.info_list[index].config;
|
||||
let config = &mut self.info_list[index].config;
|
||||
config.rx_rate_limiter = new_cfg.rx_rate_limiter.clone();
|
||||
config.tx_rate_limiter = new_cfg.tx_rate_limiter.clone();
|
||||
let device = mgr.info_list[index].device.as_mut().ok_or_else(|| {
|
||||
let device = self.info_list[index].device.as_mut().ok_or_else(|| {
|
||||
VirtioNetDeviceError::InvalidIfaceId(new_cfg.iface_id.clone())
|
||||
})?;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user