+++ /dev/null
-[eswitch]
-# (StrOpt) Type of Network Interface to allocate for VM:
-# mlnx_direct or hostdev according to libvirt terminology
-# vnic_type = mlnx_direct
VIF_TYPE_802_QBH = '802.1qbh'
VIF_TYPE_HYPERV = 'hyperv'
VIF_TYPE_MIDONET = 'midonet'
-VIF_TYPE_MLNX_DIRECT = 'mlnx_direct'
VIF_TYPE_MLNX_HOSTDEV = 'hostdev'
VIF_TYPE_HW_VEB = 'hw_veb'
VIF_TYPE_VROUTER = 'vrouter'
VIF_TYPES = [VIF_TYPE_UNBOUND, VIF_TYPE_BINDING_FAILED, VIF_TYPE_OVS,
VIF_TYPE_IVS, VIF_TYPE_BRIDGE, VIF_TYPE_802_QBG,
VIF_TYPE_802_QBH, VIF_TYPE_HYPERV, VIF_TYPE_MIDONET,
- VIF_TYPE_MLNX_DIRECT, VIF_TYPE_MLNX_HOSTDEV, VIF_TYPE_HW_VEB,
+ VIF_TYPE_MLNX_HOSTDEV, VIF_TYPE_HW_VEB,
VIF_TYPE_DVS, VIF_TYPE_OTHER, VIF_TYPE_DISTRIBUTED,
VIF_TYPE_VROUTER]
+++ /dev/null
-# Copyright (c) 2014 OpenStack Foundation
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from oslo_config import cfg
-
-from neutron.extensions import portbindings
-
-eswitch_opts = [
- cfg.StrOpt('vnic_type',
- default=portbindings.VIF_TYPE_MLNX_DIRECT,
- help=_("Type of VM network interface: mlnx_direct or "
- "hostdev")),
-]
-
-
-cfg.CONF.register_opts(eswitch_opts, "ESWITCH")
# See the License for the specific language governing permissions and
# limitations under the License.
-from networking_mlnx.plugins.ml2.drivers.mlnx import constants
-from oslo_config import cfg
from oslo_log import log
from neutron.common import constants as n_const
from neutron.plugins.common import constants as p_constants
from neutron.plugins.ml2 import driver_api as api
from neutron.plugins.ml2.drivers import mech_agent
-from neutron.plugins.ml2.drivers.mlnx import config # noqa
LOG = log.getLogger(__name__)
def __init__(self):
# REVISIT(irenab): update supported_vnic_types to contain
- # only VNIC_DIRECT and VNIC_MACVTAP once its possible to specify
+ # only VNIC_DIRECT once its possible to specify
# vnic_type via nova API/GUI. Currently VNIC_NORMAL is included
# to enable VM creation via GUI. It should be noted, that if
- # several MDs are capable to bing bind port on chosen host, the
- # first listed MD will bind the port for VNIC_NORMAL.
+ # several MDs are capable to bring bind port on chosen host, the
+ # first listed MD will bind the port for VNIC_NORMAL
super(MlnxMechanismDriver, self).__init__(
- n_const.AGENT_TYPE_MLNX,
- cfg.CONF.ESWITCH.vnic_type,
- {portbindings.CAP_PORT_FILTER: False},
- portbindings.VNIC_TYPES)
+ agent_type=n_const.AGENT_TYPE_MLNX,
+ vif_type=portbindings.VIF_TYPE_MLNX_HOSTDEV,
+ vif_details={portbindings.CAP_PORT_FILTER: False},
+ supported_vnic_types=[portbindings.VNIC_DIRECT,
+ portbindings.VNIC_NORMAL])
def get_allowed_network_types(self, agent=None):
return [p_constants.TYPE_LOCAL, p_constants.TYPE_FLAT,
def try_to_bind_segment_for_agent(self, context, segment, agent):
if self.check_segment_for_agent(segment, agent):
- vif_type = constants.VNIC_TO_VIF_MAPPING.get(
- context.current[portbindings.VNIC_TYPE], self.vif_type)
if (segment[api.NETWORK_TYPE] in
(p_constants.TYPE_FLAT, p_constants.TYPE_VLAN)):
self.vif_details['physical_network'] = segment[
'physical_network']
context.set_binding(segment[api.ID],
- vif_type,
+ self.vif_type,
self.vif_details)
class MlnxMechanismBaseTestCase(base.AgentMechanismBaseTestCase):
- VIF_TYPE = portbindings.VIF_TYPE_MLNX_DIRECT
+ VIF_TYPE = portbindings.VIF_TYPE_MLNX_HOSTDEV
CAP_PORT_FILTER = False
AGENT_TYPE = constants.AGENT_TYPE_MLNX
super(MlnxMechanismBaseTestCase, self).setUp()
self.driver = mech_mlnx.MlnxMechanismDriver()
self.driver.initialize()
- m_const_mock.constants.VNIC_TO_VIF_MAPPING.get.return_value = (
- self.driver.vif_type)
class MlnxMechanismGenericTestCase(MlnxMechanismBaseTestCase,
self.assertEqual(expected_vif_type, context._bound_vif_type)
def test_vnic_type_direct(self):
- m_const_mock.constants.VNIC_TO_VIF_MAPPING.get.return_value = (
- portbindings.VIF_TYPE_MLNX_HOSTDEV)
self._check_vif_type_for_vnic_type(portbindings.VNIC_DIRECT,
portbindings.VIF_TYPE_MLNX_HOSTDEV)
- def test_vnic_type_macvtap(self):
- m_const_mock.constants.VNIC_TO_VIF_MAPPING.get.return_value = (
- portbindings.VIF_TYPE_MLNX_DIRECT)
-
- self._check_vif_type_for_vnic_type(portbindings.VNIC_MACVTAP,
- portbindings.VIF_TYPE_MLNX_DIRECT)
-
def test_vnic_type_normal(self):
self._check_vif_type_for_vnic_type(portbindings.VNIC_NORMAL,
self.VIF_TYPE)
etc/neutron/plugins/ml2/ml2_conf_brocade.ini
etc/neutron/plugins/ml2/ml2_conf_brocade_fi_ni.ini
etc/neutron/plugins/ml2/ml2_conf_cisco.ini
- etc/neutron/plugins/ml2/ml2_conf_mlnx.ini
etc/neutron/plugins/ml2/ml2_conf_ncs.ini
etc/neutron/plugins/ml2/ml2_conf_ofa.ini
etc/neutron/plugins/ml2/ml2_conf_fslsdn.ini