Added driver option for Contrail DPDK
With x710 NICs Contrail can make use of vfio driver. uio_pci_generic is still default. Change-Id: I23b173ea86d8f109da4059a3d3a1df6806e213be
This commit is contained in:
parent
04b9cb114f
commit
0b8cd76dbd
|
@ -8,7 +8,8 @@
|
|||
"name": "em3"
|
||||
}
|
||||
],
|
||||
"mtu": 1500
|
||||
"mtu": 1500,
|
||||
"driver": "vfio"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -7,3 +7,4 @@ network_config:
|
|||
type: interface
|
||||
name: em3
|
||||
mtu: 1500
|
||||
driver: vfio #default driver is uio_pci_generic
|
||||
|
|
|
@ -722,6 +722,7 @@ class IfcfgNetConfig(os_net_config.NetConfig):
|
|||
if len(contrail_vrouter_dpdk.members) > 1:
|
||||
data += "BOND_MODE=%s\n" % contrail_vrouter_dpdk.bond_mode
|
||||
data += "BOND_POLICY=%s\n" % contrail_vrouter_dpdk.bond_policy
|
||||
data += "DRIVER=%s\n" % contrail_vrouter_dpdk.driver
|
||||
data += "CPU_LIST=%s\n" % contrail_vrouter_dpdk.cpu_list
|
||||
if contrail_vrouter_dpdk.vlan_id:
|
||||
data += "VLAN_ID=%s\n" % contrail_vrouter_dpdk.vlan_id
|
||||
|
|
|
@ -1279,7 +1279,7 @@ class ContrailVrouterDpdk(_BaseOpts):
|
|||
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||
dns_servers=None, nm_controlled=False, onboot=True,
|
||||
members=None, bond_mode=None, bond_policy=None,
|
||||
cpu_list='0-31', vlan_id=None):
|
||||
driver=None, cpu_list='0-31', vlan_id=None):
|
||||
addresses = addresses or []
|
||||
|
||||
super(ContrailVrouterDpdk, self).__init__(name, use_dhcp, use_dhcpv6,
|
||||
|
@ -1292,6 +1292,7 @@ class ContrailVrouterDpdk(_BaseOpts):
|
|||
self.members = members or []
|
||||
self.bond_mode = bond_mode
|
||||
self.bond_policy = bond_policy
|
||||
self.driver = driver or 'uio_pci_generic'
|
||||
self.cpu_list = cpu_list
|
||||
self.vlan_id = vlan_id
|
||||
|
||||
|
@ -1300,6 +1301,7 @@ class ContrailVrouterDpdk(_BaseOpts):
|
|||
name = _get_required_field(json, 'name', 'ContrailVrouterDpdk')
|
||||
bond_mode = json.get('bond_mode', '')
|
||||
bond_policy = json.get('bond_policy', '')
|
||||
driver = json.get('driver', 'uio_pci_generic')
|
||||
cpu_list = json.get('cpu_list', '0-31')
|
||||
vlan_id = json.get('vlan_id', '')
|
||||
|
||||
|
@ -1310,5 +1312,5 @@ class ContrailVrouterDpdk(_BaseOpts):
|
|||
|
||||
return ContrailVrouterDpdk(name, *opts, members=members,
|
||||
bond_mode=bond_mode,
|
||||
bond_policy=bond_policy,
|
||||
bond_policy=bond_policy, driver=driver,
|
||||
cpu_list=cpu_list, vlan_id=vlan_id)
|
||||
|
|
|
@ -731,6 +731,8 @@ definitions:
|
|||
oneOf:
|
||||
- $ref: "#/definitions/string_or_param"
|
||||
- $ref: "#/definitions/int_or_param"
|
||||
driver:
|
||||
$ref: "#/definitions/string_or_param"
|
||||
coremask:
|
||||
$ref: "#/definitions/string_or_param"
|
||||
vlan_id:
|
||||
|
|
|
@ -420,6 +420,24 @@ NETMASK=255.255.255.0
|
|||
DEVICETYPE=vhost
|
||||
TYPE=dpdk
|
||||
BIND_INT=0000:00:03.0
|
||||
DRIVER=uio_pci_generic
|
||||
CPU_LIST=0-31
|
||||
"""
|
||||
|
||||
_CONTRAIL_VROUTER_DPDK_IFACE_CUST_DRIVER = """# This file is autogenerated by \
|
||||
os-net-config
|
||||
DEVICE=vhost0
|
||||
HOTPLUG=no
|
||||
ONBOOT=yes
|
||||
NM_CONTROLLED=no
|
||||
PEERDNS=no
|
||||
BOOTPROTO=static
|
||||
IPADDR=10.0.0.30
|
||||
NETMASK=255.255.255.0
|
||||
DEVICETYPE=vhost
|
||||
TYPE=dpdk
|
||||
BIND_INT=0000:00:03.0
|
||||
DRIVER=vfio
|
||||
CPU_LIST=0-31
|
||||
"""
|
||||
|
||||
|
@ -438,6 +456,7 @@ TYPE=dpdk
|
|||
BIND_INT=0000:00:03.0,0000:00:01.0
|
||||
BOND_MODE=2
|
||||
BOND_POLICY=802.3ad
|
||||
DRIVER=uio_pci_generic
|
||||
CPU_LIST=2,3
|
||||
"""
|
||||
|
||||
|
@ -816,6 +835,20 @@ class TestIfcfgNetConfig(base.TestCase):
|
|||
self.provider.interface_data['vhost0'])
|
||||
self.assertEqual('', self.get_route_config('vhost0'))
|
||||
|
||||
def test_add_contrail_vrouter_dpdk_interface_cust_driver(self):
|
||||
addresses = [objects.Address('10.0.0.30/24')]
|
||||
interface1 = objects.Interface('em3')
|
||||
self.stubs.Set(utils, 'get_stored_pci_address',
|
||||
self.stub_get_stored_pci_address)
|
||||
cvi = objects.ContrailVrouterDpdk('vhost0', addresses=addresses,
|
||||
members=[interface1], driver='vfio')
|
||||
self.provider.noop = True
|
||||
self.provider.add_contrail_vrouter_dpdk(cvi)
|
||||
self.assertEqual(
|
||||
_CONTRAIL_VROUTER_DPDK_IFACE_CUST_DRIVER,
|
||||
self.provider.interface_data['vhost0'])
|
||||
self.assertEqual('', self.get_route_config('vhost0'))
|
||||
|
||||
def test_add_contrail_vrouter_dpdk_interface_nic_mapping(self):
|
||||
nic_mapping = {'nic1': 'em3'}
|
||||
self.stubbed_mapped_nics = nic_mapping
|
||||
|
|
Loading…
Reference in New Issue