mirror of
				https://github.com/kata-containers/kata-containers.git
				synced 2025-10-31 09:26:52 +00:00 
			
		
		
		
	clh: Add hotplug support for network devices
This is needed in order to have Moby / Docker working properly with Cloud Hypervisor, as Moby / Docker relies on hotplugging a network device to the VM as a preStartHook. Fixes: #5997 Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
This commit is contained in:
		| @@ -886,6 +886,15 @@ func (clh *cloudHypervisor) hotPlugVFIODevice(device *config.VFIODev) error { | |||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (clh *cloudHypervisor) hotplugAddNetDevice(e Endpoint) error { | ||||||
|  | 	err := clh.addNet(e) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return clh.vmAddNetPut() | ||||||
|  | } | ||||||
|  |  | ||||||
| func (clh *cloudHypervisor) HotplugAddDevice(ctx context.Context, devInfo interface{}, devType DeviceType) (interface{}, error) { | func (clh *cloudHypervisor) HotplugAddDevice(ctx context.Context, devInfo interface{}, devType DeviceType) (interface{}, error) { | ||||||
| 	span, _ := katatrace.Trace(ctx, clh.Logger(), "HotplugAddDevice", clhTracingTags, map[string]string{"sandbox_id": clh.id}) | 	span, _ := katatrace.Trace(ctx, clh.Logger(), "HotplugAddDevice", clhTracingTags, map[string]string{"sandbox_id": clh.id}) | ||||||
| 	defer span.End() | 	defer span.End() | ||||||
| @@ -897,6 +906,9 @@ func (clh *cloudHypervisor) HotplugAddDevice(ctx context.Context, devInfo interf | |||||||
| 	case VfioDev: | 	case VfioDev: | ||||||
| 		device := devInfo.(*config.VFIODev) | 		device := devInfo.(*config.VFIODev) | ||||||
| 		return nil, clh.hotPlugVFIODevice(device) | 		return nil, clh.hotPlugVFIODevice(device) | ||||||
|  | 	case NetDev: | ||||||
|  | 		device := devInfo.(Endpoint) | ||||||
|  | 		return nil, clh.hotplugAddNetDevice(device) | ||||||
| 	default: | 	default: | ||||||
| 		return nil, fmt.Errorf("cannot hotplug device: unsupported device type '%v'", devType) | 		return nil, fmt.Errorf("cannot hotplug device: unsupported device type '%v'", devType) | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user