Example #1
0
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')
Example #2
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(),
    }
Example #3
0
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']