Improve drop count printing
[flowspec-xdp] / dropcount.sh
1 #!/bin/sh
2 KEY=""
3 CNT=0
4 bpftool map dump id "$(bpftool map show | grep drop_cnt_map | awk '{ print $1 }' | tr -d ':')" | while read LINE; do
5         case "$LINE" in
6                 "key:") ;;
7                 "value"*)
8                         CNT=$(( $CNT + $(echo "$LINE" | awk '{ print "0x" $11 $10 $9 $8 $7 $6 $5 $4 }') ))
9                         ;;
10                 "Found "*) ;;
11                 *)
12                         if [ "$KEY" != "" ]; then
13                                 if [ "$KEY" = "0x00000000" ]; then
14                                         echo "Invalid packet length: $CNT"
15                                 elif [ "$KEY" = "0x00000001" ]; then
16                                         echo "Invalid VLAN tag: $CNT"
17                                 elif [ "$KEY" = "0x00000002" ]; then
18                                         echo "Invalid/rejected IHL IPv4 field: $CNT"
19                                 elif [ "$KEY" = "0x00000003" ]; then
20                                         echo "Rejected IPv6 fragments: $CNT"
21                                 else
22                                         echo "$KEY: $CNT"
23                                 fi
24                         fi
25                         KEY=$(echo "$LINE" | awk '{ print "0x" $4 $3 $2 $1 }')
26                         CNT=0
27                         ;;
28         esac
29 done