Skip to content

Try to reenable the DPDK PTF Testgen workflow. - #5572

Draft
fruffy wants to merge 11 commits into
mainfrom
fruffy/reenable_dpdk_ptf_tests
Draft

Try to reenable the DPDK PTF Testgen workflow.#5572
fruffy wants to merge 11 commits into
mainfrom
fruffy/reenable_dpdk_ptf_tests

Conversation

@fruffy

@fruffy fruffy commented Mar 28, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@fruffy fruffy added dpdk Topics related to the DPDK back end infrastructure Topics related to code style and build and test infrastructure. labels Mar 28, 2026
@fruffy
fruffy force-pushed the fruffy/reenable_dpdk_ptf_tests branch from 7f01ff8 to b5ff44f Compare March 29, 2026 00:57
Comment thread .github/workflows/ci-dpdk-ptf-p4testgen-tests.yml Fixed
Comment thread .github/workflows/ci-dpdk-ptf-p4testgen-tests.yml Fixed
@fruffy
fruffy force-pushed the fruffy/reenable_dpdk_ptf_tests branch 3 times, most recently from b485218 to bf299d8 Compare April 5, 2026 20:02
@fruffy
fruffy force-pushed the fruffy/reenable_dpdk_ptf_tests branch from 66a2574 to adc8ac2 Compare April 21, 2026 00:37
fruffy added 11 commits April 21, 2026 20:08
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
@fruffy
fruffy force-pushed the fruffy/reenable_dpdk_ptf_tests branch from adc8ac2 to a1ce01e Compare April 22, 2026 00:17
Comment on lines +36 to +129
runs-on: ubuntu-22.04
steps:
- name: ccache
uses: hendrikmuhs/ccache-action@v1
with:
key: ptf-${{ runner.os }}-test
max-size: 1000M

- name: Checkout DPDK target
uses: actions/checkout@v6
with:
repository: p4lang/p4-dpdk-target
ref: 1604e1829dcc613067cda6dd26a8a784fb804bd7
path: p4sde
submodules: recursive

- name: Checkout ipdk-recipe
uses: actions/checkout@v6
with:
repository: ipdk-io/networking-recipe
ref: cd584d4acccc49e9577fde2bfcdf16522577ac22
path: ipdk.recipe
submodules: recursive

- name: Checkout P4C
uses: actions/checkout@v6
with:
path: p4c
submodules: recursive
fetch-depth: 0

- name: Install hugepages and set transparent hugepages to madvise
run: |
sudo apt-get update -y
sudo apt-get install -y libhugetlbfs-bin
sudo hugeadm --thp-madvise

- name: Install DPDK dependencies
working-directory: p4sde/tools/setup
run: |
sudo apt-get update -y
python3 install_dep.py

- name: Compile p4sde dpdk target
working-directory: p4sde
run: |
./autogen.sh
./configure --prefix="$IPDK_INSTALL_DIR"
make
make install

- name: Install infrap4d build prerequisites
working-directory: ipdk.recipe
run: |
sudo apt-get update -y
sudo apt-get install -y libatomic1 libbsd-dev libnl-3-dev libnl-route-3-dev libnl-genl-3-dev openssl
python3 -m pip install -r requirements.txt

- name: Install stratum dependencies
uses: robinraju/release-downloader@v1.12
with:
repository: ${{ env.DEPS_REPOSITORY }}
tag: ${{ env.DEPS_TAG }}
fileName: ${{ env.DEPS_FILENAME }}

- name: Extract stratum dependencies
run: |
sudo tar -xzf "$DEPS_FILENAME" -C /
rm "$DEPS_FILENAME"

- name: Build infrap4d
working-directory: ipdk.recipe
run: |
./make-all.sh --target=dpdk --no-krnlmon --no-ovs -S "$IPDK_INSTALL_DIR" -D "$DEPS_INSTALL_DIR" --prefix="$IPDK_INSTALL_DIR"

- name: Build P4C with only the DPDK backend
working-directory: p4c
run: |
export CMAKE_FLAGS+="-DENABLE_BMV2=OFF "
export CMAKE_FLAGS+="-DENABLE_EBPF=OFF "
export CMAKE_FLAGS+="-DENABLE_UBPF=OFF "
export CMAKE_FLAGS+="-DENABLE_GTESTS=OFF "
export CMAKE_FLAGS+="-DENABLE_P4TEST=OFF "
export CMAKE_FLAGS+="-DENABLE_P4TC=OFF "
export CMAKE_FLAGS+="-DENABLE_P4C_GRAPHS=OFF "
export CMAKE_FLAGS+="-DENABLE_TEST_TOOLS=ON "
export CMAKE_FLAGS+="-DIPDK_INSTALL_DIR=$IPDK_INSTALL_DIR "
tools/ci-build.sh

- name: Run DPDK PTF tests using P4Testgen
working-directory: p4c/build
run: |
sudo "$IPDK_INSTALL_DIR"/sbin/set_hugepages.sh
sudo -E env PATH="$PATH" uv run ctest -j1 --output-on-failure --schedule-random -R "testgen-p4c-pna-ptf|dpdk-ptf"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dpdk Topics related to the DPDK back end infrastructure Topics related to code style and build and test infrastructure.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants