diff options
28 files changed, 0 insertions, 1157 deletions
@@ -91,10 +91,6 @@ A brief bottom-up description is provided here: ├── dpdk │ ├── dpdk_scripts # DPDK helper scripts │ └── perf # DPDK performance tests - ├── tldk - │ ├── func # TLDK functional VIRL tests - │ ├── tldk_scripts # TLDK helper scripts - │ └── tldk_testconfig # TLDK test configuration └── vpp ├── device # VPP device tests ├── func # VPP functional VIRL tests diff --git a/bootstrap-TLDK.sh b/bootstrap-TLDK.sh deleted file mode 100755 index 7a26e88db0..0000000000 --- a/bootstrap-TLDK.sh +++ /dev/null @@ -1,213 +0,0 @@ -#!/bin/bash -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -x - -cat /etc/hostname -cat /etc/hosts - -ARCHIVE_ARTIFACTS=(log.html output.xml report.html) - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -export PYTHONPATH=${SCRIPT_DIR} - -export DEBIAN_FRONTEND=noninteractive -sudo apt-get -y update -sudo apt-get -y install libpython2.7-dev python-virtualenv - -VIRL_SERVERS=("10.30.51.28" "10.30.51.29" "10.30.51.30") -VIRL_SERVER="" - -VIRL_USERNAME=jenkins-in -VIRL_PKEY=priv_key -VIRL_SERVER_STATUS_FILE="status" -VIRL_SERVER_EXPECTED_STATUS="PRODUCTION" - -SSH_OPTIONS="-i ${VIRL_PKEY} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o LogLevel=error" - -DPDK_VERSION=16.11.1 -DPDK_DIR=dpdk -DPDK_PACKAGE=${DPDK_DIR}"-"${DPDK_VERSION}.tar.xz - -function ssh_do() { - echo - echo "### " ssh $@ - ssh ${SSH_OPTIONS} $@ -} - -rm -f ${VIRL_PKEY} -cat > ${VIRL_PKEY} <<EOF ------BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEA+IHXq87GcqMR1C47rzx6Cbip5Ghq8pKrbqKrP5Nf41HcYrT6 -GOXl9nFWKsMOzIlIn+8y7Il27eZh7csQGApbg8QLiHMtcYEmWNzKZpkqg4nuAPxX -VXwlKgnKX902SrET9Gp9TDayiHtCRWVfrlPPPSA0UEXW6BjLN/uHJ+W/Xzrrab+9 -asBVa05vT2W6n0KJ66zfCaeDM912mQ6SttscAwFoWDmdHlegiVqrlIG2ABxOvxxz -L3dM3iSmlmQlzv9bThjo+nI4KFYh6m5wrZmAo5r/4q9CIJc21HVnTqkGOWJIZz6J -73lePJVSq5gYqaoGw3swFEA/MDkOx7baWKSoLQIDAQABAoIBAQCNBeolNp+JWJ76 -gQ4fwLsknyXSV6sxYyhkDW4PEwwcTU06uqce0AAzXVffxne0fMe48x47+zqBgPbb -4huM+Pu8B9nfojUMr5TaYtl9Zbgpk3F8H7dT7LKOa6XrxvZTZrADSRc30+Z26zPN -e9zTaf42Gvt0/l0Zs1BHwbaOXqO+XuwJ3/F9Sf3PQYWXD3EOWjpHDP/X/1vAs6lV -SLkm6J/9KKE1m6I6LTYjIXuYt4SXybW6N2TSy54hhQtYcDUnIU2hR/PHVWKrGA0J -kELgrtTNTdbML27O5gFWU4PLUEYTZ9fN11D6qUZKxLcPOiPPHXkiILMRCCnG5DYI -ksBAU/YlAoGBAPxZO9VO18TYc8THV1nLKcvT2+1oSs1UcA2wNQMU55t910ZYinRa -MRwUhMOf8Mv5wOeiZaRICQB1PnVWtDVmGECgPpK6jUxqAwn8rgJcnoafLGL5YKMY -RVafTe6N5LXgCaOcJrk21wxs6v7ninEbUxxc575urOvZMBkymDw91dwbAoGBAPwa -YRhKhrzFKZzdK0RadVjnxKvolUllpoqqg3XuvmeAJHAOAnaOgVWq68NAcp5FZJv0 -2D2Up7TX8pjf9MofP1SJbcraKBpK4NzfNkA0dSdEi+FhVofAJ9umB2o5LW1n7sab -UIrjsdzSJK/9Zb9yTTHPyibYzNEgaJV1HsbxfEFXAoGAYO2RmvRm0phll18OQVJV -IpKk9kLKAKZ/R/K32hAsikBC8SVPQTPniyaifFWx81diblalff2hX4ipTf7Yx24I -wMIMZuW7Im/R7QMef4+94G3Bad7p7JuE/qnAEHJ2OBnu+eYfxaK35XDsrq6XMazS -NqHE7hOq3giVfgg+C12hCKMCgYEAtu9dbYcG5owbehxzfRI2/OCRsjz/t1bv1seM -xVMND4XI6xb/apBWAZgZpIFrqrWoIBM3ptfsKipZe91ngBPUnL9s0Dolx452RVAj -yctHB8uRxWYgqDkjsxtzXf1HnZBBkBS8CUzYj+hdfuddoeKLaY3invXLCiV+PpXS -U4KAK9kCgYEAtSv0m5+Fg74BbAiFB6kCh11FYkW94YI6B/E2D/uVTD5dJhyEUFgZ -cWsudXjMki8734WSpMBqBp/J8wG3C9ZS6IpQD+U7UXA+roB7Qr+j4TqtWfM+87Rh -maOpG56uAyR0w5Z9BhwzA3VakibVk9KwDgZ29WtKFzuATLFnOtCS46E= ------END RSA PRIVATE KEY----- -EOF -chmod 600 ${VIRL_PKEY} - -# -# Pick a random host from the array of VIRL servers, and attempt -# to reach it and verify it's status. -# -# The server must be reachable, and have a "status" file with -# the content "PRODUCTION", to be selected. -# -# If the server is not reachable, or does not have the correct -# status, remove it from the array and start again. -# -# Abort if there are no more servers left in the array. -# -while [[ ! "$VIRL_SERVER" ]] -do - num_hosts=${#VIRL_SERVERS[@]} - if [ $num_hosts == 0 ] - then - echo "No more VIRL candidate hosts available, failing." - exit 127 - fi - element=$[ $RANDOM % $num_hosts ] - virl_server_candidate=${VIRL_SERVERS[$element]} - virl_server_status=$(ssh ${SSH_OPTIONS} ${VIRL_USERNAME}@${virl_server_candidate} cat $VIRL_SERVER_STATUS_FILE 2>&1) - echo VIRL HOST $virl_server_candidate status is \"$virl_server_status\" - if [ "$virl_server_status" == "$VIRL_SERVER_EXPECTED_STATUS" ] - then - # Candidate is in good status. Select this server. - VIRL_SERVER="$virl_server_candidate" - else - # Candidate is in bad status. Remove from array. - VIRL_SERVERS=("${VIRL_SERVERS[@]:0:$element}" "${VIRL_SERVERS[@]:$[$element+1]}") - fi -done - - -#we will pack all the TLDK depend files and copy it to the VIRL_SERVER -VIRL_DIR_LOC="/tmp" -TLDK_TAR_FILE="tldk_depends.tar.gz" - -wget "fast.dpdk.org/rel/${DPDK_PACKAGE}" - -tar zcf ${TLDK_TAR_FILE} ${DPDK_PACKAGE} ./tldk/ \ - ./tests/tldk/tldk_testconfig/ - -cat ${VIRL_PKEY} -# Copy the files to VIRL host -scp ${SSH_OPTIONS} ${TLDK_TAR_FILE} \ - ${VIRL_USERNAME}@${VIRL_SERVER}:${VIRL_DIR_LOC}/ - -result=$? -if [ "${result}" -ne "0" ]; then - echo "Failed to copy tldk package file to virl host" - echo ${result} - exit ${result} -fi - -# Start a simulation on VIRL server -echo "Starting simulation on VIRL server" - -VIRL_TOPOLOGY=double-ring-nested.xenial -VIRL_RELEASE=csit-ubuntu-16.04.1_2017-07-26_1.9 - -function stop_virl_simulation { - ssh ${SSH_OPTIONS} ${VIRL_USERNAME}@${VIRL_SERVER}\ - "stop-testcase ${VIRL_SID}" -} - -# Upon script exit, cleanup the simulation execution -trap stop_virl_simulation EXIT - -# use the start-testcase-TLDK for the TLDK test case -VIRL_SID=$(ssh ${SSH_OPTIONS} \ - ${VIRL_USERNAME}@${VIRL_SERVER} \ - "start-testcase-TLDK -c ${VIRL_TOPOLOGY} -r ${VIRL_RELEASE} ${VIRL_DIR_LOC}/${TLDK_TAR_FILE}") -retval=$? -if [ "${retval}" -ne "0" ]; then - echo "VIRL simulation start failed" - exit ${retval} -fi - -if [[ ! "${VIRL_SID}" =~ session-[a-zA-Z0-9_]{6} ]]; then - echo "No VIRL session ID reported." - exit 127 -fi - -echo ${VIRL_SID} - -ssh_do ${VIRL_USERNAME}@${VIRL_SERVER} cat /scratch/${VIRL_SID}/topology.yaml - -# Download the topology file from virl session -scp ${SSH_OPTIONS} \ - ${VIRL_USERNAME}@${VIRL_SERVER}:/scratch/${VIRL_SID}/topology.yaml \ - topologies/enabled/topology.yaml - -retval=$? -if [ "${retval}" -ne "0" ]; then - echo "Failed to copy topology file from VIRL simulation" - exit ${retval} -fi - -# create a python virtual environment env -virtualenv --system-site-packages env -. env/bin/activate - -echo pip install -pip install -r ${SCRIPT_DIR}/requirements.txt - -pykwalify -s ${SCRIPT_DIR}/resources/topology_schemas/3_node_topology.sch.yaml \ - -s ${SCRIPT_DIR}/resources/topology_schemas/topology.sch.yaml \ - -d ${SCRIPT_DIR}/topologies/enabled/topology.yaml \ - -vvv - -if [ "$?" -ne "0" ]; then - echo "Topology schema validation failed." - echo "However, the tests will start." -fi - -PYTHONPATH=`pwd` pybot -L TRACE -W 150 \ - -v TOPOLOGY_PATH:${SCRIPT_DIR}/topologies/enabled/topology.yaml \ - --suite "tests.tldk.func" \ - --include vm_envAND3_node_single_link_topo \ - --noncritical EXPECTED_FAILING \ - tests/ - -RETURN_STATUS=$(echo $?) - -# Archive artifacts -mkdir archive -for i in ${ARCHIVE_ARTIFACTS[@]}; do - cp $( readlink -f ${i} | tr '\n' ' ' ) archive/ -done - -exit ${RETURN_STATUS} diff --git a/docs/tag_documentation.rst b/docs/tag_documentation.rst index aadf9392b1..198548f857 100644 --- a/docs/tag_documentation.rst +++ b/docs/tag_documentation.rst @@ -316,10 +316,6 @@ Test Type Tags At least one feature is configured in test cases. Use also feature tag(s). -.. topic:: TLDK - - Functional test cases for TLDK. - .. topic:: TCP Tests which use TCP. diff --git a/resources/libraries/python/TLDK/SetupTLDKTest.py b/resources/libraries/python/TLDK/SetupTLDKTest.py deleted file mode 100644 index e9aaec7149..0000000000 --- a/resources/libraries/python/TLDK/SetupTLDKTest.py +++ /dev/null @@ -1,251 +0,0 @@ -# Copyright (c) 2018 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""This module exists to provide setup utilities for the framework on topology -nodes. All tasks required to be run before the actual tests are started is -supposed to end up here. -""" - -from shlex import split -from subprocess import Popen, PIPE, call -from multiprocessing import Pool -from tempfile import NamedTemporaryFile -from os.path import basename -import os - -from robot.api import logger -from robot.libraries.BuiltIn import BuiltIn - -from resources.libraries.python.ssh import SSH -from resources.libraries.python.TLDK.TLDKConstants import TLDKConstants as con -from resources.libraries.python.topology import NodeType, Topology -from resources.libraries.python.TLDK.gen_pcap import gen_all_pcap - -__all__ = ["SetupTLDKTest"] - - -def pack_framework_dir(): - """Pack the testing WS into temp file, return its name. - :returns: file_name - :rtype: str - :raises RuntimeError: If pack the testing framework failed. - """ - # Remove the TLDK and DPDK dir existted. - os.system("rm -rf tldk") - os.system("rm -rf dpdk") - os.system("rm -f dpdk-16.11.1.tar.xz") - - # Get the latest TLDK and dpdk code. - os.system("git clone https://gerrit.fd.io/r/tldk") - os.system("wget http://fast.dpdk.org/rel/dpdk-16.11.1.tar.xz") - - # Generate pcap file used to execute test case. - gen_all_pcap() - - tmpfile = NamedTemporaryFile(suffix=".tgz", prefix="TLDK-testing-") - file_name = tmpfile.name - tmpfile.close() - - proc = Popen( - split("tar --exclude-vcs -zcf {0} .".format(file_name)), - stdout=PIPE, stderr=PIPE) - (stdout, stderr) = proc.communicate() - - logger.debug(stdout) - logger.debug(stderr) - - return_code = proc.wait() - if return_code != 0: - raise RuntimeError("Could not pack testing framework.") - - return file_name - - -def copy_tarball_to_node(tarball, node): - """Copy tarball file from local host to remote node. - - :param tarball: Path to tarball to upload. - :param node: Dictionary created from topology. - :type tarball: str - :type node: dict - :returns: nothing. - """ - logger.console('Copying tarball to {0}'.format(node['host'])) - ssh = SSH() - ssh.connect(node) - - ssh.scp(tarball, "/tmp/") - - -def extract_tarball_at_node(tarball, node): - """Extract tarball at given node. - - Extracts tarball using tar on given node to specific CSIT location. - Raise runtime errors when failed. - - :param tarball: Path to tarball to upload. - :param node: Dictionary created from topology. - :type tarball: str - :type node: dict - :returns: nothing - :raises RuntimeError: If extract tarball failed. - """ - logger.console('Extracting tarball to {0} on {1}'.format( - con.REMOTE_FW_DIR, node['host'])) - ssh = SSH() - ssh.connect(node) - - cmd = 'sudo rm -rf {1}; mkdir {1} ; tar -zxf {0} -C {1}; ' \ - 'rm -f {0}'.format(tarball, con.REMOTE_FW_DIR) - (ret_code, _, stderr) = ssh.exec_command(cmd, timeout=30) - if ret_code != 0: - logger.error('Unpack error: {0}'.format(stderr)) - raise RuntimeError('Failed to unpack {0} at node {1}'.format( - tarball, node['host'])) - - -def create_env_directory_at_node(node): - """ - Create fresh virtualenv to a directory, install pip requirements. - - :param node: Dictionary created from topology, will only install in the TG. - :type node: dict - :returns: nothing - :raises RuntimeError: If the setup of virtualenv failed. - """ - logger.console('Extracting virtualenv, installing requirements.txt ' - 'on {0}'.format(node['host'])) - ssh = SSH() - ssh.connect(node) - (ret_code, stdout, stderr) = ssh.exec_command( - 'cd {0} && rm -rf env && ' - 'virtualenv --system-site-packages --never-download env && ' - '. env/bin/activate && pip install -r requirements.txt' - .format(con.REMOTE_FW_DIR), timeout=100) - if ret_code != 0: - logger.error('Virtualenv creation error: {0}'.format(stdout + stderr)) - raise RuntimeError('Virtualenv setup failed') - else: - logger.console('Virtualenv created on {0}'.format(node['host'])) - -def install_tldk_test(node): - """Prepare the TLDK test envrionment. - Raise errors when failed. - - :param node: Dictionary created from topology. - :type node: dict - :returns: nothing. - :raises RuntimeError: If install tldk failed. - """ - - arch = Topology.get_node_arch(node) - logger.console('Install the TLDK on {0} ({1})'.format(node['host'], - arch)) - - ssh = SSH() - ssh.connect(node) - - (ret_code, _, stderr) = ssh.exec_command( - 'cd {0}/{1} && ./install_tldk.sh {2}' - .format(con.REMOTE_FW_DIR, con.TLDK_SCRIPTS, arch), timeout=600) - - if ret_code != 0: - logger.error('Install the TLDK error: {0}'.format(stderr)) - raise RuntimeError('Install the TLDK failed') - else: - logger.console('Install the TLDK on {0} success!'.format(node['host'])) - -def setup_node(args): - """Run all set-up methods for a node. - - This method is used as map_async parameter. It receives tuple with all - parameters as passed to map_async function. - - :param args: All parameters needed to setup one node. - :type args: tuple - :returns: True - success, False - error - :rtype: bool - :raises RuntimeError: If node setup failed. - """ - tarball, remote_tarball, node = args - - # if unset, arch defaults to x86_64 - Topology.get_node_arch(node) - - try: - copy_tarball_to_node(tarball, node) - extract_tarball_at_node(remote_tarball, node) - if node['type'] == NodeType.DUT: - install_tldk_test(node) - if node['type'] == NodeType.TG: - create_env_directory_at_node(node) - except RuntimeError as exc: - logger.error("Node setup failed, error:'{0}'".format(exc.message)) - return False - else: - logger.console('Setup of node {0} done'.format(node['host'])) - return True - -def delete_local_tarball(tarball): - """Delete local tarball to prevent disk pollution. - - :param tarball: Path to tarball to upload. - :type tarball: str - :returns: nothing. - """ - call(split('sh -c "rm {0} > /dev/null 2>&1"'.format(tarball))) - - -class SetupTLDKTest: - """Setup suite run on topology nodes. - - Many VAT/CLI based tests need the scripts at remote hosts before executing - them. This class packs the whole testing directory and copies it over - to all nodes in topology under /tmp/ - """ - - @staticmethod - def setup_tldk_test(nodes): - """Pack the whole directory and extract in temp on each node.""" - - tarball = pack_framework_dir() - msg = 'Framework packed to {0}'.format(tarball) - logger.console(msg) - logger.trace(msg) - remote_tarball = "/tmp/{0}".format(basename(tarball)) - - # Turn off logging since we use multiprocessing. - log_level = BuiltIn().set_log_level('NONE') - params = ((tarball, remote_tarball, node) for node in nodes.values()) - pool = Pool(processes=len(nodes)) - result = pool.map_async(setup_node, params) - pool.close() - pool.join() - - # Turn on logging. - BuiltIn().set_log_level(log_level) - - logger.info( - 'Executed node setups in parallel, waiting for processes to end') - result.wait() - - results = result.get() - node_setup_success = all(results) - logger.info('Results: {0}'.format(results)) - - logger.trace('Test framework copied to all topology nodes') - delete_local_tarball(tarball) - if node_setup_success: - logger.console('All nodes are ready') - else: - logger.console('Failed to setup dpdk on all the nodes') diff --git a/resources/libraries/python/TLDK/TLDKConstants.py b/resources/libraries/python/TLDK/TLDKConstants.py deleted file mode 100644 index 57b7fa23a1..0000000000 --- a/resources/libraries/python/TLDK/TLDKConstants.py +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -"""This file defines the constants variables for the TLDK test.""" - - -class TLDKConstants: - """Define the directory path for the TLDK test.""" - - # TLDK testing directory location at topology nodes - REMOTE_FW_DIR = '/tmp/TLDK-testing' - - # Shell scripts location - TLDK_SCRIPTS = 'tests/tldk/tldk_scripts' - - # Libraries location - TLDK_DEPLIBS = 'tests/tldk/tldk_deplibs' - - # Config files location for the TLDK test - TLDK_TESTCONFIG = 'tests/tldk/tldk_testconfig' diff --git a/resources/libraries/python/TLDK/UdpTest.py b/resources/libraries/python/TLDK/UdpTest.py deleted file mode 100644 index 8973fe45d9..0000000000 --- a/resources/libraries/python/TLDK/UdpTest.py +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -""" -This module exists to provide the UDP test for TLDK on topology nodes. -""" - -from scapy.utils import rdpcap -from scapy.layers.inet import IP -from scapy.layers.inet6 import IPv6 - -from robot.libraries.BuiltIn import BuiltIn - -from resources.libraries.python.ssh import SSH -from resources.libraries.python.TLDK.TLDKConstants import TLDKConstants as con -from resources.libraries.python.topology import Topology - -class UdpTest: - """Test the TLDK UDP function.""" - - @staticmethod - def get_pcap_info(file_prefix): - """Get the Dest IP from the RX pcap file - - :param file_prefix: the test case pcap file prefix - :type file_prefix: str - :returns: packet counts, dest ip, is or not ipv4 - :rtype: tuple(int, str, bool). - """ - exec_dir = BuiltIn().get_variable_value("${EXECDIR}") - - rx_pcapfile = '{0}/{1}/{2}_rx.pcap' \ - .format(exec_dir, con.TLDK_TESTCONFIG, file_prefix) - packets = rdpcap(rx_pcapfile) - count = len(packets) - - ### the first packet - pkt = packets[0] - if pkt.type == 0x0800: - ### this is a IPv4 packet - dest_ip = pkt[IP].dst - is_ipv4 = True - elif pkt.type == 0x86dd: - ### this is a IPv6 packet - dest_ip = pkt[IPv6].dst - is_ipv4 = False - - return count, dest_ip, is_ipv4 - - @staticmethod - def exec_the_udpfwd_test(dut_node, dut_if, file_prefix, \ - dest_ip, is_ipv4=True): - """Execute the udpfwd on the dut_node. - - :param dut_node: Will execute the udpfwd on this node. - :param dut_if: DUT interface name. - :param file_prefix: The test case config file prefix. - :param dest_ip: The UDP packet dest IP. - :param is_ipv4: Execute the IPv4 or IPv6 test. - :type dut_node: dict - :type dut_if: str - :type file_prefix: str - :type dest_ip: str - :type is_ipv4: bool - :raises RuntimeError: If failed to execute udpfwd test on the dut node. - """ - pci_address = Topology.get_interface_pci_addr(dut_node, dut_if) - ssh = SSH() - ssh.connect(dut_node) - if is_ipv4: - cmd = 'cd {0}/{4} && ./run_tldk.sh {0}/{5}/{2}_rx.pcap ' \ - '{0}/{5}/{2}_tx.pcap {1} {0}/{5}/{2}_fe.cfg ' \ - '{0}/{5}/{2}_be.cfg {3} NONE' \ - .format(con.REMOTE_FW_DIR, pci_address, file_prefix, \ - dest_ip, con.TLDK_SCRIPTS, con.TLDK_TESTCONFIG) - else: - cmd = 'cd {0}/{4} && ./run_tldk.sh {0}/{5}/{2}_rx.pcap ' \ - '{0}/{5}/{2}_tx.pcap {1} {0}/{5}/{2}_fe.cfg ' \ - '{0}/{5}/{2}_be.cfg NONE {3}' \ - .format(con.REMOTE_FW_DIR, pci_address, file_prefix, \ - dest_ip, con.TLDK_SCRIPTS, con.TLDK_TESTCONFIG) - - (ret_code, _, _) = ssh.exec_command(cmd, timeout=600) - if ret_code != 0: - raise RuntimeError('Failed to execute udpfwd test at node {0}' - .format(dut_node['host'])) - - @staticmethod - def get_the_test_result(dut_node, file_prefix): - """ - After execute the udpfwd cmd, use this to get the test result. - - :param dut_node: will get the test result in this dut node - :param dut_if: the dut interface name - :param file_prefix: the test case output file prefix - :type dut_node: dice - :type dut_if: str - :type file_prefix: str - :returns: str. - :rtype: str - :raises RuntimeError: If failed to get the test result. - """ - ssh = SSH() - ssh.connect(dut_node) - cmd = 'cd {0}; sudo /usr/sbin/tcpdump -nnnn -vvv -r ./{2}/{1}_tx.pcap' \ - ' | grep \'udp sum ok\' | wc -l' \ - .format(con.REMOTE_FW_DIR, file_prefix, con.TLDK_TESTCONFIG) - - (ret_code, stdout, _) = ssh.exec_command(cmd, timeout=100) - if ret_code != 0: - raise RuntimeError('Failed to get test result at node {0}' - .format(dut_node['host'])) - - return stdout diff --git a/resources/libraries/python/TLDK/__init__.py b/resources/libraries/python/TLDK/__init__.py deleted file mode 100644 index 9cb1aeee44..0000000000 --- a/resources/libraries/python/TLDK/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -__init__ file for directory resources/libraries/python/TLDK -""" diff --git a/resources/libraries/python/TLDK/gen_pcap.py b/resources/libraries/python/TLDK/gen_pcap.py deleted file mode 100644 index bd9d2b1743..0000000000 --- a/resources/libraries/python/TLDK/gen_pcap.py +++ /dev/null @@ -1,100 +0,0 @@ -#! /usr/bin/python -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -This module is used to generate pcap file used to execute UDP test cases. -""" - -from scapy.layers.inet import Ether, IP, UDP, fragment -from scapy.layers.inet6 import IPv6 -from scapy.utils import PcapWriter -from resources.libraries.python.TLDK.TLDKConstants import TLDKConstants as con - -def create_packet(psz, is_ipv6, frag_size=None): - """Create a packet to use scapy send to DUT.""" - if is_ipv6 != True: - packet = Ether()/IP()/UDP()/("X" * psz) - packet[IP].src = "192.168.1.56" - packet[IP].dst = "192.168.1.233" - else: - packet = Ether()/IPv6()/UDP()/("X" * psz) - packet[IPv6].src = "2001:4860:b002::56" - packet[IPv6].dst = "2001:4860:b002::28" - packet[Ether].src = "DE:AD:BE:EF:02:01" - packet[Ether].dst = "DE:AD:BE:EF:01:02" - packet[UDP].sport = 1111 - packet[UDP].dport = 32768 - if frag_size != None: - packet = fragment(packet, fragsize=frag_size) - return packet - -def gen_ipv4_checksum_pcap(): - """Generate ipv4 checksum test case input pcap file.""" - writer = PcapWriter(con.TLDK_TESTCONFIG + "/test_ipv4_checksum_rx.pcap", - append=False) - for i in range(1, 1474): - packets = create_packet(i, False) - for packet in packets: - writer.write(packet) - writer.close() - -def gen_ipv6_checksum_pcap(): - """Generate ipv6 checksum test case input pcap file.""" - writer = PcapWriter(con.TLDK_TESTCONFIG + "/test_ipv6_checksum_rx.pcap", - append=False) - for i in range(1, 1454): - packets = create_packet(i, True) - for packet in packets: - writer.write(packet) - writer.close() - -def gen_ipv4_fragment_pcap(): - """Generate ipv4 fragment test case input pcap file.""" - writer = PcapWriter(con.TLDK_TESTCONFIG + "/test_ipv4_fragment_rx.pcap", - append=False) - for i in range(1, 1474): - packets = create_packet(i, False) - for packet in packets: - writer.write(packet) - writer.close() - -def gen_ipv6_fragment_pcap(): - """Generate ipv6 fragment test case input pcap file.""" - writer = PcapWriter(con.TLDK_TESTCONFIG + "/test_ipv6_fragment_rx.pcap", - append=False) - for i in range(1, 1454): - packets = create_packet(i, True) - for packet in packets: - writer.write(packet) - writer.close() - -def gen_ipv4_assemble_pcap(): - """Generate ipv4 assemble test case input pcap file.""" - writer = PcapWriter(con.TLDK_TESTCONFIG + "/test_ipv4_assemble_rx.pcap", - append=False) - packets = create_packet(1066, False, 1024) - for packet in packets: - writer.write(packet) - writer.close() - -def gen_all_pcap(): - """Generate all test cases input pcap file.""" - gen_ipv4_checksum_pcap() - gen_ipv6_checksum_pcap() - gen_ipv4_fragment_pcap() - gen_ipv6_fragment_pcap() - gen_ipv4_assemble_pcap() - -if __name__ == "__main__": - gen_all_pcap() diff --git a/resources/tools/doc_gen/src/index.rst b/resources/tools/doc_gen/src/index.rst index fcc9f8882a..39f1d38fca 100644 --- a/resources/tools/doc_gen/src/index.rst +++ b/resources/tools/doc_gen/src/index.rst @@ -10,7 +10,6 @@ Contents resources.libraries.python resources.libraries.robot tests.dpdk.perf - tests.tldk.func tests.vpp.device tests.vpp.perf indices diff --git a/resources/tools/doc_gen/src/tests.tldk.func.rst b/resources/tools/doc_gen/src/tests.tldk.func.rst deleted file mode 100644 index 85042fcf6c..0000000000 --- a/resources/tools/doc_gen/src/tests.tldk.func.rst +++ /dev/null @@ -1,3 +0,0 @@ -TLDK Functional Tests -===================== - diff --git a/tests/tldk/func/__init__.robot b/tests/tldk/func/__init__.robot deleted file mode 100644 index 3b71353945..0000000000 --- a/tests/tldk/func/__init__.robot +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Library | resources.libraries.python.TLDK.SetupTLDKTest -| Suite Setup | Setup TLDK Test | ${nodes} diff --git a/tests/tldk/func/ipv4/ipv4_assemble.robot b/tests/tldk/func/ipv4/ipv4_assemble.robot deleted file mode 100644 index 88f43823c8..0000000000 --- a/tests/tldk/func/ipv4/ipv4_assemble.robot +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Library | resources.libraries.python.NodePath -| Library | resources.libraries.python.Trace -| Library | resources.libraries.python.TrafficScriptExecutor -| Library | resources.libraries.python.TLDK.UdpTest -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/counters.robot -| Resource | resources/libraries/robot/tldk/tldk_utils.robot -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | FUNCTEST | TLDK -| Documentation | *TLDK IPv4 assemble test suite.* -| ... -| ... | Test suite uses 3-node topology TG - DUT1 - DUT2 - TG with single link -| ... | between nodes. From this topology only TG and DUT1 nodes are used. -| ... | In VM environment, the DUT2 is not configured since the DUT1 is testing -| ... | with the pcap file that generated with the pcap_gen.py. There is no -| ... | packet going out to DUT2, udpfwd app is verified on DUT1 only. -| ... | This test case just use the pcap file for the UDP functional test. - -*** Variables *** -| ${tc01_file_prefix}= | test_ipv4_assemble - -*** Test Cases *** -| TC01: TLDK IPv4 assemble test case -| | Given Path for 2-node testing is set | ${nodes['TG']} | ${nodes['DUT1']} -| | And Pick out the port used to execute test -| | And Get the pcap data | ${tc01_file_prefix} -| | When Exec the udpfwd test | ${dut_node} | ${dut_port} -| | ... | ${tc01_file_prefix} | ${dest_ip} | ${is_ipv4} -| | ${pkt_count}= | Get the test result | ${dut_node} -| | ... | ${tc01_file_prefix} -| | ${result}= | Convert To Integer | ${pkt_count} -| | Then Should Be Equal As Integers | ${result} | 1 diff --git a/tests/tldk/func/ipv4/ipv4_checksum.robot b/tests/tldk/func/ipv4/ipv4_checksum.robot deleted file mode 100644 index d0710616fc..0000000000 --- a/tests/tldk/func/ipv4/ipv4_checksum.robot +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Library | resources.libraries.python.NodePath -| Library | resources.libraries.python.Trace -| Library | resources.libraries.python.TrafficScriptExecutor -| Library | resources.libraries.python.TLDK.UdpTest -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/counters.robot -| Resource | resources/libraries/robot/tldk/tldk_utils.robot -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | FUNCTEST | TLDK -| Documentation | *TLDK IPv4 checksum test suite.* -| ... -| ... | Test suite uses 3-node topology TG - DUT1 - DUT2 - TG with single link -| ... | between nodes. From this topology only TG and DUT1 nodes are used. -| ... | This test case just use the pcap file for the UDP functional test. - -*** Variables *** -| ${tc01_file_prefix}= | test_ipv4_checksum - -*** Test Cases *** -| TC01: TLDK IPv4 checksum test case -| | Given Path for 2-node testing is set | ${nodes['TG']} | ${nodes['DUT1']} -| | And Pick out the port used to execute test -| | And Get the pcap data | ${tc01_file_prefix} -| | When Exec the udpfwd test | ${dut_node} | ${dut_port} -| | ... | ${tc01_file_prefix} | ${dest_ip} | ${is_ipv4} -| | ${checksum}= | Get the test result | ${dut_node} -| | ... | ${tc01_file_prefix} -| | ${result}= | Convert To Integer | ${checksum} -| | Then Should Be Equal As Integers | ${result} | ${packet_num} diff --git a/tests/tldk/func/ipv4/ipv4_fragment.robot b/tests/tldk/func/ipv4/ipv4_fragment.robot deleted file mode 100644 index e3c2475c6d..0000000000 --- a/tests/tldk/func/ipv4/ipv4_fragment.robot +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Library | resources.libraries.python.NodePath -| Library | resources.libraries.python.Trace -| Library | resources.libraries.python.TrafficScriptExecutor -| Library | resources.libraries.python.TLDK.UdpTest -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/counters.robot -| Resource | resources/libraries/robot/tldk/tldk_utils.robot -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | FUNCTEST | TLDK -| Documentation | *TLDK IPv4 fragment test suite.* -| ... -| ... | Test suite uses 3-node topology TG - DUT1 - DUT2 - TG with single link -| ... | between nodes. From this topology only TG and DUT1 nodes are used. -| ... | This test case just use the pcap file for the UDP functional test. - -*** Variables *** -| ${tc01_file_prefix}= | test_ipv4_fragment - -*** Test Cases *** -| TC01: TLDK IPv4 fragment test case -| | Given Path for 2-node testing is set | ${nodes['TG']} | ${nodes['DUT1']} -| | And Pick out the port used to execute test -| | And Get the pcap data | ${tc01_file_prefix} -| | When Exec the udpfwd test | ${dut_node} | ${dut_port} -| | ... | ${tc01_file_prefix} | ${dest_ip} | ${is_ipv4} -| | ${checksum}= | Get the test result | ${dut_node} -| | ... | ${tc01_file_prefix} -| | ${result}= | Convert To Integer | ${checksum} -| | Then Should Be Equal As Integers | ${result} | 990 diff --git a/tests/tldk/func/ipv6/ipv6_checksum.robot b/tests/tldk/func/ipv6/ipv6_checksum.robot deleted file mode 100644 index c216f82c40..0000000000 --- a/tests/tldk/func/ipv6/ipv6_checksum.robot +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (c) 2016 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Library | resources.libraries.python.NodePath -| Library | resources.libraries.python.Trace -| Library | resources.libraries.python.TrafficScriptExecutor -| Library | resources.libraries.python.TLDK.UdpTest -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/counters.robot -| Resource | resources/libraries/robot/tldk/tldk_utils.robot -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | FUNCTEST | TLDK -| Documentation | *TLDK IPv6 checksum test suit.* -| ... -| ... | Test suite uses 3-node topology TG - DUT1 - DUT2 - TG with single link -| ... | between nodes. From this topology only TG and DUT1 nodes are used. -| ... | This test case just use the pcap file for the UDP functional test. - -*** Variables *** -| ${tc01_file_prefix}= | test_ipv6_checksum - -*** Test Cases *** -| TC01: TLDK IPv6 checksum test case -| | Given Path for 2-node testing is set | ${nodes['TG']} | ${nodes['DUT1']} -| | And Pick out the port used to execute test -| | And Get the pcap data | ${tc01_file_prefix} -| | When Exec the udpfwd test | ${dut_node} | ${dut_port} -| | ... | ${tc01_file_prefix} | ${dest_ip} | ${is_ipv4} -| | ${pkt_count}= | Get the test result | ${dut_node} -| | ... | ${tc01_file_prefix} -| | ${result}= | Convert To Integer | ${pkt_count} -| | Then Should Be Equal As Integers | ${result} | ${packet_num} diff --git a/tests/tldk/func/ipv6/ipv6_fragment.robot b/tests/tldk/func/ipv6/ipv6_fragment.robot deleted file mode 100644 index b8c345f859..0000000000 --- a/tests/tldk/func/ipv6/ipv6_fragment.robot +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Library | resources.libraries.python.NodePath -| Library | resources.libraries.python.Trace -| Library | resources.libraries.python.TrafficScriptExecutor -| Library | resources.libraries.python.TLDK.UdpTest -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/counters.robot -| Resource | resources/libraries/robot/tldk/tldk_utils.robot -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | FUNCTEST | TLDK -| Documentation | *TLDK IPv6 fragment test suite.* -| ... -| ... | Test suite uses 3-node topology TG - DUT1 - DUT2 - TG with single link -| ... | between nodes. From this topology only TG and DUT1 nodes are used. -| ... | This test case just use the pcap file for the UDP functional test. - -*** Variables *** -| ${tc01_file_prefix}= | test_ipv6_fragment - -*** Test Cases *** -| TC01: TLDK IPv6 fragment test case -| | Given Path for 2-node testing is set | ${nodes['TG']} | ${nodes['DUT1']} -| | And Pick out the port used to execute test -| | And Get the pcap data | ${tc01_file_prefix} -| | When Exec the udpfwd test | ${dut_node} | ${dut_port} -| | ... | ${tc01_file_prefix} | ${dest_ip} | ${is_ipv4} -| | ${pkt_count}= | Get the test result | ${dut_node} -| | ... | ${tc01_file_prefix} -| | ${result}= | Convert To Integer | ${pkt_count} -| | Then Should Be Equal As Integers | ${result} | ${970} diff --git a/tests/tldk/tldk_scripts/install_tldk.sh b/tests/tldk/tldk_scripts/install_tldk.sh deleted file mode 100755 index 4adff561ce..0000000000 --- a/tests/tldk/tldk_scripts/install_tldk.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash - -set -x - -# set arch, default to x86_64 if none given -ARCH=${1:-"x86_64"} - -# dpdk prefers "arm64" to "aarch64" and does not allow arm64 native target -if [ $ARCH == "aarch64" ]; then - ARCH="arm64" - MACHINE="armv8a" -else - MACHINE="native" -fi - -DPDK_VERSION=16.11.1 - -ROOTDIR=/tmp/TLDK-testing -PWDDIR=$(pwd) -DPDK_DIR=dpdk -DPDK_PACKAGE=${DPDK_DIR}"-"${DPDK_VERSION}.tar.xz - -# compile and install the DPDK -cd ${ROOTDIR} -sudo tar xvf ${DPDK_PACKAGE} -sudo mv dpdk-stable-${DPDK_VERSION} dpdk -echo $PWD -echo ${DPDK_PACKAGE} -cd ./${DPDK_DIR} -sudo sed -i 's/^CONFIG_RTE_LIBRTE_PMD_PCAP=n/CONFIG_RTE_LIBRTE_PMD_PCAP=y/g' ./config/common_base -sudo make install T=${ARCH}-${MACHINE}-linuxapp-gcc -cd ${PWDDIR} - -# compile the TLDK -export RTE_SDK=${ROOTDIR}/${DPDK_DIR}/ -export RTE_TARGET=${ARCH}-${MACHINE}-linuxapp-gcc -cd ${ROOTDIR}/tldk -make all -cd ${PWDDIR} - -sudo killall -9 l4fwd 2>/dev/null - -sleep 5 - -pid=`pgrep l4fwd` -if [ "$pid" != "" ]; then - echo "terminate the l4fwd failed!" - exit 1 -fi - -# check and setup the hugepages -SYS_HUGEPAGE=$(cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages) -if [ ${SYS_HUGEPAGE} -lt 1024 ]; then - MOUNT=$(mount | grep /mnt/huge) - while [ "${MOUNT}" != "" ] - do - sudo umount /mnt/huge - sleep 1 - MOUNT=$(mount | grep /mnt/huge) - done - - echo 1024 | sudo tee /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages - echo 1024 | sudo tee /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages - - sudo mkdir -p /mnt/huge - sudo mount -t hugetlbfs nodev /mnt/huge/ - test $? -eq 0 || exit 1 -fi diff --git a/tests/tldk/tldk_scripts/run_tldk.sh b/tests/tldk/tldk_scripts/run_tldk.sh deleted file mode 100755 index 10ad5b27fa..0000000000 --- a/tests/tldk/tldk_scripts/run_tldk.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -set -x - -# set arch, default to x86_64 if none given -ARCH=${1:-"x86_64"} - -# dpdk prefers "arm64" to "aarch64" and does not allow arm64 native target -if [ $ARCH == "aarch64" ]; then - ARCH="arm64" - MACHINE="armv8a" -else - MACHINE="native" -fi - -ROOTDIR=/tmp/TLDK-testing -PWDDIR=$(pwd) - -rx_file=$1 -tx_file=$2 -nic_pci=$3 -fe_cfg=$4 -be_cfg=$5 -IPv4_addr=$6 -IPv6_addr=$7 - -echo $IPv4_addr - -# Try to kill the l4fwd -sudo pgrep l4fwd -if [ $? -eq "0" ]; then - success=false - sudo pkill l4fwd - echo "RC = $?" - for attempt in {1..5}; do - echo "Checking if l4fwd is still alive, attempt nr ${attempt}" - sudo pgrep l4fwd - if [ $? -eq "1" ]; then - echo "l4fwd is dead" - success=true - break - fi - echo "l4fwd is still alive, waiting 1 second" - sleep 1 - done - if [ "$success" = false ]; then - echo "The command sudo pkill l4fwd failed" - sudo pkill -9 l4fwd - echo "RC = $?" - exit 1 - fi -else - echo "l4fwd is not running" -fi - -#mount the hugepages again -sudo umount /mnt/huge -sudo mount -t hugetlbfs nodev /mnt/huge/ -test $? -eq 0 || exit 1 - -sleep 2 - -#run the l4fwd with tag U -# need to install libpcap, libpcap-dev to use --vdev -cd ${ROOTDIR} -if [ "$IPv6_addr" == "NONE" ]; then -sudo sh -c "nohup ./tldk/${ARCH}-${MACHINE}-linuxapp-gcc/app/l4fwd --lcore='0' \ - -n 2 --vdev 'eth_pcap1,rx_pcap=${rx_file},tx_pcap=${tx_file}' \ - -b ${nic_pci} -- -P -U -R 0x1000 -S 0x1000 -s 0x20 -f ${fe_cfg} -b ${be_cfg} \ - port=0,lcore=0,rx_offload=0,tx_offload=0,ipv4=${IPv4_addr} &" -elif [ "$IPv4_addr" == "NONE" ]; then -sudo sh -c "nohup ./tldk/${ARCH}-${MACHINE}-linuxapp-gcc/app/l4fwd --lcore='0' \ - -n 2 --vdev 'eth_pcap1,rx_pcap=${rx_file},tx_pcap=${tx_file}' \ - -b ${nic_pci} -- -P -U -R 0x1000 -S 0x1000 -s 0x20 -f ${fe_cfg} -b ${be_cfg} \ - port=0,lcore=0,rx_offload=0,tx_offload=0,ipv6=${IPv6_addr} &" -fi - -cd ${PWDDIR} - -ps -elf | grep l4fwd - -sleep 10 diff --git a/tests/tldk/tldk_testconfig/test_ipv4_assemble_be.cfg b/tests/tldk/tldk_testconfig/test_ipv4_assemble_be.cfg deleted file mode 100644 index 7f7cb8e8fe..0000000000 --- a/tests/tldk/tldk_testconfig/test_ipv4_assemble_be.cfg +++ /dev/null @@ -1 +0,0 @@ -port=0,masklen=24,addr=192.168.1.56,mac=68:05:ca:27:d1:6a diff --git a/tests/tldk/tldk_testconfig/test_ipv4_assemble_fe.cfg b/tests/tldk/tldk_testconfig/test_ipv4_assemble_fe.cfg deleted file mode 100644 index f3531e0b3a..0000000000 --- a/tests/tldk/tldk_testconfig/test_ipv4_assemble_fe.cfg +++ /dev/null @@ -1,2 +0,0 @@ -#udpfwd config file -lcore=0,op=echo,laddr=0.0.0.0,lport=0x8000,raddr=0.0.0.0,rport=0 diff --git a/tests/tldk/tldk_testconfig/test_ipv4_checksum_be.cfg b/tests/tldk/tldk_testconfig/test_ipv4_checksum_be.cfg deleted file mode 100644 index c4e39e064f..0000000000 --- a/tests/tldk/tldk_testconfig/test_ipv4_checksum_be.cfg +++ /dev/null @@ -1,2 +0,0 @@ -port=0,masklen=24,addr=192.168.1.56,mac=68:05:ca:27:d1:6a -port=0,addr=2001:4860:b002::56,masklen=64,mac=68:05:ca:27:d1:6a diff --git a/tests/tldk/tldk_testconfig/test_ipv4_checksum_fe.cfg b/tests/tldk/tldk_testconfig/test_ipv4_checksum_fe.cfg deleted file mode 100644 index 9553b7085c..0000000000 --- a/tests/tldk/tldk_testconfig/test_ipv4_checksum_fe.cfg +++ /dev/null @@ -1,3 +0,0 @@ -#udpfwd config file -lcore=0,op=echo,laddr=0.0.0.0,lport=0x8000,raddr=0.0.0.0,rport=0 -lcore=0,op=echo,laddr=::,lport=0x8000,raddr=::,rport=0 diff --git a/tests/tldk/tldk_testconfig/test_ipv4_fragment_be.cfg b/tests/tldk/tldk_testconfig/test_ipv4_fragment_be.cfg deleted file mode 100644 index e769994319..0000000000 --- a/tests/tldk/tldk_testconfig/test_ipv4_fragment_be.cfg +++ /dev/null @@ -1,2 +0,0 @@ -port=0,masklen=24,addr=192.168.1.56,mac=68:05:ca:27:d1:6a,mtu=1024 -port=0,addr=2001:4860:b002::56,masklen=64,mac=68:05:ca:27:d1:6a,mtu=1024 diff --git a/tests/tldk/tldk_testconfig/test_ipv4_fragment_fe.cfg b/tests/tldk/tldk_testconfig/test_ipv4_fragment_fe.cfg deleted file mode 100644 index 9553b7085c..0000000000 --- a/tests/tldk/tldk_testconfig/test_ipv4_fragment_fe.cfg +++ /dev/null @@ -1,3 +0,0 @@ -#udpfwd config file -lcore=0,op=echo,laddr=0.0.0.0,lport=0x8000,raddr=0.0.0.0,rport=0 -lcore=0,op=echo,laddr=::,lport=0x8000,raddr=::,rport=0 diff --git a/tests/tldk/tldk_testconfig/test_ipv6_checksum_be.cfg b/tests/tldk/tldk_testconfig/test_ipv6_checksum_be.cfg deleted file mode 100644 index c4e39e064f..0000000000 --- a/tests/tldk/tldk_testconfig/test_ipv6_checksum_be.cfg +++ /dev/null @@ -1,2 +0,0 @@ -port=0,masklen=24,addr=192.168.1.56,mac=68:05:ca:27:d1:6a -port=0,addr=2001:4860:b002::56,masklen=64,mac=68:05:ca:27:d1:6a diff --git a/tests/tldk/tldk_testconfig/test_ipv6_checksum_fe.cfg b/tests/tldk/tldk_testconfig/test_ipv6_checksum_fe.cfg deleted file mode 100644 index 9553b7085c..0000000000 --- a/tests/tldk/tldk_testconfig/test_ipv6_checksum_fe.cfg +++ /dev/null @@ -1,3 +0,0 @@ -#udpfwd config file -lcore=0,op=echo,laddr=0.0.0.0,lport=0x8000,raddr=0.0.0.0,rport=0 -lcore=0,op=echo,laddr=::,lport=0x8000,raddr=::,rport=0 diff --git a/tests/tldk/tldk_testconfig/test_ipv6_fragment_be.cfg b/tests/tldk/tldk_testconfig/test_ipv6_fragment_be.cfg deleted file mode 100644 index e769994319..0000000000 --- a/tests/tldk/tldk_testconfig/test_ipv6_fragment_be.cfg +++ /dev/null @@ -1,2 +0,0 @@ -port=0,masklen=24,addr=192.168.1.56,mac=68:05:ca:27:d1:6a,mtu=1024 -port=0,addr=2001:4860:b002::56,masklen=64,mac=68:05:ca:27:d1:6a,mtu=1024 diff --git a/tests/tldk/tldk_testconfig/test_ipv6_fragment_fe.cfg b/tests/tldk/tldk_testconfig/test_ipv6_fragment_fe.cfg deleted file mode 100644 index 9553b7085c..0000000000 --- a/tests/tldk/tldk_testconfig/test_ipv6_fragment_fe.cfg +++ /dev/null @@ -1,3 +0,0 @@ -#udpfwd config file -lcore=0,op=echo,laddr=0.0.0.0,lport=0x8000,raddr=0.0.0.0,rport=0 -lcore=0,op=echo,laddr=::,lport=0x8000,raddr=::,rport=0 |