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