xref: /linux/samples/bpf/test_cls_bpf.sh (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
165d472fbSAlexei Starovoitov#!/bin/bash
2*b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
365d472fbSAlexei Starovoitov
465d472fbSAlexei Starovoitovfunction pktgen {
565d472fbSAlexei Starovoitov    ../pktgen/pktgen_bench_xmit_mode_netif_receive.sh -i $IFC -s 64 \
665d472fbSAlexei Starovoitov        -m 90:e2:ba:ff:ff:ff -d 192.168.0.1 -t 4
765d472fbSAlexei Starovoitov    local dropped=`tc -s qdisc show dev $IFC | tail -3 | awk '/drop/{print $7}'`
865d472fbSAlexei Starovoitov    if [ "$dropped" == "0," ]; then
965d472fbSAlexei Starovoitov        echo "FAIL"
1065d472fbSAlexei Starovoitov    else
1165d472fbSAlexei Starovoitov        echo "Successfully filtered " $dropped " packets"
1265d472fbSAlexei Starovoitov    fi
1365d472fbSAlexei Starovoitov}
1465d472fbSAlexei Starovoitov
1565d472fbSAlexei Starovoitovfunction test {
1665d472fbSAlexei Starovoitov    echo -n "Loading bpf program '$2'... "
1765d472fbSAlexei Starovoitov    tc qdisc add dev $IFC clsact
1865d472fbSAlexei Starovoitov    tc filter add dev $IFC ingress bpf da obj $1 sec $2
1965d472fbSAlexei Starovoitov    local status=$?
2065d472fbSAlexei Starovoitov    if [ $status -ne 0 ]; then
2165d472fbSAlexei Starovoitov        echo "FAIL"
2265d472fbSAlexei Starovoitov    else
2365d472fbSAlexei Starovoitov        echo "ok"
2465d472fbSAlexei Starovoitov	pktgen
2565d472fbSAlexei Starovoitov    fi
2665d472fbSAlexei Starovoitov    tc qdisc del dev $IFC clsact
2765d472fbSAlexei Starovoitov}
2865d472fbSAlexei Starovoitov
2965d472fbSAlexei StarovoitovIFC=test_veth
3065d472fbSAlexei Starovoitov
3165d472fbSAlexei Starovoitovip link add name $IFC type veth peer name pair_$IFC
3265d472fbSAlexei Starovoitovip link set $IFC up
3365d472fbSAlexei Starovoitovip link set pair_$IFC up
3465d472fbSAlexei Starovoitov
3565d472fbSAlexei Starovoitovtest ./parse_simple.o simple
3665d472fbSAlexei Starovoitovtest ./parse_varlen.o varlen
3765d472fbSAlexei Starovoitovtest ./parse_ldabs.o ldabs
3865d472fbSAlexei Starovoitovip link del dev $IFC
39