diff options
author | Karthik S <ksundara@redhat.com> | 2017-05-30 07:21:52 -0400 |
---|---|---|
committer | Karthik S <ksundara@redhat.com> | 2017-05-31 02:42:55 -0400 |
commit | cc7ff987cae3452a28f85ca3cabef49a3a64a2ff (patch) | |
tree | 9b3f1799c54486ca81f1179010d71ef1cbb3891a /os_net_config | |
parent | e7e81ac01122dd1b7711116d583a69fb655e0bca (diff) |
MTU setting for OVSDpdkBond
This patch allows the MTU setting for DPDK bonds. In case of DPDK
bonds, the MTU setting needs to be done for each of the interfaces
attached to the bond.
Change-Id: Ida627313d14a674430b2aff3644fd62b2e0bcab7
Implements: blueprint ovs-2-6-features-dpdk
Signed-off-by: Karthik S <ksundara@redhat.com>
Diffstat (limited to 'os_net_config')
-rw-r--r-- | os_net_config/impl_ifcfg.py | 6 | ||||
-rw-r--r-- | os_net_config/tests/test_impl_ifcfg.py | 38 |
2 files changed, 44 insertions, 0 deletions
diff --git a/os_net_config/impl_ifcfg.py b/os_net_config/impl_ifcfg.py index 6f35688..18de8fc 100644 --- a/os_net_config/impl_ifcfg.py +++ b/os_net_config/impl_ifcfg.py @@ -316,6 +316,12 @@ class IfcfgNetConfig(os_net_config.NetConfig): if base_opt.members: members = [member.name for member in base_opt.members] data += ("BOND_IFACES=\"%s\"\n" % " ".join(members)) + # MTU configuration given for the OvsDpdkbond shall be applied + # to each of the members of the OvsDpdkbond + if base_opt.mtu: + for member in base_opt.members: + ovs_extra.append("set Interface %s mtu_request=$MTU" % + member.name) if base_opt.ovs_options: data += "OVS_OPTIONS=\"%s\"\n" % base_opt.ovs_options ovs_extra.extend(base_opt.ovs_extra) diff --git a/os_net_config/tests/test_impl_ifcfg.py b/os_net_config/tests/test_impl_ifcfg.py index 9ff2bd6..0e5eca2 100644 --- a/os_net_config/tests/test_impl_ifcfg.py +++ b/os_net_config/tests/test_impl_ifcfg.py @@ -956,6 +956,44 @@ BOND_IFACES="dpdk0 dpdk1" self.assertEqual(dpdk_bond_config, self.get_interface_config('dpdkbond0')) + def test_network_ovs_dpdk_bond_with_mtu(self): + nic_mapping = {'nic1': 'eth0', 'nic2': 'eth1', 'nic3': 'eth2'} + self.stubbed_mapped_nics = nic_mapping + + iface0 = objects.Interface(name='nic2') + dpdk0 = objects.OvsDpdkPort(name='dpdk0', members=[iface0]) + iface1 = objects.Interface(name='nic3') + dpdk1 = objects.OvsDpdkPort(name='dpdk1', members=[iface1]) + bond = objects.OvsDpdkBond('dpdkbond0', mtu=9000, + members=[dpdk0, dpdk1]) + bridge = objects.OvsUserBridge('br-link', members=[bond]) + + def test_bind_dpdk_interfaces(ifname, driver, noop): + self.assertIn(ifname, ['eth1', 'eth2']) + self.assertEqual(driver, 'vfio-pci') + self.stubs.Set(utils, 'bind_dpdk_interfaces', + test_bind_dpdk_interfaces) + + self.provider.add_ovs_dpdk_bond(bond) + self.provider.add_ovs_user_bridge(bridge) + + dpdk_bond_config = """# This file is autogenerated by os-net-config +DEVICE=dpdkbond0 +ONBOOT=yes +HOTPLUG=no +NM_CONTROLLED=no +PEERDNS=no +DEVICETYPE=ovs +TYPE=OVSDPDKBond +OVS_BRIDGE=br-link +BOND_IFACES="dpdk0 dpdk1" +MTU=9000 +OVS_EXTRA="set Interface dpdk0 mtu_request=$MTU \ +-- set Interface dpdk1 mtu_request=$MTU" +""" + self.assertEqual(dpdk_bond_config, + self.get_interface_config('dpdkbond0')) + class TestIfcfgNetConfigApply(base.TestCase): |