diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | .gitlab-ci.yml | 572 | ||||
| -rw-r--r-- | CMakeLists.txt | 68 | ||||
| -rw-r--r-- | Testing/Temporary/CTestCostData.txt | 1 | ||||
| -rw-r--r-- | dpdk/dpdk-17.05.2.tar.xz | bin | 9919440 -> 0 bytes | |||
| -rw-r--r-- | dpdk/patch/dpdk-17.05-config.patch | 60 | ||||
| -rw-r--r-- | dpdk/patch/dpdk-17.05-debug-config.patch | 66 | ||||
| -rw-r--r-- | dpdk/patch/dpdk-17.05-pdump.patch | 125 | ||||
| -rw-r--r-- | support/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | test/CMakeLists.txt | 120 | ||||
| -rw-r--r-- | test/fuzzing/CMakeLists.txt (renamed from fuzzing/CMakeLists.txt) | 0 | ||||
| -rw-r--r-- | test/fuzzing/FuzzingPktParser.cc (renamed from fuzzing/FuzzingPktParser.cc) | 0 | ||||
| -rw-r--r-- | test/fuzzing/seeds/10.23.160.163_to_129.226.103.217_gtp_u_in_vxlan (renamed from fuzzing/seeds/10.23.160.163_to_129.226.103.217_gtp_u_in_vxlan) | bin | 168 -> 168 bytes | |||
| -rw-r--r-- | test/fuzzing/seeds/10.33.60.116_to_217.76.77.34_GTP_DNS (renamed from fuzzing/seeds/10.33.60.116_to_217.76.77.34_GTP_DNS) | bin | 143 -> 143 bytes | |||
| -rw-r--r-- | test/fuzzing/seeds/100_95_37_122_to_149_3_200_32_gtpv1_u (renamed from fuzzing/seeds/100_95_37_122_to_149_3_200_32_gtpv1_u) | bin | 1498 -> 1498 bytes | |||
| -rw-r--r-- | test/fuzzing/seeds/178.89.4.221_to_31.13.70.49_asym_mpls_ipv4 (renamed from fuzzing/seeds/178.89.4.221_to_31.13.70.49_asym_mpls_ipv4) | bin | 82 -> 82 bytes | |||
| -rw-r--r-- | test/fuzzing/seeds/178.89.4.221_to_31.13.70.49_mpls_ipv4 (renamed from fuzzing/seeds/178.89.4.221_to_31.13.70.49_mpls_ipv4) | bin | 214 -> 214 bytes | |||
| -rw-r--r-- | test/fuzzing/seeds/178_89_4_219_to_117_122_217_89_ipv4 (renamed from fuzzing/seeds/178_89_4_219_to_117_122_217_89_ipv4) | bin | 66 -> 66 bytes | |||
| -rw-r--r-- | test/fuzzing/seeds/178_89_4_219_to_117_122_217_89_mpls_vxlan_inner (renamed from fuzzing/seeds/178_89_4_219_to_117_122_217_89_mpls_vxlan_inner) | bin | 195 -> 195 bytes | |||
| -rw-r--r-- | test/fuzzing/seeds/81.211.157.203_to_10.160.72.52_mpls_ipv4_UDP (renamed from fuzzing/seeds/81.211.157.203_to_10.160.72.52_mpls_ipv4_UDP) | bin | 119 -> 119 bytes | |||
| -rw-r--r-- | test/post_install_test/package_content_test.py | 168 | ||||
| -rw-r--r-- | test/ptf_test/CMakeLists.txt | 119 | ||||
| -rw-r--r-- | test/ptf_test/bfd_test.py (renamed from test/bfd_test.py) | 0 | ||||
| -rw-r--r-- | test/ptf_test/bridge_test.py (renamed from test/bridge_test.py) | 0 | ||||
| -rw-r--r-- | test/ptf_test/classifier_test.py (renamed from test/classifier_test.py) | 0 | ||||
| -rw-r--r-- | test/ptf_test/common_pkt.py (renamed from test/common_pkt.py) | 0 | ||||
| -rw-r--r-- | test/ptf_test/create_veth.sh (renamed from test/create_veth.sh) | 0 | ||||
| -rw-r--r-- | test/ptf_test/endpoint_dev_test.py (renamed from test/endpoint_dev_test.py) | 0 | ||||
| -rw-r--r-- | test/ptf_test/etherfabric_test.py (renamed from test/etherfabric_test.py) | 0 | ||||
| -rw-r--r-- | test/ptf_test/health_check_test.py (renamed from test/health_check_test.py) | 0 | ||||
| -rw-r--r-- | test/ptf_test/load_balance_test.py (renamed from test/load_balance_test.py) | 0 | ||||
| -rw-r--r-- | test/ptf_test/mrzcpd.py (renamed from test/mrzcpd.py) | 8 | ||||
| -rw-r--r-- | test/ptf_test/msgpack_test.py (renamed from test/msgpack_test.py) | 0 | ||||
| -rw-r--r-- | test/ptf_test/tera_test.py (renamed from test/tera_test.py) | 0 | ||||
| -rw-r--r-- | test/ptf_test/vwire_test.py (renamed from test/vwire_test.py) | 0 |
35 files changed, 484 insertions, 837 deletions
@@ -18,7 +18,7 @@ __pycache__ mpack*/ mrglobal*.conf build*/ -test/test +test/ptf_test/ptf_test /*.opendb /.vs/marsio1/v14/.suo /x64/Debug/marsio1.tlog diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f72ae77..51eb02d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,439 +2,167 @@ variables: GIT_STRATEGY: "clone" BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/marsio-build-env:dpdk-21-11-mlx5-el8" BUILD_IMAGE_CENTOS7: "git.mesalab.cn:7443/mesa_platform/marsio-build-env:dpdk-21-11-mlx5-el7" + BUILD_ROOT_DIR: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_PATH/build stages: -- build -- package -- deploy + - build + - package .build_before_script: before_script: - - mkdir -p /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_NAMESPACE/ - - ln -s $CI_PROJECT_DIR /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_PATH - - cd /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_PATH + - pip3 install msgpack + - mkdir -p /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_NAMESPACE/ + - ln -s $CI_PROJECT_DIR /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_PATH + - cd /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_PATH -.build_mrzcpd_for_centos8: - image: $BUILD_IMAGE_CENTOS8 - extends: .build_before_script - script: - - mkdir -p build - - cd build - - cmake3 .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DMACHINE=$MACHINE - - make VERBOSE=1 - -.package_mrzcpd_for_centos8: - image: $BUILD_IMAGE_CENTOS8 - extends: .build_before_script - script: - - yum install -y rpm-build - - mkdir -p build - - cd build - - cmake3 .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DMACHINE=$MACHINE - - make package VERBOSE=1 - - cp ~/rpm_upload_tools.py ./ - - python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm - -.fuzzing_mrzcpd_for_centos8: - image: $BUILD_IMAGE_CENTOS8 - extends: .build_before_script - script: - - mkdir -p build - - cd build - - cmake3 .. -DENABLE_FUZZING_TEST=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DMACHINE=$MACHINE - - make VERBOSE=1 - - cd fuzzing - - ./FuzzingPktParser -max_total_time=5 seeds/ - -build-debug-for-centos8-icelake-server: - stage: build - extends: .build_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "Debug" - MACHINE: "icelake-server" - except: - - tags - -build-release-for-centos8-icelake-server: - stage: build - extends: .build_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - MACHINE: "icelake-server" - except: - - tags - -build-debug-for-centos8-znver1: - stage: build - extends: .build_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "Debug" - MACHINE: "znver1" - except: - - tags - -build-release-for-centos8-znver1: - stage: build - extends: .build_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - MACHINE: "znver1" - except: - - tags - -build-debug-for-centos8-generic: +.build_test_and_deploy: stage: build - extends: .build_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "Debug" - MACHINE: "corei7" - except: - - tags - -build-release-for-centos8-generic: - stage: build - extends: .build_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - MACHINE: "corei7" - except: - - tags - -stable-package-debug-for-centos8-icelake-server: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "Debug" - PULP3_REPO_NAME: platform-stable-x86_64.el8 - PULP3_DIST_NAME: platform-stable-x86_64.el8 - MACHINE: "icelake-server" - artifacts: - name: "mrzcpd-debug-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - tags - -stable-package-release-for-centos8-icelake-server: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - PULP3_REPO_NAME: platform-stable-x86_64.el8 - PULP3_DIST_NAME: platform-stable-x86_64.el8 - MACHINE: "icelake-server" - artifacts: - name: "mrzcpd-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - tags - -stable-package-debug-for-centos8-znver1: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "Debug" - PULP3_REPO_NAME: platform-stable-x86_64.el8 - PULP3_DIST_NAME: platform-stable-x86_64.el8 - MACHINE: "znver1" - artifacts: - name: "mrzcpd-debug-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - tags - -stable-package-release-for-centos8-znver1: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - PULP3_REPO_NAME: platform-stable-x86_64.el8 - PULP3_DIST_NAME: platform-stable-x86_64.el8 - MACHINE: "znver1" - artifacts: - name: "mrzcpd-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - tags - -stable-package-debug-for-centos8-generic: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "Debug" - PULP3_REPO_NAME: platform-stable-x86_64.el8 - PULP3_DIST_NAME: platform-stable-x86_64.el8 - MACHINE: "corei7" - artifacts: - name: "mrzcpd-debug-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - tags - -stable-package-release-for-centos8-generic: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - PULP3_REPO_NAME: platform-stable-x86_64.el8 - PULP3_DIST_NAME: platform-stable-x86_64.el8 - MACHINE: "corei7" - artifacts: - name: "mrzcpd-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - tags - -testing-package-debug-for-centos8-icelake-server: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "Debug" - PULP3_REPO_NAME: platform-testing-x86_64.el8 - PULP3_DIST_NAME: platform-testing-x86_64.el8 - MACHINE: "icelake-server" - artifacts: - name: "mrzcpd-debug-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - /^dev.*$/i - -testing-package-release-for-centos8-icelake-server: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - PULP3_REPO_NAME: platform-testing-x86_64.el8 - PULP3_DIST_NAME: platform-testing-x86_64.el8 - MACHINE: "icelake-server" - artifacts: - name: "mrzcpd-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - /^dev.*$/i - - -testing-package-debug-for-centos8-znver1: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "Debug" - PULP3_REPO_NAME: platform-testing-x86_64.el8 - PULP3_DIST_NAME: platform-testing-x86_64.el8 - MACHINE: "znver1" - artifacts: - name: "mrzcpd-debug-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - /^dev.*$/i - -testing-package-release-for-centos8-znver1: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - PULP3_REPO_NAME: platform-testing-x86_64.el8 - PULP3_DIST_NAME: platform-testing-x86_64.el8 - MACHINE: "znver1" - artifacts: - name: "mrzcpd-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - /^dev.*$/i - -testing-package-debug-for-centos8-generic: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "Debug" - PULP3_REPO_NAME: platform-testing-x86_64.el8 - PULP3_DIST_NAME: platform-testing-x86_64.el8 - MACHINE: "corei7" - artifacts: - name: "mrzcpd-debug-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - /^dev.*$/i - -testing-package-release-for-centos8-generic: - stage: package - extends: .package_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - PULP3_REPO_NAME: platform-testing-x86_64.el8 - PULP3_DIST_NAME: platform-testing-x86_64.el8 - MACHINE: "corei7" - artifacts: - name: "mrzcpd-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - /^dev.*$/i - -fuzzing-debug-for-centos8-generic: - stage: package - extends: .fuzzing_mrzcpd_for_centos8 - tags: - - share - variables: - BUILD_TYPE: "Debug" - MACHINE: "corei7" - only: - - /^feature.*$/i - -.build_mrzcpd_for_centos7: - image: $BUILD_IMAGE_CENTOS7 - extends: .build_before_script - script: - - mkdir -p build - - cd build - - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DMACHINE=$MACHINE -DENABLE_WARNING_AS_ERROR=FALSE - - make VERBOSE=1 - -.package_mrzcpd_for_centos7: - image: $BUILD_IMAGE_CENTOS7 extends: .build_before_script - script: - - yum install -y rpm-build - - mkdir -p build - - cd build - - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DMACHINE=$MACHINE -DENABLE_WARNING_AS_ERROR=FALSE - - make package VERBOSE=1 - - cp ~/rpm_upload_tools.py ./ - - python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm - -build-debug-for-centos7-generic: - stage: build - extends: .build_mrzcpd_for_centos7 + image: ${BUILD_IMAGE_CENTOS8} tags: - - share - variables: - BUILD_TYPE: "Debug" - MACHINE: "corei7" - except: - - tags - -build-release-for-centos7-generic: + - share + script: + - set -e + - mkdir -p build + - cd build + - cmake3 .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${OTHER_CMAKE_OPTION} + - make VERBOSE=1 + - if [[ "${TEST_OPTIONS}" == *"ENABLE_CTEST"* ]]; then + cd ${BUILD_ROOT_DIR}; + ctest --output-on-failure; + fi + - if [[ "${TEST_OPTIONS}" == *"ENABLE_PACKAGE_TEST"* ]]; then + cd ${BUILD_ROOT_DIR}; + make package VERBOSE=1; + rpm -i mrzcpd*.rpm; + cd ../test/post_install_test; + python3 package_content_test.py; + fi + - if [[ "${TEST_OPTIONS}" == *"ENABLE_FUZZING"* ]]; then + cd ${BUILD_ROOT_DIR}/test/fuzzing; + ./FuzzingPktParser -max_total_time=5 seeds/; + fi + - if [[ "${ENABLE_PACKAGE}" == "True" ]]; then + cd ${BUILD_ROOT_DIR}; + make package VERBOSE=1; + cp ~/rpm_upload_tools.py ./; + python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm; + else + echo "no need to execute the deploy script"; + fi + +.build_and_test: stage: build - extends: .build_mrzcpd_for_centos7 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - MACHINE: "corei7" - except: - - tags - -stable-package-debug-for-centos7-generic: - stage: package - extends: .package_mrzcpd_for_centos7 - tags: - - share - variables: - BUILD_TYPE: "Debug" - PULP3_REPO_NAME: platform-stable-x86_64.el7 - PULP3_DIST_NAME: platform-stable-x86_64.el7 - MACHINE: "corei7" - artifacts: - name: "mrzcpd-debug-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - tags - -stable-package-release-for-centos7-generic: - stage: package - extends: .package_mrzcpd_for_centos7 - tags: - - share + extends: .build_test_and_deploy + rules: + - if: $CI_COMMIT_BRANCH =~ /^dev.*$/ + when: never + - if: $CI_COMMIT_TAG + when: never + - if: $CI_COMMIT_BRANCH + +.package_and_deploy: + stage: package + extends: .build_test_and_deploy + variables: + ENABLE_PACKAGE: "True" + artifacts: + name: "mrzcpd-$BUILD_TYPE-$CI_COMMIT_REF_NAME-binary" + paths: + - build/*.rpm + +build_for_centos8: + extends: .build_and_test + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo","Debug"] + OTHER_CMAKE_OPTION: + - "-DMACHINE=icelake-server" + - "-DMACHINE=znver1" + +build_for_centos8_and_enable_ctest: + tags: + - tsg-os-builder-el8 + extends: .build_and_test + variables: + TEST_OPTIONS: "ENABLE_CTEST" + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo","Debug"] + OTHER_CMAKE_OPTION: "-DMACHINE=corei7 -DENABLE_PTF_TEST=TRUE" + +build_for_centos7: + image: ${BUILD_IMAGE_CENTOS7} + extends: .build_and_test + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo","Debug"] + OTHER_CMAKE_OPTION: "-DMACHINE=corei7 -DENABLE_WARNING_AS_ERROR=FALSE" + +stable-package-for-centos8: + extends: .package_and_deploy + variables: + TEST_OPTIONS: "ENABLE_PACKAGE_TEST" + PULP3_REPO_NAME: "platform-stable-x86_64.el8" + PULP3_DIST_NAME: "platform-stable-x86_64.el8" + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo","Debug"] + OTHER_CMAKE_OPTION: + - "-DMACHINE=icelake-server" + - "-DMACHINE=znver1" + - "-DMACHINE=corei7" + rules: + - if: $CI_COMMIT_TAG + +stable-package-for-centos7: + image: ${BUILD_IMAGE_CENTOS7} + extends: .package_and_deploy + variables: + PULP3_REPO_NAME: "platform-stable-x86_64.el7" + PULP3_DIST_NAME: "platform-stable-x86_64.el7" + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo","Debug"] + OTHER_CMAKE_OPTION: "-DMACHINE=corei7 -DENABLE_WARNING_AS_ERROR=FALSE" + rules: + - if: $CI_COMMIT_TAG + +testing-package-for-centos8: + extends: .package_and_deploy + variables: + TEST_OPTIONS: "ENABLE_PACKAGE_TEST" + PULP3_REPO_NAME: "platform-testing-x86_64.el8" + PULP3_DIST_NAME: "platform-testing-x86_64.el8" + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo","Debug"] + OTHER_CMAKE_OPTION: + - "-DMACHINE=icelake-server" + - "-DMACHINE=znver1" + - "-DMACHINE=corei7" + rules: + - if: $CI_COMMIT_BRANCH =~ /^dev.*$/ + +testing-package-for-centos7: + image: ${BUILD_IMAGE_CENTOS7} + extends: .package_and_deploy + variables: + PULP3_REPO_NAME: "platform-testing-x86_64.el7" + PULP3_DIST_NAME: "platform-testing-x86_64.el7" + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo","Debug"] + OTHER_CMAKE_OPTION: "-DMACHINE=corei7 -DENABLE_WARNING_AS_ERROR=FALSE" + rules: + - if: $CI_COMMIT_BRANCH =~ /^dev.*$/ + +fuzzing_mrzcpd_for_centos8: + extends: .build_and_test variables: BUILD_TYPE: "RelWithDebInfo" - PULP3_REPO_NAME: platform-stable-x86_64.el7 - PULP3_DIST_NAME: platform-stable-x86_64.el7 - MACHINE: "corei7" - artifacts: - name: "mrzcpd-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - tags + OTHER_CMAKE_OPTION: "-DMACHINE=corei7 -DENABLE_FUZZING_TEST=ON" + rules: + - if: $CI_COMMIT_BRANCH =~ /^fuzzing/ -testing-package-debug-for-centos7-generic: - stage: package - extends: .package_mrzcpd_for_centos7 - tags: - - share - variables: - BUILD_TYPE: "Debug" - PULP3_REPO_NAME: platform-testing-x86_64.el7 - PULP3_DIST_NAME: platform-testing-x86_64.el7 - MACHINE: "corei7" - artifacts: - name: "mrzcpd-debug-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - /^dev.*$/i -testing-package-release-for-centos7-generic: - stage: package - extends: .package_mrzcpd_for_centos7 - tags: - - share - variables: - BUILD_TYPE: "RelWithDebInfo" - PULP3_REPO_NAME: platform-testing-x86_64.el7 - PULP3_DIST_NAME: platform-testing-x86_64.el7 - MACHINE: "corei7" - artifacts: - name: "mrzcpd-$CI_COMMIT_REF_NAME-binary" - paths: - - build/*.rpm - only: - - /^dev.*$/i diff --git a/CMakeLists.txt b/CMakeLists.txt index 9897e77..712890f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,22 +9,28 @@ endif() project(marsio) +# option +option(ENABLE_WARNING_AS_ERROR "Enable all optional warnings which are desirable for normal code" TRUE) +option(ENABLE_SANITIZE_ADDRESS "Enable AddressSanitizer" FALSE) +option(ENABLE_SANITIZE_THREAD "Enable ThreadSanitizer" FALSE) +option(ENABLE_VNODE_CHECK_THREAD_SAFE "Enable concurrent write thread-safe check for VNODE." FALSE) +option(ENABLE_PTF_TEST "Enable ptf test." FALSE) + +# envirment message("CMake version: ${CMAKE_VERSION}") message(STATUS "C Compiler Version: ${CMAKE_C_COMPILER_VERSION}") message(STATUS "CXX Compiler Version: ${CMAKE_CXX_COMPILER_VERSION}") message(STATUS "C Standard: ${CMAKE_C_STANDARD}") message(STATUS "C++ Standard: ${CMAKE_CXX_STANDARD}") - +# machine set(COREI7 "corei7") set(ICELAKE_SERVER "icelake-server") set(ZNVER1 "znver1") set(SUPPORTED_MACHINES ${COREI7} ${ICELAKE_SERVER} ${ZNVER1}) - if(NOT MACHINE) set(MACHINE "corei7") endif() - list(FIND SUPPORTED_MACHINES ${MACHINE} INDEX) if(${INDEX} GREATER -1) message(STATUS "current MACHINE is ${MACHINE}.") @@ -32,23 +38,7 @@ else() message(FATAL_ERROR "${MACHINE} is not in the support machines list.") endif() -# Include Modules -set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) - -find_package(PCAP REQUIRED) -link_directories(${PCAP_LIBRARY_DIR}) -include_directories(${PCAP_INCLUDE_DIR}) - -# version -include(Version) - -# EXTRA Flags -# GNU99 and C++11 Support -option(ENABLE_WARNING_AS_ERROR "Enable all optional warnings which are desirable for normal code" TRUE) -option(ENABLE_SANITIZE_ADDRESS "Enable AddressSanitizer" FALSE) -option(ENABLE_SANITIZE_THREAD "Enable ThreadSanitizer" FALSE) -option(ENABLE_VNODE_CHECK_THREAD_SAFE "Enable concurrent write thread-safe check for VNODE." FALSE) - +# FLAGS and define set(CMAKE_C_FLAGS "-std=gnu99 -m64 -march=${MACHINE} -fPIC -Wall -Wno-format-truncation") set(CMAKE_CXX_FLAGS "-std=gnu++11 -m64 -march=${MACHINE} -fPIC -Wall -Wno-format-truncation") @@ -82,22 +72,21 @@ if(ENABLE_FUZZING_TEST) set(OTHER_FLAGS "-fPIC -m64 -march=${MACHINE}") set(CMAKE_C_FLAGS "${FSANITIZE_FUZZER_FLAGS} ${COVERAGE_FLAGS} ${OTHER_FLAGS}") set(CMAKE_CXX_FLAGS "${FSANITIZE_FUZZER_FLAGS} ${COVERAGE_FLAGS} ${OTHER_FLAGS}") - add_subdirectory(fuzzing) +endif() + +if(ENABLE_PTF_TEST OR ENABLE_FUZZING_TEST) + enable_testing() endif() if(ENABLE_VNODE_CHECK_THREAD_SAFE) add_definitions(-DVNODE_CHECK_THREAD_SAFE) endif() -# Default Install Destination Directory -set(CMAKE_INSTALL_PREFIX /opt/tsg/mrzcpd) add_definitions(-D_GNU_SOURCE -D__STDC_LIMIT_MACROS) add_definitions(-DALLOW_EXPERIMENTAL_API=1) -include_directories(include/external) -include_directories(include/internal) - # Install Dirs +set(CMAKE_INSTALL_PREFIX /opt/tsg/mrzcpd) set(MR_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) set(MR_INSTALL_LIBDIR ${MACHINE}/lib) set(MR_INSTALL_BINDIR ${MACHINE}/bin) @@ -125,6 +114,17 @@ endif() exec_program(pkg-config ARGS systemd --variable=systemdsystemunitdir OUTPUT_VARIABLE MR_INSTALL_SYSUNITDIR) +# compile +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) +include(Version) + +include_directories(include/external) +include_directories(include/internal) + +find_package(PCAP REQUIRED) +link_directories(${PCAP_LIBRARY_DIR}) +include_directories(${PCAP_INCLUDE_DIR}) + add_subdirectory(${CMAKE_SOURCE_DIR}/support) add_subdirectory(${CMAKE_SOURCE_DIR}/include) add_subdirectory(${CMAKE_SOURCE_DIR}/infra) @@ -135,18 +135,14 @@ add_subdirectory(${CMAKE_SOURCE_DIR}/pag) add_subdirectory(${CMAKE_SOURCE_DIR}/examples) add_subdirectory(${CMAKE_SOURCE_DIR}/tools) add_subdirectory(${CMAKE_SOURCE_DIR}/conf) -#add_subdirectory(${CMAKE_SOURCE_DIR}/test) +add_subdirectory(${CMAKE_SOURCE_DIR}/test) -if(BUILD_TESTS) - enable_testing() - add_subdirectory(test) -endif() - -add_custom_target("install-program" COMMAND ${CMAKE_COMMAND} ARGS -DCOMPONENT=Program -P cmake_install.cmake) -add_custom_target("install-profile" COMMAND ${CMAKE_COMMAND} ARGS -DCOMPONENT=Profile -P cmake_install.cmake) +# add_custom_target("install-program" COMMAND ${CMAKE_COMMAND} ARGS -DCOMPONENT=Program -P cmake_install.cmake) +# add_custom_target("install-profile" COMMAND ${CMAKE_COMMAND} ARGS -DCOMPONENT=Profile -P cmake_install.cmake) message(STATUS "Packet I/O Middleware based on DPDK(Marsio), Version: ${MARSIO_VERSION}") -# packed -include(Package) +# package include(InstallDPDK) +include(Package) + diff --git a/Testing/Temporary/CTestCostData.txt b/Testing/Temporary/CTestCostData.txt deleted file mode 100644 index ed97d53..0000000 --- a/Testing/Temporary/CTestCostData.txt +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/dpdk/dpdk-17.05.2.tar.xz b/dpdk/dpdk-17.05.2.tar.xz Binary files differdeleted file mode 100644 index a983125..0000000 --- a/dpdk/dpdk-17.05.2.tar.xz +++ /dev/null diff --git a/dpdk/patch/dpdk-17.05-config.patch b/dpdk/patch/dpdk-17.05-config.patch deleted file mode 100644 index beecd10..0000000 --- a/dpdk/patch/dpdk-17.05-config.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff -ru dpdk-17.05/config/common_base dpdk-17.05.mr4/config/common_base ---- dpdk-17.05/config/common_base 2017-05-11 09:11:34.000000000 +0800 -+++ dpdk-17.05.mr4/config/common_base 2017-06-29 11:26:11.054905786 +0800 -@@ -90,7 +90,7 @@ - CONFIG_RTE_LIBRTE_EAL=y - CONFIG_RTE_MAX_LCORE=128 - CONFIG_RTE_MAX_NUMA_NODES=8 --CONFIG_RTE_MAX_MEMSEG=256 -+CONFIG_RTE_MAX_MEMSEG=512 - CONFIG_RTE_MAX_MEMZONE=2560 - CONFIG_RTE_MAX_TAILQ=32 - CONFIG_RTE_LOG_LEVEL=RTE_LOG_INFO -@@ -181,7 +181,7 @@ - CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX_FREE=n - CONFIG_RTE_LIBRTE_IXGBE_DEBUG_DRIVER=n - CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n --CONFIG_RTE_IXGBE_INC_VECTOR=y -+CONFIG_RTE_IXGBE_INC_VECTOR=n - - # - # Compile burst-oriented I40E PMD driver -@@ -191,7 +191,7 @@ - CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n - CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n - CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y --CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y -+CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=n - CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n - CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64 - CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VF=4 -@@ -363,7 +363,7 @@ - # - # Compile software PMD backed by PCAP files - # --CONFIG_RTE_LIBRTE_PMD_PCAP=n -+CONFIG_RTE_LIBRTE_PMD_PCAP=y - - # - # Compile link bonding PMD library -@@ -387,7 +387,7 @@ - # - # Compile software PMD backed by AF_PACKET sockets (Linux only) - # --CONFIG_RTE_LIBRTE_PMD_AF_PACKET=n -+CONFIG_RTE_LIBRTE_PMD_AF_PACKET=y - - # - # Compile ARK PMD -diff -ru dpdk-17.05/lib/librte_eal/common/include/rte_memzone.h dpdk-17.05.mr4/lib/librte_eal/common/include/rte_memzone.h ---- dpdk-17.05/lib/librte_eal/common/include/rte_memzone.h 2017-05-11 09:11:34.000000000 +0800 -+++ dpdk-17.05.mr4/lib/librte_eal/common/include/rte_memzone.h 2017-06-29 11:27:25.990907337 +0800 -@@ -75,7 +75,7 @@ - */ - struct rte_memzone { - --#define RTE_MEMZONE_NAMESIZE 32 /**< Maximum length of memory zone name.*/ -+#define RTE_MEMZONE_NAMESIZE 64 /**< Maximum length of memory zone name.*/ - char name[RTE_MEMZONE_NAMESIZE]; /**< Name of the memory zone. */ - - phys_addr_t phys_addr; /**< Start physical address. */ diff --git a/dpdk/patch/dpdk-17.05-debug-config.patch b/dpdk/patch/dpdk-17.05-debug-config.patch deleted file mode 100644 index 2a20c3b..0000000 --- a/dpdk/patch/dpdk-17.05-debug-config.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff -ru dpdk-17.05/config/common_base dpdk-17.05.mr4.debug/config/common_base ---- dpdk-17.05/config/common_base 2017-05-11 09:11:34.000000000 +0800 -+++ dpdk-17.05.mr4.debug/config/common_base 2017-10-12 21:09:24.334524378 +0800 -@@ -90,11 +90,11 @@ - CONFIG_RTE_LIBRTE_EAL=y - CONFIG_RTE_MAX_LCORE=128 - CONFIG_RTE_MAX_NUMA_NODES=8 --CONFIG_RTE_MAX_MEMSEG=256 -+CONFIG_RTE_MAX_MEMSEG=512 - CONFIG_RTE_MAX_MEMZONE=2560 - CONFIG_RTE_MAX_TAILQ=32 --CONFIG_RTE_LOG_LEVEL=RTE_LOG_INFO --CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO -+CONFIG_RTE_LOG_LEVEL=RTE_LOG_DEBUG -+CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_DEBUG - CONFIG_RTE_LOG_HISTORY=256 - CONFIG_RTE_BACKTRACE=y - CONFIG_RTE_LIBEAL_USE_HPET=n -@@ -181,7 +181,7 @@ - CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX_FREE=n - CONFIG_RTE_LIBRTE_IXGBE_DEBUG_DRIVER=n - CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n --CONFIG_RTE_IXGBE_INC_VECTOR=y -+CONFIG_RTE_IXGBE_INC_VECTOR=n - - # - # Compile burst-oriented I40E PMD driver -@@ -191,7 +191,7 @@ - CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n - CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n - CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y --CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y -+CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=n - CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n - CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64 - CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VF=4 -@@ -363,7 +363,7 @@ - # - # Compile software PMD backed by PCAP files - # --CONFIG_RTE_LIBRTE_PMD_PCAP=n -+CONFIG_RTE_LIBRTE_PMD_PCAP=y - - # - # Compile link bonding PMD library -@@ -387,7 +387,7 @@ - # - # Compile software PMD backed by AF_PACKET sockets (Linux only) - # --CONFIG_RTE_LIBRTE_PMD_AF_PACKET=n -+CONFIG_RTE_LIBRTE_PMD_AF_PACKET=y - - # - # Compile ARK PMD -diff -ru dpdk-17.05/lib/librte_eal/common/include/rte_memzone.h dpdk-17.05.mr4.debug/lib/librte_eal/common/include/rte_memzone.h ---- dpdk-17.05/lib/librte_eal/common/include/rte_memzone.h 2017-05-11 09:11:34.000000000 +0800 -+++ dpdk-17.05.mr4.debug/lib/librte_eal/common/include/rte_memzone.h 2017-10-12 21:09:02.561523927 +0800 -@@ -75,7 +75,7 @@ - */ - struct rte_memzone { - --#define RTE_MEMZONE_NAMESIZE 32 /**< Maximum length of memory zone name.*/ -+#define RTE_MEMZONE_NAMESIZE 64 /**< Maximum length of memory zone name.*/ - char name[RTE_MEMZONE_NAMESIZE]; /**< Name of the memory zone. */ - - phys_addr_t phys_addr; /**< Start physical address. */ diff --git a/dpdk/patch/dpdk-17.05-pdump.patch b/dpdk/patch/dpdk-17.05-pdump.patch deleted file mode 100644 index 4c871cc..0000000 --- a/dpdk/patch/dpdk-17.05-pdump.patch +++ /dev/null @@ -1,125 +0,0 @@ ---- dpdk-17.05/app/pdump/main.c 2017-05-11 09:11:34.000000000 +0800 -+++ dpdk-17.05.mr4/app/pdump/main.c 2017-10-20 14:00:10.274132214 +0800 -@@ -654,26 +654,35 @@ - /* if captured packets has to send to the same vdev */ - /* create rx_ring */ - snprintf(ring_name, SIZE, RX_RING, i); -- pt->rx_ring = rte_ring_create(ring_name, pt->ring_size, -- rte_socket_id(), 0); -- if (pt->rx_ring == NULL) { -- cleanup_rings(); -- rte_exit(EXIT_FAILURE, "%s:%s:%d\n", -- rte_strerror(rte_errno), -- __func__, __LINE__); -+ pt->rx_ring = rte_ring_lookup(ring_name); -+ if(pt->rx_ring == NULL) -+ { -+ pt->rx_ring = rte_ring_create(ring_name, pt->ring_size, -+ rte_socket_id(), 0); -+ -+ if (pt->rx_ring == NULL) { -+ cleanup_rings(); -+ rte_exit(EXIT_FAILURE, "%s:%s:%d\n", -+ rte_strerror(rte_errno), -+ __func__, __LINE__); -+ } - } - - /* create tx_ring */ - snprintf(ring_name, SIZE, TX_RING, i); -- pt->tx_ring = rte_ring_create(ring_name, pt->ring_size, -- rte_socket_id(), 0); -- if (pt->tx_ring == NULL) { -- cleanup_rings(); -- rte_exit(EXIT_FAILURE, "%s:%s:%d\n", -- rte_strerror(rte_errno), -- __func__, __LINE__); -- } -+ pt->tx_ring = rte_ring_lookup(ring_name); -+ if(pt->tx_ring == NULL) -+ { -+ pt->tx_ring = rte_ring_create(ring_name, pt->ring_size, -+ rte_socket_id(), 0); - -+ if (pt->tx_ring == NULL) { -+ cleanup_rings(); -+ rte_exit(EXIT_FAILURE, "%s:%s:%d\n", -+ rte_strerror(rte_errno), -+ __func__, __LINE__); -+ } -+ } - /* create vdevs */ - (pt->rx_vdev_stream_type == IFACE) ? - snprintf(vdev_args, SIZE, VDEV_IFACE, RX_STR, i, -@@ -703,8 +712,8 @@ - &portid) < 0) { - cleanup_rings(); - rte_exit(EXIT_FAILURE, -- "vdev creation failed:" -- "%s:%d\n", __func__, __LINE__); -+ "vdev creation failed:" -+ "%s:%d\n", __func__, __LINE__); - } - pt->tx_vdev_id = portid; - -@@ -715,12 +724,17 @@ - - /* create rx_ring */ - snprintf(ring_name, SIZE, RX_RING, i); -- pt->rx_ring = rte_ring_create(ring_name, pt->ring_size, -- rte_socket_id(), 0); -- if (pt->rx_ring == NULL) { -- cleanup_rings(); -- rte_exit(EXIT_FAILURE, "%s\n", -- rte_strerror(rte_errno)); -+ pt->rx_ring = rte_ring_lookup(ring_name); -+ if(pt->rx_ring == NULL) -+ { -+ pt->rx_ring = rte_ring_create(ring_name, pt->ring_size, -+ rte_socket_id(), 0); -+ -+ if (pt->rx_ring == NULL) { -+ cleanup_rings(); -+ rte_exit(EXIT_FAILURE, "%s\n", -+ rte_strerror(rte_errno)); -+ } - } - - (pt->rx_vdev_stream_type == IFACE) ? -@@ -741,12 +755,17 @@ - - /* create tx_ring */ - snprintf(ring_name, SIZE, TX_RING, i); -- pt->tx_ring = rte_ring_create(ring_name, pt->ring_size, -- rte_socket_id(), 0); -- if (pt->tx_ring == NULL) { -- cleanup_rings(); -- rte_exit(EXIT_FAILURE, "%s\n", -- rte_strerror(rte_errno)); -+ pt->tx_ring = rte_ring_lookup(ring_name); -+ if(pt->tx_ring == NULL) -+ { -+ pt->tx_ring = rte_ring_create(ring_name, pt->ring_size, -+ rte_socket_id(), 0); -+ -+ if (pt->tx_ring == NULL) { -+ cleanup_rings(); -+ rte_exit(EXIT_FAILURE, "%s\n", -+ rte_strerror(rte_errno)); -+ } - } - - (pt->tx_vdev_stream_type == IFACE) ? -@@ -902,6 +921,12 @@ - rte_exit(EXIT_FAILURE, "Invalid argument\n"); - } - -+ for(i = 0; i < num_tuples; i++) -+ { -+ struct pdump_tuples * pt = &pdump_t[i]; -+ disable_pdump(pt); -+ } -+ - /* create mempool, ring and vdevs info */ - create_mp_ring_vdev(); - enable_pdump(); diff --git a/support/CMakeLists.txt b/support/CMakeLists.txt index 7d30e3a..d06256a 100644 --- a/support/CMakeLists.txt +++ b/support/CMakeLists.txt @@ -114,12 +114,12 @@ else() endif() set(DPDK_MESON_DISABLED_DRIVERS "common/cpt,common/dpaax,common/octeontx,common/octeontx2,common/sfc_efx,\ - common/qat,bus/dpaa,bus/fslmc,bus/ifpga,bus/vmbus,mempool/bucket,mempool/dpaa,\ - mempool/dpaa2,mempool/octeontx,mempool/octeontx2,mempool/stack,raw/ifpga,raw/ioat,\ - raw/ntb,raw/octeontx2_dma,raw/octeontx2_ep,raw/skeleton,compress/zlib,regex/octeontx2,\ - vdpa/ifc,event/skeleton,event/dlb,event/dlb2,event/opdl,sevent/keleton,event/sw,event/dsw,\ - baseband/null,baseband/turbo_sw,baseband/fpga_lte_fec,baseband/fpga_5gnr_fec,baseband/acc100,\ - crypto/bcmfs,crypto/ccp,crypto/nitrox,crypto/null,crypto/openssl,crypto/scheduler,crypto/virtio") +common/qat,bus/dpaa,bus/fslmc,bus/ifpga,bus/vmbus,mempool/bucket,mempool/dpaa,\ +mempool/dpaa2,mempool/octeontx,mempool/octeontx2,mempool/stack,raw/ifpga,raw/ioat,\ +raw/ntb,raw/octeontx2_dma,raw/octeontx2_ep,raw/skeleton,compress/zlib,regex/octeontx2,\ +vdpa/ifc,event/skeleton,event/dlb,event/dlb2,event/opdl,sevent/keleton,event/sw,event/dsw,\ +baseband/null,baseband/turbo_sw,baseband/fpga_lte_fec,baseband/fpga_5gnr_fec,baseband/acc100,\ +crypto/bcmfs,crypto/ccp,crypto/nitrox,crypto/null,crypto/openssl,crypto/scheduler,crypto/virtio") # Although default_library=static has been set, both dynamic and static libraries are compiled. a little strange ExternalProject_Add(dpdk PREFIX dpdk diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 58ec534..f048460 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,119 +1,7 @@ -include_directories(${CMAKE_SOURCE_DIR}/include) -include_directories(${CMAKE_SOURCE_DIR}/include/extern) -include_directories(${CMAKE_SOURCE_DIR}/include/internal) -include_directories(${CMAKE_SOURCE_DIR}) - -# Create veth -execute_process( - COMMAND /bin/bash ${CMAKE_SOURCE_DIR}/test/create_veth.sh create 24 - RESULT_VARIABLE VETH_RESULT - OUTPUT_VARIABLE VETH_OUTPUT - ERROR_VARIABLE VETH_ERROR - OUTPUT_STRIP_TRAILING_WHITESPACE -) - -# Check veth create -if(VETH_RESULT) -message(FATAL_ERROR "${CMAKE_SOURCE_DIR}/test/create_veth.sh create 24") - message(FATAL_ERROR "Failed to create veth: ${VETH_ERROR}") +if(ENABLE_PTF_TEST) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ptf_test) endif() -# Create veth for msgpack -execute_process( - COMMAND /bin/bash ${CMAKE_SOURCE_DIR}/test/create_veth.sh create msgpack - RESULT_VARIABLE VETH_RESULT - OUTPUT_VARIABLE VETH_OUTPUT - ERROR_VARIABLE VETH_ERROR - OUTPUT_STRIP_TRAILING_WHITESPACE -) - -# Check veth create for msgpack -if(VETH_RESULT) -message(FATAL_ERROR "${CMAKE_SOURCE_DIR}/test/create_veth.sh create msgpack") - message(FATAL_ERROR "Failed to create veth: ${VETH_ERROR}") +if(ENABLE_FUZZING_TEST) + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/fuzzing) endif() - -# Script for generating "--interface" -# for i in range(0, 24): -# print(f"--interface {i}@veth{i}-ptf{i}", end=" ") - -# Add vwire test -add_test( - NAME vwire_test - COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test - --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 --interface 2@veth2-ptf2 --interface 3@veth3-ptf3 --interface 4@veth4-ptf4 --interface 5@veth5-ptf5 --interface 6@veth6-ptf6 --interface 7@veth7-ptf7 --interface 8@veth8-ptf8 --interface 9@veth9-ptf9 --interface 10@veth10-ptf10 --interface 11@veth11-ptf11 --interface 12@veth12-ptf12 --interface 13@veth13-ptf13 --interface 14@veth14-ptf14 --interface 15@veth15-ptf15 --interface 16@veth16-ptf16 --interface 17@veth17-ptf17 --interface 18@veth18-ptf18 --interface 19@veth19-ptf19 --interface 20@veth20-ptf20 --interface 21@veth21-ptf21 --interface 22@veth22-ptf22 --interface 23@veth23-ptf23 - vwire_test id_non_contiguous_test --test-params "source_dir='${CMAKE_SOURCE_DIR}'" -) - -# Add bfd test -add_test( - NAME bfd_test - COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test - --interface 0@veth0-ptf0 - bfd_test_for_etherfabric bfd_test_for_bfdd --test-params "source_dir='${CMAKE_SOURCE_DIR}'" -) - -# Add bridge test -add_test( - NAME bridge_test - COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test - --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 --interface 2@veth2-ptf2 --interface 3@veth3-ptf3 - bridge_test_unicast bridge_test_broadcast bridge_test_master_device --test-params "source_dir='${CMAKE_SOURCE_DIR}'" -) - - -# Add classifier test -add_test( - NAME classifier_test - COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test - --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 --interface 2@veth2-ptf2 --interface 3@veth3-ptf3 --interface 4@veth4-ptf4 --interface 5@veth5-ptf5 - classifier_test_base full_field_match_test --test-params "source_dir='${CMAKE_SOURCE_DIR}'" -) - -# Add etherfabric test -add_test( - NAME etherfabric_test - COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test - --interface 0@veth0-ptf0 - virtual_wire_mode tap_mode ef_route_ctx_test ef_adapter_id_non_contiguous_test --test-params "source_dir='${CMAKE_SOURCE_DIR}'" -) - -# Add health_check test -add_test( - NAME health_check - COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test - --interface 0@veth0-ptf0 - health_check_base_test --test-params "source_dir='${CMAKE_SOURCE_DIR}'" -) - -# Add load_balance test -add_test( - NAME load_balance - COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test - --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 --interface 2@veth2-ptf2 --interface 3@veth3-ptf3 --interface 4@veth4-ptf4 - lb_base_test --test-params "source_dir='${CMAKE_SOURCE_DIR}'" -) - -# Add msgpack test -add_test( - NAME msgpack_test - COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test - --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 --interface 2@veth2-ptf2 - msgpack_serialize_test msgpack_deserialize_test msgpack_serialize_and_deserialize_test --test-params "source_dir='${CMAKE_SOURCE_DIR}'" -) - -# Add endpoint dev test -add_test( - NAME endpoint_dev_test - COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test - --interface 0@veth0-ptf0 - icmp_reply_test --test-params "source_dir='${CMAKE_SOURCE_DIR}'" -) - -# Add tera test -add_test( - NAME tera_test - COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_SOURCE_DIR}/test - --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 - tera_base_test tera_mpack_test tera_nf_test tera_route_ctx_test tera_adapter_id_non_contiguous_test --test-params "source_dir='${CMAKE_SOURCE_DIR}'" -) diff --git a/fuzzing/CMakeLists.txt b/test/fuzzing/CMakeLists.txt index 3f1b8c6..3f1b8c6 100644 --- a/fuzzing/CMakeLists.txt +++ b/test/fuzzing/CMakeLists.txt diff --git a/fuzzing/FuzzingPktParser.cc b/test/fuzzing/FuzzingPktParser.cc index 5ed1074..5ed1074 100644 --- a/fuzzing/FuzzingPktParser.cc +++ b/test/fuzzing/FuzzingPktParser.cc diff --git a/fuzzing/seeds/10.23.160.163_to_129.226.103.217_gtp_u_in_vxlan b/test/fuzzing/seeds/10.23.160.163_to_129.226.103.217_gtp_u_in_vxlan Binary files differindex 54b6081..54b6081 100644 --- a/fuzzing/seeds/10.23.160.163_to_129.226.103.217_gtp_u_in_vxlan +++ b/test/fuzzing/seeds/10.23.160.163_to_129.226.103.217_gtp_u_in_vxlan diff --git a/fuzzing/seeds/10.33.60.116_to_217.76.77.34_GTP_DNS b/test/fuzzing/seeds/10.33.60.116_to_217.76.77.34_GTP_DNS Binary files differindex 9fa74ff..9fa74ff 100644 --- a/fuzzing/seeds/10.33.60.116_to_217.76.77.34_GTP_DNS +++ b/test/fuzzing/seeds/10.33.60.116_to_217.76.77.34_GTP_DNS diff --git a/fuzzing/seeds/100_95_37_122_to_149_3_200_32_gtpv1_u b/test/fuzzing/seeds/100_95_37_122_to_149_3_200_32_gtpv1_u Binary files differindex 47448dd..47448dd 100644 --- a/fuzzing/seeds/100_95_37_122_to_149_3_200_32_gtpv1_u +++ b/test/fuzzing/seeds/100_95_37_122_to_149_3_200_32_gtpv1_u diff --git a/fuzzing/seeds/178.89.4.221_to_31.13.70.49_asym_mpls_ipv4 b/test/fuzzing/seeds/178.89.4.221_to_31.13.70.49_asym_mpls_ipv4 Binary files differindex a57e978..a57e978 100644 --- a/fuzzing/seeds/178.89.4.221_to_31.13.70.49_asym_mpls_ipv4 +++ b/test/fuzzing/seeds/178.89.4.221_to_31.13.70.49_asym_mpls_ipv4 diff --git a/fuzzing/seeds/178.89.4.221_to_31.13.70.49_mpls_ipv4 b/test/fuzzing/seeds/178.89.4.221_to_31.13.70.49_mpls_ipv4 Binary files differindex 4f8d2d6..4f8d2d6 100644 --- a/fuzzing/seeds/178.89.4.221_to_31.13.70.49_mpls_ipv4 +++ b/test/fuzzing/seeds/178.89.4.221_to_31.13.70.49_mpls_ipv4 diff --git a/fuzzing/seeds/178_89_4_219_to_117_122_217_89_ipv4 b/test/fuzzing/seeds/178_89_4_219_to_117_122_217_89_ipv4 Binary files differindex 1e6e60a..1e6e60a 100644 --- a/fuzzing/seeds/178_89_4_219_to_117_122_217_89_ipv4 +++ b/test/fuzzing/seeds/178_89_4_219_to_117_122_217_89_ipv4 diff --git a/fuzzing/seeds/178_89_4_219_to_117_122_217_89_mpls_vxlan_inner b/test/fuzzing/seeds/178_89_4_219_to_117_122_217_89_mpls_vxlan_inner Binary files differindex fb32228..fb32228 100644 --- a/fuzzing/seeds/178_89_4_219_to_117_122_217_89_mpls_vxlan_inner +++ b/test/fuzzing/seeds/178_89_4_219_to_117_122_217_89_mpls_vxlan_inner diff --git a/fuzzing/seeds/81.211.157.203_to_10.160.72.52_mpls_ipv4_UDP b/test/fuzzing/seeds/81.211.157.203_to_10.160.72.52_mpls_ipv4_UDP Binary files differindex c57c758..c57c758 100644 --- a/fuzzing/seeds/81.211.157.203_to_10.160.72.52_mpls_ipv4_UDP +++ b/test/fuzzing/seeds/81.211.157.203_to_10.160.72.52_mpls_ipv4_UDP diff --git a/test/post_install_test/package_content_test.py b/test/post_install_test/package_content_test.py new file mode 100644 index 0000000..3e0623e --- /dev/null +++ b/test/post_install_test/package_content_test.py @@ -0,0 +1,168 @@ +import os +import subprocess +import sys +# import magic + +class tools: + def __init__(self): + pass + + def is_package_installed(self, package_name): + query_package_cmd = "rpm -qa | grep " + package_name + # capture_output requires Python version 3.7 or higher + # result = subprocess.run(query_package_cmd, shell=True, capture_output=True, text=True) + result = subprocess.run(query_package_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if result.returncode != 0: + print(f"query {package_name} fail. error: {result.stderr.decode('utf-8')}") + return False + print(result.stdout.decode('utf-8')) + return package_name in result.stdout.decode('utf-8') + + def check_path_exists(self, path): + # Existing path returns True. + # Returns False for broken symbolic links. + if os.path.exists(path): + if os.path.islink(path): + real_path = os.path.realpath(path) + if os.path.exists(real_path): + print(f"The final path for {path} is {real_path}") + else: + print(f"{real_path} not exists") + return False + else: + print(f"{path} exists") + return True + else: + print(f"{path} not exists") + return False + + # def is_elf_file(self, file_path): + # mime = magic.Magic() + # file_type = mime.from_file(file_path) + # print(f"{file_path} file type: {file_type}") + # return "ELF" in file_type + + def check_symbol_exists(self, binary_name): + check_symbol_cmd = "eu-unstrip -n -e " + binary_name + result = subprocess.run(check_symbol_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if result.returncode != 0: + print(f"error: {result.stderr.decode('utf-8')}") + return False + symbol_info = result.stdout.decode('utf-8').split() + if len(symbol_info) < 4: + return False + print(f"{binary_name} symbol path is: {symbol_info[3]}") + return self.check_path_exists(symbol_info[3]) + +class package_content_test: + def __init__(self): + self.install_path = "/opt/tsg/mrzcpd" + + self.package_conf_files = [ + "/etc/ld.so.conf.d/mrzcpd.conf", + "/etc/profile.d/mrzcpd.sh", + "/etc/sysconfig/mrzcpd" + ] + + self.package_etc_files = [ + self.install_path + "/etc", + self.install_path + "/etc/mrapm.conf", + self.install_path + "/etc/mrglobal.conf", + self.install_path + "/etc/mrtunnat.conf" + ] + + self.package_bin_files = [ + self.install_path + "/bin", + self.install_path + "/bin/devbind.py", + self.install_path + "/bin/dpdk-devbind.py", + self.install_path + "/bin/dpdk-hugepages.py", + self.install_path + "/bin/monit_device", + self.install_path + "/bin/monit_obp", + self.install_path + "/bin/monit_stream", + self.install_path + "/bin/mrmarch", + self.install_path + "/bin/mrpdump", + self.install_path + "/bin/mrtools-pinfo", + self.install_path + "/bin/mrzcpd" + ] + + self.package_include_files = [ + self.install_path + "/include", + self.install_path + "/include/libpag.h", + self.install_path + "/include/marsio.h", + self.install_path + "/include/mrtunnat.h", + ] + + self.package_lib_files = [ + self.install_path + "/lib", + self.install_path + "/lib/libmarsio.so", + self.install_path + "/lib/libpag.so", + self.install_path + "/lib/librte_common_mlx5_glue.so", + # self.install_path + "/lib/librte_net_mlx4_glue.so", + self.install_path + "/lib/pkgconfig/mrzcpd.pc", + ] + + self.package_altdir_files = [ + self.install_path + "/altdir/devbind.py", + self.install_path + "/altdir/dpdk-devbind.py", + self.install_path + "/altdir/dpdk-hugepages.py", + self.install_path + "/altdir/include", + self.install_path + "/altdir/lib", + self.install_path + "/altdir/monit_device", + self.install_path + "/altdir/monit_obp", + self.install_path + "/altdir/monit_stream", + self.install_path + "/altdir/mrapm_device.service", + self.install_path + "/altdir/mrapm_obp.service", + self.install_path + "/altdir/mrapm_stream.service", + self.install_path + "/altdir/mrmarch", + self.install_path + "/altdir/mrpdump", + self.install_path + "/altdir/mrtools-pinfo", + self.install_path + "/altdir/mrtunnat.service", + self.install_path + "/altdir/mrzcpd", + self.install_path + "/altdir/mrzcpd.service", + self.install_path + "/altdir/mrzcpd_hugepages_setup.service", + self.install_path + "/altdir/mrzcpd_hwdb_setup.service" + ] + + self.system_service_files = [ + "/usr/lib/systemd/system/mrapm_device.service", + "/usr/lib/systemd/system/mrapm_stream.service", + "/usr/lib/systemd/system/mrapm_obp.service", + "/usr/lib/systemd/system/mrtunnat.service", + "/usr/lib/systemd/system/mrzcpd_hugepages_setup.service", + "/usr/lib/systemd/system/mrzcpd_hwdb_setup.service", + "/usr/lib/systemd/system/mrzcpd.service" + ] + + self.package_files = (self.package_conf_files + self.package_etc_files + self.package_bin_files + + self.package_include_files + self.package_lib_files + self.package_altdir_files + + self.system_service_files) + + # monit_device no symbol + # self.binary_files = self.package_bin_files + self.package_lib_files + + self.symbol_check_files = [ + self.install_path + "/bin/mrzcpd", + self.install_path + "/lib/libmarsio.so", + ] + + self.tools = tools() + + def start(self): + if self.tools.is_package_installed("mrzcpd") == False: + return False + for file in self.package_files: + if self.tools.check_path_exists(file) == False: + return False + for file in self.symbol_check_files: + real_path = os.path.realpath(file) + # if self.tools.is_elf_file(real_path) == False: + # continue + if self.tools.check_symbol_exists(real_path) == False: + return False + return True + +if __name__ == "__main__": + test = package_content_test() + if test.start() == False: + sys.exit(1) + diff --git a/test/ptf_test/CMakeLists.txt b/test/ptf_test/CMakeLists.txt new file mode 100644 index 0000000..3a1890e --- /dev/null +++ b/test/ptf_test/CMakeLists.txt @@ -0,0 +1,119 @@ +include_directories(${CMAKE_SOURCE_DIR}/include) +include_directories(${CMAKE_SOURCE_DIR}/include/extern) +include_directories(${CMAKE_SOURCE_DIR}/include/internal) +include_directories(${CMAKE_SOURCE_DIR}) + +# Create veth +execute_process( + COMMAND /bin/bash ${CMAKE_CURRENT_SOURCE_DIR}/create_veth.sh create 24 + RESULT_VARIABLE VETH_RESULT + OUTPUT_VARIABLE VETH_OUTPUT + ERROR_VARIABLE VETH_ERROR + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Check veth create +if(VETH_RESULT) +message(FATAL_ERROR "${CMAKE_CURRENT_SOURCE_DIR}/create_veth.sh create 24") + message(FATAL_ERROR "Failed to create veth: ${VETH_ERROR}") +endif() + +# Create veth for msgpack +execute_process( + COMMAND /bin/bash ${CMAKE_CURRENT_SOURCE_DIR}/create_veth.sh create msgpack + RESULT_VARIABLE VETH_RESULT + OUTPUT_VARIABLE VETH_OUTPUT + ERROR_VARIABLE VETH_ERROR + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Check veth create for msgpack +if(VETH_RESULT) +message(FATAL_ERROR "${CMAKE_CURRENT_SOURCE_DIR}/create_veth.sh create msgpack") + message(FATAL_ERROR "Failed to create veth: ${VETH_ERROR}") +endif() + +# Script for generating "--interface" +# for i in range(0, 24): +# print(f"--interface {i}@veth{i}-ptf{i}", end=" ") + +# Add vwire test +add_test( + NAME vwire_test + COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_CURRENT_SOURCE_DIR} + --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 --interface 2@veth2-ptf2 --interface 3@veth3-ptf3 --interface 4@veth4-ptf4 --interface 5@veth5-ptf5 --interface 6@veth6-ptf6 --interface 7@veth7-ptf7 --interface 8@veth8-ptf8 --interface 9@veth9-ptf9 --interface 10@veth10-ptf10 --interface 11@veth11-ptf11 --interface 12@veth12-ptf12 --interface 13@veth13-ptf13 --interface 14@veth14-ptf14 --interface 15@veth15-ptf15 --interface 16@veth16-ptf16 --interface 17@veth17-ptf17 --interface 18@veth18-ptf18 --interface 19@veth19-ptf19 --interface 20@veth20-ptf20 --interface 21@veth21-ptf21 --interface 22@veth22-ptf22 --interface 23@veth23-ptf23 + vwire_test id_non_contiguous_test --test-params "source_dir='${CMAKE_BINARY_DIR}'" +) + +# Add bfd test +add_test( + NAME bfd_test + COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_CURRENT_SOURCE_DIR} + --interface 0@veth0-ptf0 + bfd_test_for_etherfabric bfd_test_for_bfdd --test-params "source_dir='${CMAKE_BINARY_DIR}'" +) + +# Add bridge test +add_test( + NAME bridge_test + COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_CURRENT_SOURCE_DIR} + --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 --interface 2@veth2-ptf2 --interface 3@veth3-ptf3 + bridge_test_unicast bridge_test_broadcast bridge_test_master_device --test-params "source_dir='${CMAKE_BINARY_DIR}'" +) + + +# Add classifier test +add_test( + NAME classifier_test + COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_CURRENT_SOURCE_DIR} + --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 --interface 2@veth2-ptf2 --interface 3@veth3-ptf3 --interface 4@veth4-ptf4 --interface 5@veth5-ptf5 + classifier_test_base full_field_match_test --test-params "source_dir='${CMAKE_BINARY_DIR}'" +) + +# Add etherfabric test +add_test( + NAME etherfabric_test + COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_CURRENT_SOURCE_DIR} + --interface 0@veth0-ptf0 + virtual_wire_mode tap_mode ef_route_ctx_test ef_adapter_id_non_contiguous_test --test-params "source_dir='${CMAKE_BINARY_DIR}'" +) + +# Add health_check test +add_test( + NAME health_check + COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_CURRENT_SOURCE_DIR} + --interface 0@veth0-ptf0 + health_check_base_test --test-params "source_dir='${CMAKE_BINARY_DIR}'" +) + +# Add load_balance test +add_test( + NAME load_balance + COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_CURRENT_SOURCE_DIR} + --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 --interface 2@veth2-ptf2 --interface 3@veth3-ptf3 --interface 4@veth4-ptf4 + lb_base_test --test-params "source_dir='${CMAKE_BINARY_DIR}'" +) + +# Add msgpack test +add_test( + NAME msgpack_test + COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_CURRENT_SOURCE_DIR} + --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 --interface 2@veth2-ptf2 + msgpack_serialize_test msgpack_deserialize_test msgpack_serialize_and_deserialize_test --test-params "source_dir='${CMAKE_BINARY_DIR}'" +) + +# Add endpoint dev test +add_test( + NAME endpoint_dev_test + COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_CURRENT_SOURCE_DIR} + --interface 0@veth0-ptf0 + icmp_reply_test --test-params "source_dir='${CMAKE_BINARY_DIR}'" +) + +# Add tera test +add_test( + NAME tera_test + COMMAND /usr/local/bin/ptf --test-dir ${CMAKE_CURRENT_SOURCE_DIR} + --interface 0@veth0-ptf0 --interface 1@veth1-ptf1 + tera_base_test tera_mpack_test tera_nf_test tera_route_ctx_test tera_adapter_id_non_contiguous_test --test-params "source_dir='${CMAKE_BINARY_DIR}'" +) diff --git a/test/bfd_test.py b/test/ptf_test/bfd_test.py index 06ec56f..06ec56f 100644 --- a/test/bfd_test.py +++ b/test/ptf_test/bfd_test.py diff --git a/test/bridge_test.py b/test/ptf_test/bridge_test.py index bf1dfff..bf1dfff 100644 --- a/test/bridge_test.py +++ b/test/ptf_test/bridge_test.py diff --git a/test/classifier_test.py b/test/ptf_test/classifier_test.py index 82e525c..82e525c 100644 --- a/test/classifier_test.py +++ b/test/ptf_test/classifier_test.py diff --git a/test/common_pkt.py b/test/ptf_test/common_pkt.py index a21758f..a21758f 100644 --- a/test/common_pkt.py +++ b/test/ptf_test/common_pkt.py diff --git a/test/create_veth.sh b/test/ptf_test/create_veth.sh index ed00dd6..ed00dd6 100644 --- a/test/create_veth.sh +++ b/test/ptf_test/create_veth.sh diff --git a/test/endpoint_dev_test.py b/test/ptf_test/endpoint_dev_test.py index fa46b44..fa46b44 100644 --- a/test/endpoint_dev_test.py +++ b/test/ptf_test/endpoint_dev_test.py diff --git a/test/etherfabric_test.py b/test/ptf_test/etherfabric_test.py index 61f2e17..61f2e17 100644 --- a/test/etherfabric_test.py +++ b/test/ptf_test/etherfabric_test.py diff --git a/test/health_check_test.py b/test/ptf_test/health_check_test.py index 71a48d9..71a48d9 100644 --- a/test/health_check_test.py +++ b/test/ptf_test/health_check_test.py diff --git a/test/load_balance_test.py b/test/ptf_test/load_balance_test.py index f762214..f762214 100644 --- a/test/load_balance_test.py +++ b/test/ptf_test/load_balance_test.py diff --git a/test/mrzcpd.py b/test/ptf_test/mrzcpd.py index 90c216e..b0fd8fa 100644 --- a/test/mrzcpd.py +++ b/test/ptf_test/mrzcpd.py @@ -9,17 +9,17 @@ mrzcpd_run_dir = "/var/run/mrzcpd" class Mrzcpd: - def __init__(self, conf_start,conf_dynamic): + def __init__(self, conf_start, conf_dynamic): self.mrzcpd_path = ptf.testutils.test_param_get( - "source_dir") + "/build/service/mrzcpd" + "source_dir") + "/service/mrzcpd" self.conf_start = str(conf_start) self.conf_path_start = ptf.testutils.test_param_get( - "source_dir") + "/test/mrglobal.conf" + "source_dir") + "/test/ptf_test/mrglobal.conf" self.conf_dynamic = str(conf_dynamic) self.conf_path_dynamic = ptf.testutils.test_param_get( - "source_dir") + "/test/mrglobal.dynamic.conf" + "source_dir") + "/test/ptf_test/mrglobal.dynamic.conf" self.file_start = open(self.conf_path_start, 'w') self.file_start.write(self.conf_start) diff --git a/test/msgpack_test.py b/test/ptf_test/msgpack_test.py index a92b6ff..a92b6ff 100644 --- a/test/msgpack_test.py +++ b/test/ptf_test/msgpack_test.py diff --git a/test/tera_test.py b/test/ptf_test/tera_test.py index 56b58f3..56b58f3 100644 --- a/test/tera_test.py +++ b/test/ptf_test/tera_test.py diff --git a/test/vwire_test.py b/test/ptf_test/vwire_test.py index 3d8e7b8..3d8e7b8 100644 --- a/test/vwire_test.py +++ b/test/ptf_test/vwire_test.py |
