From 2aa95a88109a96e24ea4329364a2ecc07fe575fd Mon Sep 17 00:00:00 2001 From: Sanjay Upadhyay Date: Mon, 22 May 2017 16:41:09 +0530 Subject: Configure multi-queue value for DPDK Port The multi-queue option for DPDK is applied via ovs-vsctl command via ovs_extra params. This patch adds support for configuring the rx_queue (multi-queue) value to the DPDK Ports. Change-Id: Ib9faad5e9d49f78e3a0b45ef3ae0082f3e9d14a6 Co-Authored-By: Karthik S implements: blueprint ovs-2-6-features-dpdk --- os_net_config/tests/test_impl_ifcfg.py | 45 ++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) (limited to 'os_net_config/tests') diff --git a/os_net_config/tests/test_impl_ifcfg.py b/os_net_config/tests/test_impl_ifcfg.py index 9ff2bd6..92e14d3 100644 --- a/os_net_config/tests/test_impl_ifcfg.py +++ b/os_net_config/tests/test_impl_ifcfg.py @@ -884,9 +884,48 @@ DNS2=5.6.7.8 nic_mapping = {'nic1': 'eth0', 'nic2': 'eth1', 'nic3': 'eth2'} self.stubbed_mapped_nics = nic_mapping + interface = objects.Interface(name='nic3') + dpdk_port = objects.OvsDpdkPort(name='dpdk0', members=[interface]) + bridge = objects.OvsUserBridge('br-link', members=[dpdk_port]) + + def test_bind_dpdk_interfaces(ifname, driver, noop): + self.assertEqual(ifname, 'eth2') + self.assertEqual(driver, 'vfio-pci') + self.stubs.Set(utils, 'bind_dpdk_interfaces', + test_bind_dpdk_interfaces) + + self.provider.add_ovs_dpdk_port(dpdk_port) + self.provider.add_ovs_user_bridge(bridge) + br_link_config = """# This file is autogenerated by os-net-config +DEVICE=br-link +ONBOOT=yes +HOTPLUG=no +NM_CONTROLLED=no +PEERDNS=no +DEVICETYPE=ovs +TYPE=OVSUserBridge +""" + dpdk0_config = """# This file is autogenerated by os-net-config +DEVICE=dpdk0 +ONBOOT=yes +HOTPLUG=no +NM_CONTROLLED=no +PEERDNS=no +DEVICETYPE=ovs +TYPE=OVSDPDKPort +OVS_BRIDGE=br-link +""" + self.assertEqual(br_link_config, + self.provider.bridge_data['br-link']) + self.assertEqual(dpdk0_config, self.get_interface_config('dpdk0')) + + def test_network_ovs_dpdk_bridge_and_port_with_mtu_rxqueue(self): + nic_mapping = {'nic1': 'eth0', 'nic2': 'eth1', 'nic3': 'eth2'} + self.stubbed_mapped_nics = nic_mapping + interface = objects.Interface(name='nic3') dpdk_port = objects.OvsDpdkPort(name='dpdk0', members=[interface], - mtu=9000) + mtu=9000, rx_queue=4) bridge = objects.OvsUserBridge('br-link', members=[dpdk_port]) def test_bind_dpdk_interfaces(ifname, driver, noop): @@ -915,8 +954,10 @@ PEERDNS=no DEVICETYPE=ovs TYPE=OVSDPDKPort OVS_BRIDGE=br-link +RX_QUEUE=4 MTU=9000 -OVS_EXTRA="set Interface $DEVICE mtu_request=$MTU" +OVS_EXTRA="set Interface $DEVICE mtu_request=$MTU \ +-- set Interface $DEVICE options:n_rxq=$RX_QUEUE" """ self.assertEqual(br_link_config, self.provider.bridge_data['br-link']) -- cgit 1.2.3-korg