Add support for raw + af_packet sockets #595
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Linux interop tests | |
| on: | |
| push: | |
| branches: [ 'master', 'main', 'release/**' ] | |
| pull_request: | |
| branches: [ '*' ] | |
| jobs: | |
| linux_test: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential autoconf automake libtool pkg-config | |
| sudo modprobe tun | |
| - name: Clone and build wolfSSL from nightly-snapshot | |
| run: | | |
| git clone --depth=1 https://github.com/wolfssl/wolfssl --branch nightly-snapshot /tmp/wolfssl | |
| cd /tmp/wolfssl | |
| ./autogen.sh | |
| ./configure --enable-all --enable-md5 | |
| make -j$(nproc) | |
| sudo make install | |
| sudo ldconfig | |
| - name: Build linux tests | |
| run: | | |
| mkdir -p build/port | |
| make EXTRA_CFLAGS="-DWOLFIP_RAWSOCKETS=1 -DWOLFIP_PACKET_SOCKETS=1" | |
| make EXTRA_CFLAGS="-DWOLFIP_RAWSOCKETS=1 -DWOLFIP_PACKET_SOCKETS=1" build/raw_ping build/packet_ping | |
| - name: Run standalone "event loop" test | |
| timeout-minutes: 5 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 5m sudo ./build/test-evloop | |
| sudo killall tcpdump || true | |
| - name: Run standalone "event loop" TUN test | |
| timeout-minutes: 5 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 5m sudo ./build/test-evloop-tun | |
| sudo killall tcpdump || true | |
| - name: Run standalone "IPsec esp" test | |
| timeout-minutes: 7 | |
| run: | | |
| set -euo pipefail | |
| sudo ./tools/ip-xfrm/delete_all || true | |
| timeout --preserve-status 7m sudo ./tools/ip-xfrm/rfc4106 128 | |
| timeout --preserve-status 7m sudo ./build/test-esp -m 0 | |
| sudo killall tcpdump || true | |
| sudo ./tools/ip-xfrm/delete_all || true | |
| timeout --preserve-status 7m sudo ./tools/ip-xfrm/cbc_auth sha256 128 | |
| timeout --preserve-status 7m sudo ./build/test-esp -m 1 | |
| sudo killall tcpdump || true | |
| sudo ./tools/ip-xfrm/delete_all || true | |
| - name: Run standalone wolfssl test | |
| timeout-minutes: 5 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 5m sudo ./build/test-wolfssl | |
| sudo killall tcpdump || true | |
| - name: Run standalone forwarding test | |
| timeout-minutes: 5 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 5m sudo ./build/test-wolfssl-forwarding | |
| - name: Run standalone TTL expired test | |
| timeout-minutes: 5 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 5m ./build/test-ttl-expired | |
| - name: Testing ICMP socket by stealing system calls in ping | |
| timeout-minutes: 2 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 2m sudo LD_PRELOAD=$PWD/libwolfip.so ping -c 5 10.10.10.1 | |
| - name: Rebuild libwolfip.so with loopback enabled | |
| run: | | |
| set -euo pipefail | |
| rm -f libwolfip.so build/pie/wolfip.o | |
| make libwolfip.so EXTRA_CFLAGS="-DWOLFIP_ENABLE_LOOPBACK=1" | |
| - name: Testing ICMP loopback smoke (no TUN/TAP) | |
| timeout-minutes: 2 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 2m sudo LD_PRELOAD=$PWD/libwolfip.so ping -4 -n -c 5 127.0.0.1 | |
| - name: Testing raw sockets with raw_ping | |
| timeout-minutes: 2 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 2m sudo ./build/raw_ping 10.10.10.1 | |
| - name: Testing packet sockets with packet_ping | |
| timeout-minutes: 2 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 2m sudo ./build/packet_ping wtcp0 10.10.10.1 | |
| - name: Install check | |
| run: | | |
| sudo apt-get install -y check | |
| - name: Build unit tests | |
| run: | | |
| make unit | |
| - name: Run unit tests | |
| timeout-minutes: 5 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 5m build/test/unit | |
| - name: Build ESP unit tests | |
| run: | | |
| make unit-esp | |
| - name: Run ESP unit tests | |
| timeout-minutes: 5 | |
| run: | | |
| set -euo pipefail | |
| timeout --preserve-status 5m ./build/test/unit-esp | |
| - name: Cleanup IPsec state | |
| if: always() | |
| run: | | |
| sudo ./tools/ip-xfrm/delete_all || true | |
| sudo killall tcpdump || true |