virtcontainers: hypervisor: Add capability regarding multiqueue support

Each hypervisor is different and supports different options regarding
the network interface it creates. In particular, the multiqueue option
is not supported by Firecracker and should not be assumed by default.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
This commit is contained in:
Sebastien Boeuf 2018-12-14 15:11:44 -08:00
parent 0bcd221fad
commit a227ab852a
4 changed files with 17 additions and 0 deletions

View File

@ -8,6 +8,7 @@ package virtcontainers
const ( const (
blockDeviceSupport = 1 << iota blockDeviceSupport = 1 << iota
blockDeviceHotplugSupport blockDeviceHotplugSupport
multiQueueSupport
) )
type capabilities struct { type capabilities struct {
@ -35,3 +36,14 @@ func (caps *capabilities) isBlockDeviceHotplugSupported() bool {
func (caps *capabilities) setBlockDeviceHotplugSupport() { func (caps *capabilities) setBlockDeviceHotplugSupport() {
caps.flags |= blockDeviceHotplugSupport caps.flags |= blockDeviceHotplugSupport
} }
func (caps *capabilities) isMultiQueueSupported() bool {
if caps.flags&multiQueueSupport != 0 {
return true
}
return false
}
func (caps *capabilities) setMultiQueueSupport() {
caps.flags |= multiQueueSupport
}

View File

@ -108,6 +108,8 @@ func (q *qemuAmd64) capabilities() capabilities {
caps.setBlockDeviceHotplugSupport() caps.setBlockDeviceHotplugSupport()
} }
caps.setMultiQueueSupport()
return caps return caps
} }

View File

@ -237,6 +237,7 @@ func (q *qemuArchBase) kernelParameters(debug bool) []Param {
func (q *qemuArchBase) capabilities() capabilities { func (q *qemuArchBase) capabilities() capabilities {
var caps capabilities var caps capabilities
caps.setBlockDeviceHotplugSupport() caps.setBlockDeviceHotplugSupport()
caps.setMultiQueueSupport()
return caps return caps
} }

View File

@ -94,6 +94,8 @@ func (q *qemuPPC64le) capabilities() capabilities {
caps.setBlockDeviceHotplugSupport() caps.setBlockDeviceHotplugSupport()
} }
caps.setMultiQueueSupport()
return caps return caps
} }