diff options
Diffstat (limited to 'resources/libraries/python')
-rw-r--r-- | resources/libraries/python/TrafficGenerator.py | 49 | ||||
-rw-r--r-- | resources/libraries/python/VatExecutor.py | 2 | ||||
-rw-r--r-- | resources/libraries/python/constants.py | 2 | ||||
-rw-r--r-- | resources/libraries/python/ssh.py | 2 | ||||
-rw-r--r-- | resources/libraries/python/topology.py | 2 |
5 files changed, 18 insertions, 39 deletions
diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py index 24bec0af6c..2037d49bc2 100644 --- a/resources/libraries/python/TrafficGenerator.py +++ b/resources/libraries/python/TrafficGenerator.py @@ -11,14 +11,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Traffic generator library.""" +"""Performance testing traffic generator library.""" from robot.api import logger from resources.libraries.python.ssh import SSH from resources.libraries.python.topology import NodeType from resources.libraries.python.topology import NodeSubTypeTG -from resources.libraries.python.topology import Topology __all__ = ['TrafficGenerator'] @@ -43,6 +42,8 @@ class TrafficGenerator(object): :return: nothing """ + trex_path = "/opt/trex-core-1.91" + if node['type'] != NodeType.TG: raise Exception('Node type is not a TG') if node['subtype'] == NodeSubTypeTG.TREX: @@ -50,11 +51,14 @@ class TrafficGenerator(object): ssh.connect(node) (ret, stdout, stderr) = ssh.exec_command( - "sh -c 'cd /opt/trex-core-1.88/scripts/ && " - "--bind=igb_uio {0} {1}".format(interface1, interface2)) + "sh -c 'cd {0}/scripts/ && sudo modprobe uio && " + "sudo insmod ./ko/src/igb_uio.ko'"\ + .format(trex_path)) + (ret, stdout, stderr) = ssh.exec_command( - "sh -c 'cd /opt/trex-core-1.88/scripts/ && " - "sudo nohup ./t-rex-64 -i -c 4 --iom 0 > /dev/null 2>&1 &'") + "sh -c 'cd {0}/scripts/ && " + "sudo nohup ./t-rex-64 -i -c 4 --iom 0 > /dev/null 2>&1 &'"\ + .format(trex_path)) @staticmethod def teardown_traffic_generator(node): @@ -101,55 +105,30 @@ class TrafficGenerator(object): ssh = SSH() ssh.connect(node) - tg_port3_src_mac = Topology.get_interface_mac_by_port_key(node, "port3") - _, adj_int = Topology.\ - get_adjacent_node_and_interface_by_key(nodes_info, node, "port3") - tg_port3_dst_mac = adj_int['mac_address'] - - tg_port5_src_mac = Topology.get_interface_mac_by_port_key(node, "port5") - _, adj_int = Topology.\ - get_adjacent_node_and_interface_by_key(nodes_info, node, "port5") - tg_port5_dst_mac = adj_int['mac_address'] - - if node['subtype'] == NodeSubTypeTG.TREX: if traffic_type in ["3-node-xconnect", "3-node-bridge"]: (ret, stdout, stderr) = ssh.exec_command( "sh -c '/tmp/openvpp-testing/resources/tools/t-rex-stateless.py " "-d {0} -r {1}% -s {2} " - "--p1_src_mac 52:00:00:00:00:01 " - "--p1_dst_mac 52:00:00:00:00:02 " "--p1_src_start_ip 10.10.10.1 " "--p1_src_end_ip 10.10.10.254 " "--p1_dst_start_ip 20.20.20.1 " - "--p1_dst_end_ip 20.20.20.254 " - "--p2_src_mac 52:00:00:00:00:02 " - "--p2_dst_mac 52:00:00:00:00:01 " "--p2_src_start_ip 20.20.20.1 " "--p2_src_end_ip 20.20.20.254 " - "--p2_dst_start_ip 10.10.10.1 " - "--p2_dst_end_ip 10.10.10.254'".\ + "--p2_dst_start_ip 10.10.10.1'".\ format(duration, rate, framesize), timeout=int(duration)+60) elif traffic_type in ["3-node-IPv4"]: (ret, stdout, stderr) = ssh.exec_command( "sh -c '/tmp/openvpp-testing/resources/tools/t-rex-stateless.py " "-d {0} -r {1}% -s {2} " - "--p1_src_mac {3} " - "--p1_dst_mac {4} " "--p1_src_start_ip 10.10.10.2 " "--p1_src_end_ip 10.10.10.254 " "--p1_dst_start_ip 20.20.20.2 " - "--p1_dst_end_ip 20.20.20.2 " - "--p2_src_mac {5} " - "--p2_dst_mac {6} " "--p2_src_start_ip 20.20.20.2 " "--p2_src_end_ip 20.20.20.254 " - "--p2_dst_start_ip 10.10.10.2 " - "--p2_dst_end_ip 10.10.10.2'".\ - format(duration, rate, framesize,\ - tg_port3_src_mac, tg_port3_dst_mac,\ - tg_port5_src_mac, tg_port5_dst_mac),\ - timeout=int(duration)+60) + "--p2_dst_start_ip 10.10.10.2'".\ + format(duration, rate, framesize),\ + timeout=int(duration)+60) else: raise NotImplementedError('Unsupported traffic type') diff --git a/resources/libraries/python/VatExecutor.py b/resources/libraries/python/VatExecutor.py index aff8c36130..d53e57c309 100644 --- a/resources/libraries/python/VatExecutor.py +++ b/resources/libraries/python/VatExecutor.py @@ -74,7 +74,7 @@ class VatExecutor(object): logger.trace("stdout: '{0}'".format(self._stdout)) logger.trace("stderr: '{0}'".format(self._stderr)) - # TODO: download vpe_api_test output file + # TODO: download vpp_api_test output file # self._delete_files(node, remote_file_path, remote_file_out) def execute_script_json_out(self, vat_name, node, timeout=10,): diff --git a/resources/libraries/python/constants.py b/resources/libraries/python/constants.py index d7134cedcb..f9bbc46a95 100644 --- a/resources/libraries/python/constants.py +++ b/resources/libraries/python/constants.py @@ -16,4 +16,4 @@ class Constants(object): RESOURCES_LIB_SH = 'resources/libraries/bash' RESOURCES_TPL_VAT = 'resources/templates/vat' #OpenVPP VAT binary name - VAT_BIN_NAME = 'vpe_api_test' + VAT_BIN_NAME = 'vpp_api_test' diff --git a/resources/libraries/python/ssh.py b/resources/libraries/python/ssh.py index 72e41c76a6..385619ce42 100644 --- a/resources/libraries/python/ssh.py +++ b/resources/libraries/python/ssh.py @@ -101,7 +101,7 @@ class SSH(object): >>> #Execute command without input (sudo -S cmd) >>> ssh.exex_command_sudo("ifconfig eth0 down") >>> #Execute command with input (sudo -S cmd <<< "input") - >>> ssh.exex_command_sudo("vpe_api_test", "dump_interface_table") + >>> ssh.exex_command_sudo("vpp_api_test", "dump_interface_table") """ if cmd_input is None: command = 'sudo -S {c}'.format(c=cmd) diff --git a/resources/libraries/python/topology.py b/resources/libraries/python/topology.py index 3ced69d7fe..6a7ea798cc 100644 --- a/resources/libraries/python/topology.py +++ b/resources/libraries/python/topology.py @@ -323,7 +323,7 @@ class Topology(object): This method updates the topology dictionary by querying interface lists of all nodes mentioned in the topology dictionary. It does this by dumping interface list to json output from all devices - using vpe_api_test, and pairing known information from topology + using vpp_api_test, and pairing known information from topology (mac address/pci address of interface) to state from VPP. For TG/linux nodes add interface name only. """ |