diff options
Diffstat (limited to 'resources')
-rw-r--r-- | resources/libraries/python/DpdkUtil.py | 47 | ||||
-rw-r--r-- | resources/libraries/python/IPv4Setup.py | 6 | ||||
-rw-r--r-- | resources/libraries/python/Routing.py | 3 | ||||
-rw-r--r-- | resources/libraries/python/VatExecutor.py | 2 | ||||
-rw-r--r-- | resources/libraries/python/topology.py | 2 |
5 files changed, 44 insertions, 16 deletions
diff --git a/resources/libraries/python/DpdkUtil.py b/resources/libraries/python/DpdkUtil.py index 3e379b06d9..79e7209364 100644 --- a/resources/libraries/python/DpdkUtil.py +++ b/resources/libraries/python/DpdkUtil.py @@ -20,14 +20,13 @@ class DpdkUtil(object): """Utilities for DPDK.""" @staticmethod - def dpdk_testpmd_start(node, **args): - """Start DPDK testpmd app on VM node. + def get_eal_options(**args): + """Create EAL parameters string. - :param node: VM Node to start testpmd on. :param args: List of testpmd parameters. - :type node: dict :type args: dict - :return: nothing + :returns: EAL parameters string. + :rtype: str """ # Set the hexadecimal bitmask of the cores to run on. eal_coremask = '-c {} '.format(args['eal_coremask'])\ @@ -42,6 +41,23 @@ class DpdkUtil(object): if args.get('eal_socket_mem', '') else '' # Load an external driver. Multiple -d options are allowed. eal_driver = '-d /usr/lib/librte_pmd_virtio.so ' + eal_options = '-v '\ + + eal_coremask\ + + eal_master_core\ + + eal_mem_channels\ + + eal_socket_mem\ + + eal_driver + return eal_options + + @staticmethod + def get_pmd_options(**args): + """Create PMD parameters string. + + :param args: List of testpmd parameters. + :type args: dict + :returns: PMD parameters string. + :rtype: str + """ # Set the forwarding mode: io, mac, mac_retry, mac_swap, flowgen, # rxonly, txonly, csum, icmpecho, ieee1588 pmd_fwd_mode = '--forward-mode={} '.format(args['pmd_fwd_mode'])\ @@ -83,12 +99,6 @@ class DpdkUtil(object): pmd_nb_cores = '--nb-cores={} '.format(\ bin(int(args['eal_coremask'], 0)).count('1')-1)\ if args.get('eal_coremask', '') else '' - eal_options = '-v '\ - + eal_coremask\ - + eal_master_core\ - + eal_mem_channels\ - + eal_socket_mem\ - + eal_driver pmd_options = '-- '\ + pmd_fwd_mode\ + pmd_burst\ @@ -104,6 +114,21 @@ class DpdkUtil(object): + pmd_eth_peer_0\ + pmd_eth_peer_1\ + pmd_nb_cores + return pmd_options + + @staticmethod + def dpdk_testpmd_start(node, **args): + """Start DPDK testpmd app on VM node. + + :param node: VM Node to start testpmd on. + :param args: List of testpmd parameters. + :type node: dict + :type args: dict + :return: nothing + """ + eal_options = DpdkUtil.get_eal_options(**args) + pmd_options = DpdkUtil.get_pmd_options(**args) + ssh = SSH() ssh.connect(node) cmd = "/start-testpmd.sh {0} {1}".format(eal_options, pmd_options) diff --git a/resources/libraries/python/IPv4Setup.py b/resources/libraries/python/IPv4Setup.py index 7129e67231..36dc6050a1 100644 --- a/resources/libraries/python/IPv4Setup.py +++ b/resources/libraries/python/IPv4Setup.py @@ -60,17 +60,19 @@ class IPv4Node(object): pass @abstractmethod - def set_route(self, network, prefix_length, gateway, interface): + def set_route(self, network, prefix_length, gateway, interface, count=1): """Configure IPv4 route. :param network: Network IPv4 address. :param prefix_length: IPv4 prefix length. :param gateway: IPv4 address of the gateway. :param interface: Interface name. + :param count: Number of consecutive routes to add. :type network: str :type prefix_length: int :type gateway: str :type interface: str + :type route: int :returns: nothing """ pass @@ -146,7 +148,7 @@ class Tg(IPv4Node): interface) self._sudo_execute(cmd) - def set_route(self, network, prefix_length, gateway, interface): + def set_route(self, network, prefix_length, gateway, interface, count=1): netmask = self._get_netmask(prefix_length) cmd = 'route add -net {} netmask {} gw {}'.\ format(network, netmask, gateway) diff --git a/resources/libraries/python/Routing.py b/resources/libraries/python/Routing.py index f72d211a6b..b4771d6224 100644 --- a/resources/libraries/python/Routing.py +++ b/resources/libraries/python/Routing.py @@ -59,7 +59,8 @@ class Routing(object): if interface: if use_sw_index: int_cmd = ('sw_if_index {}'. - format(Topology.get_interface_sw_index(node, interface))) + format(Topology.get_interface_sw_index(node, + interface))) else: int_cmd = interface else: diff --git a/resources/libraries/python/VatExecutor.py b/resources/libraries/python/VatExecutor.py index 841bd0c6cb..febfe9fa57 100644 --- a/resources/libraries/python/VatExecutor.py +++ b/resources/libraries/python/VatExecutor.py @@ -318,7 +318,7 @@ class VatTerminal(object): 'sudo -S {0}{1}'.format(Constants.VAT_BIN_NAME, json_text), self.__VAT_PROMPT) except Exception: - continue + continue else: break else: diff --git a/resources/libraries/python/topology.py b/resources/libraries/python/topology.py index a5a446008b..94652dbd23 100644 --- a/resources/libraries/python/topology.py +++ b/resources/libraries/python/topology.py @@ -136,7 +136,7 @@ class Topology(object): :type nodes: dict :returns: Nothing """ - port_types = ('subinterface', 'vlan_subif', 'memif', 'tap', 'vhost', + port_types = ('subinterface', 'vlan_subif', 'memif', 'tap', 'vhost', 'loopback', 'gre_tunnel', 'vxlan_tunnel') for node_data in nodes.values(): |