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