^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) #!/bin/bash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) function pktgen {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ../pktgen/pktgen_bench_xmit_mode_netif_receive.sh -i $IFC -s 64 \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) -m 90:e2:ba:ff:ff:ff -d 192.168.0.1 -t 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) local dropped=`tc -s qdisc show dev $IFC | tail -3 | awk '/drop/{print $7}'`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) if [ "$dropped" == "0," ]; then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) echo "FAIL"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) echo "Successfully filtered " $dropped " packets"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) function test {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) echo -n "Loading bpf program '$2'... "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) tc qdisc add dev $IFC clsact
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) tc filter add dev $IFC ingress bpf da obj $1 sec $2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) local status=$?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) if [ $status -ne 0 ]; then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) echo "FAIL"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) echo "ok"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) pktgen
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) tc qdisc del dev $IFC clsact
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) IFC=test_veth
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) ip link add name $IFC type veth peer name pair_$IFC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) ip link set $IFC up
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) ip link set pair_$IFC up
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) test ./parse_simple.o simple
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) test ./parse_varlen.o varlen
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) test ./parse_ldabs.o ldabs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) ip link del dev $IFC