From: Matt Corallo Date: Sun, 4 Apr 2021 02:14:43 +0000 (-0400) Subject: Add default installer script X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=flowspec-xdp;a=commitdiff_plain;h=fd5a4615a8c2684076a66389fc747be49f3e0b6c Add default installer script --- diff --git a/dropcount.sh b/dropcount.sh new file mode 100755 index 0000000..f67abf7 --- /dev/null +++ b/dropcount.sh @@ -0,0 +1,19 @@ +#!/bin/sh +KEY="" +CNT=0 +bpftool map dump id "$(bpftool map show | grep drop_cnt_map | awk '{ print $1 }' | tr -d ':')" | while read LINE; do + case "$LINE" in + "key:") ;; + "value"*) + CNT=$(( $CNT + $(echo "$LINE" | awk '{ print "0x" $11 $10 $9 $8 $7 $6 $5 $4 }') )) + ;; + "Found "*) ;; + *) + if [ "$KEY" != "" ]; then + echo "$KEY: $CNT" + fi + KEY=$(echo "$LINE" | awk '{ print "0x" $4 $3 $2 $1 }') + CNT=0 + ;; + esac +done diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..d93664c --- /dev/null +++ b/install.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -e + +RULES="$(birdc show route table flowspec4) +$(birdc show route table flowspec6)" + +echo "$RULES" | ./genrules.py --8021q=drop-vlan --v6frag=ignore-parse-if-rule --ihl=drop-options +clang -std=c99 -pedantic -Wall -Wextra -Wno-pointer-arith -Wno-unused-variable -Os -emit-llvm -c xdp.c -o - | llc -march=bpf -filetype=obj -o xdp + +echo "Before unload drop count was:" +./dropcount.sh || echo "Not loaded" + +ip link set "$1" xdp off +ip link set "$1" xdpgeneric off +# Note that sometimes the automated fallback does not work properly so we have to || generic here +ip link set "$1" xdp obj xdp sec xdp_drop || ip link set "$1" xdpgeneric obj xdp sec xdp_drop