| #!/bin/bash | 
 | # SPDX-License-Identifier: GPL-2.0 | 
 |  | 
 | function pktgen { | 
 |     ../pktgen/pktgen_bench_xmit_mode_netif_receive.sh -i $IFC -s 64 \ | 
 |         -m 90:e2:ba:ff:ff:ff -d 192.168.0.1 -t 4 | 
 |     local dropped=`tc -s qdisc show dev $IFC | tail -3 | awk '/drop/{print $7}'` | 
 |     if [ "$dropped" == "0," ]; then | 
 |         echo "FAIL" | 
 |     else | 
 |         echo "Successfully filtered " $dropped " packets" | 
 |     fi | 
 | } | 
 |  | 
 | function test { | 
 |     echo -n "Loading bpf program '$2'... " | 
 |     tc qdisc add dev $IFC clsact | 
 |     tc filter add dev $IFC ingress bpf da obj $1 sec $2 | 
 |     local status=$? | 
 |     if [ $status -ne 0 ]; then | 
 |         echo "FAIL" | 
 |     else | 
 |         echo "ok" | 
 | 	pktgen | 
 |     fi | 
 |     tc qdisc del dev $IFC clsact | 
 | } | 
 |  | 
 | IFC=test_veth | 
 |  | 
 | ip link add name $IFC type veth peer name pair_$IFC | 
 | ip link set $IFC up | 
 | ip link set pair_$IFC up | 
 |  | 
 | test ./parse_simple.o simple | 
 | test ./parse_varlen.o varlen | 
 | test ./parse_ldabs.o ldabs | 
 | ip link del dev $IFC |