From 58fca24712f8b9d1d2f100bb654f5503ea57b2f3 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 07:30:36 +0000 Subject: [PATCH 01/27] Try testing with Scapy version updated to 2.5.0 Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7a14bd9..7d50a8f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: - name: Install dependencies run: | make set-dev - python -m pip install scapy==2.4.5 + python -m pip install scapy==2.5.0 - name: Verify code (python w/black) run: | make format-check diff --git a/README.md b/README.md index 5ab2867..d6388f4 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ More information about Black, you find at The following software is required to run PTF: * Python 3.x - * Scapy 2.4.5 (unless you provide another packet manipulation module) + * Scapy 2.5.0 (unless you provide another packet manipulation module) * pypcap (optional - VLAN tests will fail without this) * tcpdump (optional - Scapy will complain if it's missing) @@ -50,7 +50,7 @@ Root/sudo privilege is required on the host, in order to run `ptf`. The default packet manipulator tool for `ptf` is `Scapy`. To install it use: ```text -pip install scapy==2.4.5 +pip install scapy==2.5.0 ``` To enable VLAN tests, you need to install `pypcap`: From ff3345b868dac94f413087c8d66a1797261d9f8b Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 14:42:48 +0000 Subject: [PATCH 02/27] Changes attempting to get build.yml workflow working on Ubuntu 24.04 Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7d50a8f..f2e579e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,11 +33,7 @@ jobs: - name: Dependencies run: | sudo apt-get install cmake libffi-dev ethtool python3-dev - # Install the latest pip version (not python3-pip) as older versions - # seem to have issues when installing from source. - curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py - sudo python3 get-pip.py - sudo python3 -m pip install --upgrade setuptools nose2 scapy wheel + python3 -m pip install --upgrade setuptools nose2 scapy wheel bash CI/install-nanomsg.sh sudo ldconfig @@ -45,7 +41,7 @@ jobs: - name: Install run: | - sudo python3 -m pip install . + python3 -m pip install . ptf --version - name: Before_script From f77941fa6cbcfae556330ac159bcf8d097c2269b Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 14:48:48 +0000 Subject: [PATCH 03/27] More changes to attempt to get tests passing on Ubuntu 24.04 ... ... where the version of pip does not like you to run as root and install in system-wide directories. Signed-off-by: Andy Fingerhut --- CI/install-nanomsg.sh | 2 +- CI/install-nnpy.sh | 6 +++--- CI/run_tests.sh | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CI/install-nanomsg.sh b/CI/install-nanomsg.sh index 63f8ff1..088c4e2 100755 --- a/CI/install-nanomsg.sh +++ b/CI/install-nanomsg.sh @@ -18,5 +18,5 @@ cd build # some reason ldconfig cannot find it cmake .. -DCMAKE_INSTALL_PREFIX=/usr cmake --build . -sudo cmake --build . --target install +cmake --build . --target install cd .. diff --git a/CI/install-nnpy.sh b/CI/install-nnpy.sh index dc3a475..a9fa0a2 100755 --- a/CI/install-nnpy.sh +++ b/CI/install-nnpy.sh @@ -2,7 +2,7 @@ set -e git clone https://github.com/nanomsg/nnpy.git cd nnpy -sudo python3 -m pip install cffi -sudo python3 -m pip install --upgrade cffi -sudo python3 -m pip install . +python3 -m pip install cffi +python3 -m pip install --upgrade cffi +python3 -m pip install . cd .. diff --git a/CI/run_tests.sh b/CI/run_tests.sh index 4fd508d..c7e4c7d 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -17,7 +17,7 @@ sudo python ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ sleep 5 -sudo ptf --test-dir ptf_nn/ptf_nn_test \ +sudo PATH=${PATH} `which ptf` --test-dir ptf_nn/ptf_nn_test \ --device-socket 0-{0-64}@tcp://127.0.0.1:10001 \ --device-socket 1-{0-64}@tcp://127.0.0.1:10002 \ --platform nn From e55f231da2d103116fe646ea34db2b7378b8d0f8 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 14:53:41 +0000 Subject: [PATCH 04/27] Make cmake builds more verbose Signed-off-by: Andy Fingerhut --- CI/install-nanomsg.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CI/install-nanomsg.sh b/CI/install-nanomsg.sh index 088c4e2..8c4c8ee 100755 --- a/CI/install-nanomsg.sh +++ b/CI/install-nanomsg.sh @@ -17,6 +17,6 @@ cd build # library is installed in /usr/local/lib/x86_64-linux-gnu/ by default, and for # some reason ldconfig cannot find it cmake .. -DCMAKE_INSTALL_PREFIX=/usr -cmake --build . -cmake --build . --target install +cmake --build . --verbose +cmake --build . --verbose --target install cd .. From 4dc21c7925bb3e0c86f10623e51ed8e9382d5d05 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 14:58:08 +0000 Subject: [PATCH 05/27] Make nanomsg install the same as what I use in my p4-guide script Signed-off-by: Andy Fingerhut --- CI/install-nanomsg.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CI/install-nanomsg.sh b/CI/install-nanomsg.sh index 8c4c8ee..322db01 100755 --- a/CI/install-nanomsg.sh +++ b/CI/install-nanomsg.sh @@ -18,5 +18,5 @@ cd build # some reason ldconfig cannot find it cmake .. -DCMAKE_INSTALL_PREFIX=/usr cmake --build . --verbose -cmake --build . --verbose --target install +sudo cmake --build . --verbose --target install cd .. From f4838fc000f80171168d8ee2d675fb16053a728a Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:00:26 +0000 Subject: [PATCH 06/27] A little more debug in the nanomsg install Signed-off-by: Andy Fingerhut --- CI/install-nanomsg.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CI/install-nanomsg.sh b/CI/install-nanomsg.sh index 322db01..98012a9 100755 --- a/CI/install-nanomsg.sh +++ b/CI/install-nanomsg.sh @@ -3,6 +3,9 @@ THIS_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) source $THIS_DIR/common.sh +set -x +cmake --version + # nanomsg is very confusing in how it manages SOVERSION vs VERSION, but this # should be okay... (5.0.0 is the SOVERSION) check_lib libnanomsg libnanomsg.so.5.0.0 From 7762e300a3f33d43137c1f4cdcf7ad31353707fa Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:07:57 +0000 Subject: [PATCH 07/27] Extra 'pip --verbose list' commands to see where packages are installed Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 1 + CI/install-nanomsg.sh | 2 ++ CI/install-nnpy.sh | 1 + 3 files changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f2e579e..3474f5a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,6 +43,7 @@ jobs: run: | python3 -m pip install . ptf --version + pip --verbose list - name: Before_script run: | diff --git a/CI/install-nanomsg.sh b/CI/install-nanomsg.sh index 98012a9..625ef99 100755 --- a/CI/install-nanomsg.sh +++ b/CI/install-nanomsg.sh @@ -23,3 +23,5 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr cmake --build . --verbose sudo cmake --build . --verbose --target install cd .. + +pip --verbose list diff --git a/CI/install-nnpy.sh b/CI/install-nnpy.sh index a9fa0a2..1162955 100755 --- a/CI/install-nnpy.sh +++ b/CI/install-nnpy.sh @@ -6,3 +6,4 @@ python3 -m pip install cffi python3 -m pip install --upgrade cffi python3 -m pip install . cd .. +pip --verbose list From 7602f72d648151208933a158e87326749f98a333 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:15:06 +0000 Subject: [PATCH 08/27] More tweaks Signed-off-by: Andy Fingerhut --- CI/run_tests.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CI/run_tests.sh b/CI/run_tests.sh index c7e4c7d..c1f3692 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +set -x + sudo python ptf_nn/ptf_nn_agent.py \ --device-socket 0@tcp://127.0.0.1:10001 -i 0-1@veth0 \ &>/dev/null & @@ -17,7 +19,9 @@ sudo python ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ sleep 5 -sudo PATH=${PATH} `which ptf` --test-dir ptf_nn/ptf_nn_test \ +env + +sudo PATH=${PATH} PYTHONPATH="/home/runner/.local/lib/python3.12/site-packages" `which ptf` --test-dir ptf_nn/ptf_nn_test \ --device-socket 0-{0-64}@tcp://127.0.0.1:10001 \ --device-socket 1-{0-64}@tcp://127.0.0.1:10002 \ --platform nn From 15ecb619eb5e8c24a7e2141e6f311a8b71d01bc7 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:19:02 +0000 Subject: [PATCH 09/27] Do not upgrade scapy to version later than 2.5.0 Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3474f5a..5bd8810 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ jobs: - name: Dependencies run: | sudo apt-get install cmake libffi-dev ethtool python3-dev - python3 -m pip install --upgrade setuptools nose2 scapy wheel + python3 -m pip install --upgrade setuptools nose2 wheel bash CI/install-nanomsg.sh sudo ldconfig From 7924ffa03ce74334d939023a83c6f4cd67b1c296 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:19:39 +0000 Subject: [PATCH 10/27] Disable --verbose for nanomsg cmake install Signed-off-by: Andy Fingerhut --- CI/install-nanomsg.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CI/install-nanomsg.sh b/CI/install-nanomsg.sh index 625ef99..9eee087 100755 --- a/CI/install-nanomsg.sh +++ b/CI/install-nanomsg.sh @@ -20,8 +20,8 @@ cd build # library is installed in /usr/local/lib/x86_64-linux-gnu/ by default, and for # some reason ldconfig cannot find it cmake .. -DCMAKE_INSTALL_PREFIX=/usr -cmake --build . --verbose -sudo cmake --build . --verbose --target install +cmake --build . +sudo cmake --build . --target install cd .. pip --verbose list From 997d4f5cbc0fba92c93b91676fcf82abc476e021 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:23:32 +0000 Subject: [PATCH 11/27] Install scapy version 2.5.0 Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5bd8810..9c8eaa9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,6 +34,7 @@ jobs: run: | sudo apt-get install cmake libffi-dev ethtool python3-dev python3 -m pip install --upgrade setuptools nose2 wheel + python -m pip install scapy==2.5.0 bash CI/install-nanomsg.sh sudo ldconfig @@ -51,6 +52,7 @@ jobs: - name: Script run: | + pip --verbose list python3 CI/check-nnpy.py ./CI/run_tests.sh sudo python3 /usr/local/bin/nose2 utests.tests.test From df9c7707552e66cb6c4df989cc953116f6ddcb3f Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:28:32 +0000 Subject: [PATCH 12/27] More debug info Signed-off-by: Andy Fingerhut --- CI/check-nnpy.py | 6 ++++++ CI/run_tests.sh | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CI/check-nnpy.py b/CI/check-nnpy.py index 75715b6..052f87f 100755 --- a/CI/check-nnpy.py +++ b/CI/check-nnpy.py @@ -3,6 +3,12 @@ import nnpy import sys +print("----------------------------------------") +print("sys.path:") +for path in sys.path: + print(" %s" % (path)) +print("----------------------------------------") + pub = nnpy.Socket(nnpy.AF_SP, nnpy.PUB) pub.bind("inproc://foo") diff --git a/CI/run_tests.sh b/CI/run_tests.sh index c1f3692..67459c3 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -4,18 +4,18 @@ set -x sudo python ptf_nn/ptf_nn_agent.py \ --device-socket 0@tcp://127.0.0.1:10001 -i 0-1@veth0 \ - &>/dev/null & + & sleep 5 sudo python ptf_nn/ptf_nn_agent.py \ --device-socket 1@tcp://127.0.0.1:10002 -i 1-1@veth3 \ - &>/dev/null & + & sleep 5 sudo python ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ - &>/dev/null & + & sleep 5 From 78a6d6b240051de4fab98b1a80f719eca78f0352 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:31:16 +0000 Subject: [PATCH 13/27] More setting of PYTHONPATH in sudo commands where needed Signed-off-by: Andy Fingerhut --- CI/run_tests.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CI/run_tests.sh b/CI/run_tests.sh index 67459c3..137502b 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -2,26 +2,28 @@ set -x -sudo python ptf_nn/ptf_nn_agent.py \ +PPATH="/home/runner/.local/lib/python3.12/site-packages" + +sudo PATH=${PATH} PYTHONPATH=${PPATH} python ptf_nn/ptf_nn_agent.py \ --device-socket 0@tcp://127.0.0.1:10001 -i 0-1@veth0 \ & sleep 5 -sudo python ptf_nn/ptf_nn_agent.py \ +sudo PATH=${PATH} PYTHONPATH=${PPATH} python ptf_nn/ptf_nn_agent.py \ --device-socket 1@tcp://127.0.0.1:10002 -i 1-1@veth3 \ & sleep 5 -sudo python ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ +sudo PATH=${PATH} PYTHONPATH=${PPATH} python ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ & sleep 5 env -sudo PATH=${PATH} PYTHONPATH="/home/runner/.local/lib/python3.12/site-packages" `which ptf` --test-dir ptf_nn/ptf_nn_test \ +sudo PATH=${PATH} PYTHONPATH=${PPATH} `which ptf` --test-dir ptf_nn/ptf_nn_test \ --device-socket 0-{0-64}@tcp://127.0.0.1:10001 \ --device-socket 1-{0-64}@tcp://127.0.0.1:10002 \ --platform nn From affca3397aed56f9df2eddd834d7766e11983aa0 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:36:46 +0000 Subject: [PATCH 14/27] More tweaks to try to get all tests to pass Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 1 - CI/run_tests.sh | 10 ++++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9c8eaa9..aa2fef0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,4 +55,3 @@ jobs: pip --verbose list python3 CI/check-nnpy.py ./CI/run_tests.sh - sudo python3 /usr/local/bin/nose2 utests.tests.test diff --git a/CI/run_tests.sh b/CI/run_tests.sh index 137502b..90d61b6 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -2,21 +2,21 @@ set -x -PPATH="/home/runner/.local/lib/python3.12/site-packages" +PPATH="$HOME/.local/lib/python3.12/site-packages" -sudo PATH=${PATH} PYTHONPATH=${PPATH} python ptf_nn/ptf_nn_agent.py \ +sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 ptf_nn/ptf_nn_agent.py \ --device-socket 0@tcp://127.0.0.1:10001 -i 0-1@veth0 \ & sleep 5 -sudo PATH=${PATH} PYTHONPATH=${PPATH} python ptf_nn/ptf_nn_agent.py \ +sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 ptf_nn/ptf_nn_agent.py \ --device-socket 1@tcp://127.0.0.1:10002 -i 1-1@veth3 \ & sleep 5 -sudo PATH=${PATH} PYTHONPATH=${PPATH} python ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ +sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ & sleep 5 @@ -27,3 +27,5 @@ sudo PATH=${PATH} PYTHONPATH=${PPATH} `which ptf` --test-dir ptf_nn/ptf_nn_test --device-socket 0-{0-64}@tcp://127.0.0.1:10001 \ --device-socket 1-{0-64}@tcp://127.0.0.1:10002 \ --platform nn + +sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 `which nose2` utests.tests.test From 5755a871edddbf3772e3216a3a9ad95332bef4b7 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:43:51 +0000 Subject: [PATCH 15/27] Automate detection of Python major & minor version Signed-off-by: Andy Fingerhut --- CI/python-major-minor-version.py | 5 +++++ CI/run_tests.sh | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100755 CI/python-major-minor-version.py diff --git a/CI/python-major-minor-version.py b/CI/python-major-minor-version.py new file mode 100755 index 0000000..f8cc195 --- /dev/null +++ b/CI/python-major-minor-version.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +import sys + +print(f"{sys.version_info.major}.{sys.version_info.minor}") diff --git a/CI/run_tests.sh b/CI/run_tests.sh index 90d61b6..4395664 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -2,7 +2,8 @@ set -x -PPATH="$HOME/.local/lib/python3.12/site-packages" +MAJOR_MINOR_VERSION=`python-major-minor-version.py` +PPATH="$HOME/.local/lib/python${MAJOR_MINOR_VERSION}/site-packages" sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 ptf_nn/ptf_nn_agent.py \ --device-socket 0@tcp://127.0.0.1:10001 -i 0-1@veth0 \ From 0413aa4f811488f12ac635c8a154caf9bc01d7b2 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:46:54 +0000 Subject: [PATCH 16/27] More tweaking Signed-off-by: Andy Fingerhut --- CI/run_tests.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CI/run_tests.sh b/CI/run_tests.sh index 4395664..4ad3122 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -2,7 +2,11 @@ set -x -MAJOR_MINOR_VERSION=`python-major-minor-version.py` +THIS_SCRIPT_FILE_MAYBE_RELATIVE="$0" +THIS_SCRIPT_DIR_MAYBE_RELATIVE="${THIS_SCRIPT_FILE_MAYBE_RELATIVE%/*}" +THIS_SCRIPT_DIR_ABSOLUTE=`readlink -f "${THIS_SCRIPT_DIR_MAYBE_RELATIVE}"` + +MAJOR_MINOR_VERSION=`${THIS_SCRIPT_DIR_ABSOLUTE}/python-major-minor-version.py` PPATH="$HOME/.local/lib/python${MAJOR_MINOR_VERSION}/site-packages" sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 ptf_nn/ptf_nn_agent.py \ From 4ebea594e1488a05cd79d4bfc8339554e1b54147 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:51:32 +0000 Subject: [PATCH 17/27] Remove some debug commands that seem excessive now Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 1 - CI/check-nnpy.py | 6 ------ CI/install-nanomsg.sh | 2 -- CI/install-nnpy.sh | 1 - 4 files changed, 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aa2fef0..834560c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,6 @@ jobs: run: | python3 -m pip install . ptf --version - pip --verbose list - name: Before_script run: | diff --git a/CI/check-nnpy.py b/CI/check-nnpy.py index 052f87f..75715b6 100755 --- a/CI/check-nnpy.py +++ b/CI/check-nnpy.py @@ -3,12 +3,6 @@ import nnpy import sys -print("----------------------------------------") -print("sys.path:") -for path in sys.path: - print(" %s" % (path)) -print("----------------------------------------") - pub = nnpy.Socket(nnpy.AF_SP, nnpy.PUB) pub.bind("inproc://foo") diff --git a/CI/install-nanomsg.sh b/CI/install-nanomsg.sh index 9eee087..6e68127 100755 --- a/CI/install-nanomsg.sh +++ b/CI/install-nanomsg.sh @@ -23,5 +23,3 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr cmake --build . sudo cmake --build . --target install cd .. - -pip --verbose list diff --git a/CI/install-nnpy.sh b/CI/install-nnpy.sh index 1162955..a9fa0a2 100755 --- a/CI/install-nnpy.sh +++ b/CI/install-nnpy.sh @@ -6,4 +6,3 @@ python3 -m pip install cffi python3 -m pip install --upgrade cffi python3 -m pip install . cd .. -pip --verbose list From 462c175894c75382410a5f8809ea6dbb228edff4 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:57:48 +0000 Subject: [PATCH 18/27] Try testing on multiple Ubuntu versions Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 834560c..495cec0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,8 +11,14 @@ on: jobs: verify-python: + strategy: + matrix: + os: [ubuntu-20.04, ubuntu-22.04, ubuntu-latest] + # Don't abort other runs when one of them fails, to ease debugging. + fail-fast: false + name: Python code verification (src) - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Install dependencies From cbdab40812b15aa420ccc5994b6960cd82372218 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 15:59:27 +0000 Subject: [PATCH 19/27] Also run test on multiple Ubuntu versions Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 495cec0..2383e65 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,13 @@ jobs: run: | make test test: - runs-on: ubuntu-latest + strategy: + matrix: + os: [ubuntu-20.04, ubuntu-22.04, ubuntu-latest] + # Don't abort other runs when one of them fails, to ease debugging. + fail-fast: false + + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 From cdfadb7eca09ca6f846d6fae3ce149d019057ac2 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 16:02:02 +0000 Subject: [PATCH 20/27] Trim versions to just Ubuntu 22.04 and latest Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2383e65..96e9f46 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: verify-python: strategy: matrix: - os: [ubuntu-20.04, ubuntu-22.04, ubuntu-latest] + os: [ubuntu-22.04, ubuntu-latest] # Don't abort other runs when one of them fails, to ease debugging. fail-fast: false @@ -34,7 +34,7 @@ jobs: test: strategy: matrix: - os: [ubuntu-20.04, ubuntu-22.04, ubuntu-latest] + os: [ubuntu-22.04, ubuntu-latest] # Don't abort other runs when one of them fails, to ease debugging. fail-fast: false From e73fa13742533ce6809cdd997160005ac23f7c0b Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 16:07:52 +0000 Subject: [PATCH 21/27] Add a second version of Scapy to the test matrix Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 96e9f46..90810f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,6 +14,7 @@ jobs: strategy: matrix: os: [ubuntu-22.04, ubuntu-latest] + scapy_version: [2.5.0, 2.6.1] # Don't abort other runs when one of them fails, to ease debugging. fail-fast: false @@ -24,7 +25,7 @@ jobs: - name: Install dependencies run: | make set-dev - python -m pip install scapy==2.5.0 + python -m pip install scapy==${{ matrix.scapy_version }} - name: Verify code (python w/black) run: | make format-check @@ -35,6 +36,7 @@ jobs: strategy: matrix: os: [ubuntu-22.04, ubuntu-latest] + scapy_version: [2.5.0, 2.6.1] # Don't abort other runs when one of them fails, to ease debugging. fail-fast: false @@ -46,7 +48,7 @@ jobs: run: | sudo apt-get install cmake libffi-dev ethtool python3-dev python3 -m pip install --upgrade setuptools nose2 wheel - python -m pip install scapy==2.5.0 + python -m pip install scapy==${{ matrix.scapy_version }} bash CI/install-nanomsg.sh sudo ldconfig From c557643b7f3ebcff1d785ce8efd899beb63f1695 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 16 Feb 2025 16:11:32 +0000 Subject: [PATCH 22/27] Maybe a fix for dangling CI test Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 90810f8..685b985 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,6 +40,7 @@ jobs: # Don't abort other runs when one of them fails, to ease debugging. fail-fast: false + name: run ptf unit tests runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 From cce5f72bb9fb67a0e09f7342d4ef4f8a8b10f176 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Tue, 18 Feb 2025 06:27:20 +0000 Subject: [PATCH 23/27] Address review comments Signed-off-by: Andy Fingerhut --- .github/workflows/build.yml | 4 ++-- CI/python-major-minor-version.py | 5 ----- CI/run_tests.sh | 6 +----- 3 files changed, 3 insertions(+), 12 deletions(-) delete mode 100755 CI/python-major-minor-version.py diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 685b985..2783d8d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: verify-python: strategy: matrix: - os: [ubuntu-22.04, ubuntu-latest] + os: [ubuntu-22.04, ubuntu-24.04] scapy_version: [2.5.0, 2.6.1] # Don't abort other runs when one of them fails, to ease debugging. fail-fast: false @@ -35,7 +35,7 @@ jobs: test: strategy: matrix: - os: [ubuntu-22.04, ubuntu-latest] + os: [ubuntu-22.04, ubuntu-24.04] scapy_version: [2.5.0, 2.6.1] # Don't abort other runs when one of them fails, to ease debugging. fail-fast: false diff --git a/CI/python-major-minor-version.py b/CI/python-major-minor-version.py deleted file mode 100755 index f8cc195..0000000 --- a/CI/python-major-minor-version.py +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env python - -import sys - -print(f"{sys.version_info.major}.{sys.version_info.minor}") diff --git a/CI/run_tests.sh b/CI/run_tests.sh index 4ad3122..a3eb8b1 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -2,11 +2,7 @@ set -x -THIS_SCRIPT_FILE_MAYBE_RELATIVE="$0" -THIS_SCRIPT_DIR_MAYBE_RELATIVE="${THIS_SCRIPT_FILE_MAYBE_RELATIVE%/*}" -THIS_SCRIPT_DIR_ABSOLUTE=`readlink -f "${THIS_SCRIPT_DIR_MAYBE_RELATIVE}"` - -MAJOR_MINOR_VERSION=`${THIS_SCRIPT_DIR_ABSOLUTE}/python-major-minor-version.py` +MAJOR_MINOR_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")') PPATH="$HOME/.local/lib/python${MAJOR_MINOR_VERSION}/site-packages" sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 ptf_nn/ptf_nn_agent.py \ From 75bfc783add9c8aec965e8850775deb3fa804408 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Tue, 18 Feb 2025 14:41:50 +0000 Subject: [PATCH 24/27] Try sudo -E for running Python code as root Signed-off-by: Andy Fingerhut --- CI/run_tests.sh | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/CI/run_tests.sh b/CI/run_tests.sh index a3eb8b1..28da555 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -2,31 +2,28 @@ set -x -MAJOR_MINOR_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")') -PPATH="$HOME/.local/lib/python${MAJOR_MINOR_VERSION}/site-packages" - -sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 ptf_nn/ptf_nn_agent.py \ +sudo -E PATH=${PATH} python3 ptf_nn/ptf_nn_agent.py \ --device-socket 0@tcp://127.0.0.1:10001 -i 0-1@veth0 \ & sleep 5 -sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 ptf_nn/ptf_nn_agent.py \ +sudo -E PATH=${PATH} python3 ptf_nn/ptf_nn_agent.py \ --device-socket 1@tcp://127.0.0.1:10002 -i 1-1@veth3 \ & sleep 5 -sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ +sudo -E PATH=${PATH} python3 ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ & sleep 5 env -sudo PATH=${PATH} PYTHONPATH=${PPATH} `which ptf` --test-dir ptf_nn/ptf_nn_test \ +sudo -E PATH=${PATH} `which ptf` --test-dir ptf_nn/ptf_nn_test \ --device-socket 0-{0-64}@tcp://127.0.0.1:10001 \ --device-socket 1-{0-64}@tcp://127.0.0.1:10002 \ --platform nn -sudo PATH=${PATH} PYTHONPATH=${PPATH} python3 `which nose2` utests.tests.test +sudo -E PATH=${PATH} python3 `which nose2` utests.tests.test From 89d920c8ea6c622430ba8558b9d7ca4486715933 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Tue, 18 Feb 2025 15:52:48 +0000 Subject: [PATCH 25/27] Try sudo open --preserve-env for CI test scripts Signed-off-by: Andy Fingerhut --- CI/run_tests.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CI/run_tests.sh b/CI/run_tests.sh index 28da555..7e8a821 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -2,28 +2,28 @@ set -x -sudo -E PATH=${PATH} python3 ptf_nn/ptf_nn_agent.py \ +sudo --preserve-env=PATH python3 ptf_nn/ptf_nn_agent.py \ --device-socket 0@tcp://127.0.0.1:10001 -i 0-1@veth0 \ & sleep 5 -sudo -E PATH=${PATH} python3 ptf_nn/ptf_nn_agent.py \ +sudo --preserve-env=PATH python3 ptf_nn/ptf_nn_agent.py \ --device-socket 1@tcp://127.0.0.1:10002 -i 1-1@veth3 \ & sleep 5 -sudo -E PATH=${PATH} python3 ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ +sudo --preserve-env=PATH python3 ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ & sleep 5 env -sudo -E PATH=${PATH} `which ptf` --test-dir ptf_nn/ptf_nn_test \ +sudo --preserve-env=PATH `which ptf` --test-dir ptf_nn/ptf_nn_test \ --device-socket 0-{0-64}@tcp://127.0.0.1:10001 \ --device-socket 1-{0-64}@tcp://127.0.0.1:10002 \ --platform nn -sudo -E PATH=${PATH} python3 `which nose2` utests.tests.test +sudo --preserve-env=PATH python3 `which nose2` utests.tests.test From c138ccae8e2aa27368fbfd7071e86bca0413c5ba Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Tue, 18 Feb 2025 15:55:12 +0000 Subject: [PATCH 26/27] Reverting previous change, which led to failing CI tests Signed-off-by: Andy Fingerhut --- CI/run_tests.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CI/run_tests.sh b/CI/run_tests.sh index 7e8a821..28da555 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -2,28 +2,28 @@ set -x -sudo --preserve-env=PATH python3 ptf_nn/ptf_nn_agent.py \ +sudo -E PATH=${PATH} python3 ptf_nn/ptf_nn_agent.py \ --device-socket 0@tcp://127.0.0.1:10001 -i 0-1@veth0 \ & sleep 5 -sudo --preserve-env=PATH python3 ptf_nn/ptf_nn_agent.py \ +sudo -E PATH=${PATH} python3 ptf_nn/ptf_nn_agent.py \ --device-socket 1@tcp://127.0.0.1:10002 -i 1-1@veth3 \ & sleep 5 -sudo --preserve-env=PATH python3 ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ +sudo -E PATH=${PATH} python3 ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth2 \ & sleep 5 env -sudo --preserve-env=PATH `which ptf` --test-dir ptf_nn/ptf_nn_test \ +sudo -E PATH=${PATH} `which ptf` --test-dir ptf_nn/ptf_nn_test \ --device-socket 0-{0-64}@tcp://127.0.0.1:10001 \ --device-socket 1-{0-64}@tcp://127.0.0.1:10002 \ --platform nn -sudo --preserve-env=PATH python3 `which nose2` utests.tests.test +sudo -E PATH=${PATH} python3 `which nose2` utests.tests.test From c8ab50f18e1ea7dab74d618e2eb0fd8cc6c08ff4 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Tue, 18 Feb 2025 16:02:57 +0000 Subject: [PATCH 27/27] Fix typo Signed-off-by: Andy Fingerhut --- CI/run_tests.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/CI/run_tests.sh b/CI/run_tests.sh index 28da555..f919f5f 100755 --- a/CI/run_tests.sh +++ b/CI/run_tests.sh @@ -19,8 +19,6 @@ sudo -E PATH=${PATH} python3 ptf_nn/ptf_nn_test_bridge.py -ifrom veth1 -ito veth sleep 5 -env - sudo -E PATH=${PATH} `which ptf` --test-dir ptf_nn/ptf_nn_test \ --device-socket 0-{0-64}@tcp://127.0.0.1:10001 \ --device-socket 1-{0-64}@tcp://127.0.0.1:10002 \