예제 #1
0
    def __init__(self,
                 agent_type=constants.AGENT_TYPE_NIC_SWITCH,
                 vif_details={portbindings.CAP_PORT_FILTER: False},
                 supported_vnic_types=[
                     portbindings.VNIC_DIRECT, portbindings.VNIC_MACVTAP,
                     portbindings.VNIC_DIRECT_PHYSICAL
                 ]):
        """Initialize base class for SriovNicSwitch L2 agent type.

        :param agent_type: Constant identifying agent type in agents_db
        :param vif_details: Dictionary with details for VIF driver when bound
        :param supported_vnic_types: The binding:vnic_type values we can bind
        """
        self.agent_type = agent_type

        # TODO(lajoskatona): move this blacklisting to
        # SimpleAgentMechanismDriverBase. By that e blacklisting and validation
        # of the vnic_types would be available for all mechanism drivers.
        self.supported_vnic_types = self.blacklist_supported_vnic_types(
            vnic_types=supported_vnic_types,
            blacklist=cfg.CONF.SRIOV_DRIVER.vnic_type_blacklist)

        # NOTE(ndipanov): PF passthrough requires a different vif type
        self.vnic_type_for_vif_type = ({
            vtype: portbindings.VIF_TYPE_HOSTDEV_PHY
            if vtype == portbindings.VNIC_DIRECT_PHYSICAL else
            portbindings.VIF_TYPE_HW_VEB
            for vtype in self.supported_vnic_types
        })
        self.vif_details = vif_details
        sriov_qos_driver.register()
예제 #2
0
    def __init__(self,
                 agent_type=constants.AGENT_TYPE_NIC_SWITCH,
                 vif_details={portbindings.CAP_PORT_FILTER: False},
                 supported_vnic_types=[portbindings.VNIC_DIRECT,
                                       portbindings.VNIC_MACVTAP,
                                       portbindings.VNIC_DIRECT_PHYSICAL]):
        """Initialize base class for SriovNicSwitch L2 agent type.

        :param agent_type: Constant identifying agent type in agents_db
        :param vif_details: Dictionary with details for VIF driver when bound
        :param supported_vnic_types: The binding:vnic_type values we can bind
        """
        self.agent_type = agent_type

        # TODO(lajoskatona): move this blacklisting to
        # SimpleAgentMechanismDriverBase. By that e blacklisting and validation
        # of the vnic_types would be available for all mechanism drivers.
        self.supported_vnic_types = self.blacklist_supported_vnic_types(
            vnic_types=supported_vnic_types,
            blacklist=cfg.CONF.SRIOV_DRIVER.vnic_type_blacklist
        )

        # NOTE(ndipanov): PF passthrough requires a different vif type
        self.vnic_type_for_vif_type = (
            {vtype: portbindings.VIF_TYPE_HOSTDEV_PHY
                if vtype == portbindings.VNIC_DIRECT_PHYSICAL
                else portbindings.VIF_TYPE_HW_VEB
             for vtype in self.supported_vnic_types})
        self.vif_details = vif_details
        sriov_qos_driver.register()
예제 #3
0
    def __init__(self):
        """Initialize base class for SriovNicSwitch L2 agent type.

        :param agent_type: Constant identifying agent type in agents_db
        :param vif_details: Dictionary with details for VIF driver when bound
        :param supported_vnic_types: The binding:vnic_type values we can bind
        """
        agent_type = constants.AGENT_TYPE_NIC_SWITCH
        vif_details = {
            portbindings.CAP_PORT_FILTER: False,
            portbindings.VIF_DETAILS_CONNECTIVITY: portbindings.CONNECTIVITY_L2
        }
        supported_vnic_types = SRIOV_SUPPORTED_VNIC_TYPES
        prohibit_list = cfg.CONF.SRIOV_DRIVER.vnic_type_prohibit_list
        super().__init__(agent_type,
                         None,
                         vif_details,
                         supported_vnic_types=supported_vnic_types,
                         vnic_type_prohibit_list=prohibit_list)

        # NOTE(ndipanov): PF passthrough requires a different vif type
        self.vnic_type_for_vif_type = ({
            vtype: portbindings.VIF_TYPE_HOSTDEV_PHY
            if vtype == portbindings.VNIC_DIRECT_PHYSICAL else
            portbindings.VIF_TYPE_HW_VEB
            for vtype in self.supported_vnic_types
        })
        self.vif_details = vif_details
        sriov_qos_driver.register()
예제 #4
0
    def __init__(self,
                 agent_type=constants.AGENT_TYPE_NIC_SWITCH,
                 vif_details={portbindings.CAP_PORT_FILTER: False},
                 supported_vnic_types=[portbindings.VNIC_DIRECT,
                                       portbindings.VNIC_MACVTAP,
                                       portbindings.VNIC_DIRECT_PHYSICAL]):
        """Initialize base class for SriovNicSwitch L2 agent type.

        :param agent_type: Constant identifying agent type in agents_db
        :param vif_details: Dictionary with details for VIF driver when bound
        :param supported_vnic_types: The binding:vnic_type values we can bind
        """
        self.agent_type = agent_type
        self.supported_vnic_types = supported_vnic_types
        # NOTE(ndipanov): PF passthrough requires a different vif type
        self.vnic_type_for_vif_type = (
            {vtype: portbindings.VIF_TYPE_HOSTDEV_PHY
                if vtype == portbindings.VNIC_DIRECT_PHYSICAL
                else portbindings.VIF_TYPE_HW_VEB
             for vtype in self.supported_vnic_types})
        self.vif_details = vif_details
        sriov_qos_driver.register()
예제 #5
0
    def __init__(self,
                 agent_type=constants.AGENT_TYPE_NIC_SWITCH,
                 vif_details={portbindings.CAP_PORT_FILTER: False},
                 supported_vnic_types=[portbindings.VNIC_DIRECT,
                                       portbindings.VNIC_MACVTAP,
                                       portbindings.VNIC_DIRECT_PHYSICAL]):
        """Initialize base class for SriovNicSwitch L2 agent type.

        :param agent_type: Constant identifying agent type in agents_db
        :param vif_details: Dictionary with details for VIF driver when bound
        :param supported_vnic_types: The binding:vnic_type values we can bind
        """
        self.agent_type = agent_type
        self.supported_vnic_types = supported_vnic_types
        # NOTE(ndipanov): PF passthrough requires a different vif type
        self.vnic_type_for_vif_type = (
            {vtype: portbindings.VIF_TYPE_HOSTDEV_PHY
                if vtype == portbindings.VNIC_DIRECT_PHYSICAL
                else portbindings.VIF_TYPE_HW_VEB
             for vtype in self.supported_vnic_types})
        self.vif_details = vif_details
        sriov_qos_driver.register()