class VIFVHostUser(VIFBase): """A vhostuser-style VIF. vhostuser-style VIFs utilize a userspace vhost backend, which allows traffic to traverse between the guest and a host userspace application (commonly a virtual switch), bypassing the kernel network stack. Contrast this with :class:`~os_vif.objects.vif.VIFBridge`, where all packets must be handled by the hypervisor. For libvirt drivers, this maps to type='vhostuser' """ # Version 1.0: Initial release # Version 1.1: Added 'vif_name' VERSION = '1.1' fields = { #: Name of the vhostuser port to create. 'vif_name': fields.StringField(), #: UNIX socket path. 'path': fields.StringField(), #: UNIX socket access permissions. 'mode': osv_fields.VIFVHostUserModeField(), } def obj_make_compatible(self, primitive, target_version): target_version = versionutils.convert_version_to_tuple(target_version) if target_version < (1, 1) and 'vif_name' in primitive: del primitive['vif_name'] super(VIFVHostUser, self).obj_make_compatible(primitive, '1.0')
class VIFVHostUser(VIFBase): # For libvirt drivers, this maps to type='vhostuser' VERSION = '1.0' fields = { # UNIX socket path 'path': fields.StringField(), # UNIX socket access permissions 'mode': osv_fields.VIFVHostUserModeField(), }
class VIFVHostUser(VIFBase): # For libvirt drivers, this maps to type='vhostuser' VERSION = '1.1' fields = { # Name of the vhostuser port to create 'vif_name': fields.StringField(), # UNIX socket path 'path': fields.StringField(), # UNIX socket access permissions 'mode': osv_fields.VIFVHostUserModeField(), } def obj_make_compatible(self, primitive, target_version): super(VIFVHostUser, self).obj_make_compatible(primitive, target_version) target_version = versionutils.convert_version_to_tuple(target_version) if target_version < (1, 1) and 'vif_name' in primitive: del primitive['vif_name']