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