GNU Linux-libre 6.6.15-gnu
[releases.git] / samples / bpf / lwt_len_hist.sh
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3
4 NS1=lwt_ns1
5 VETH0=tst_lwt1a
6 VETH1=tst_lwt1b
7 BPF_PROG=lwt_len_hist.bpf.o
8 TRACE_ROOT=/sys/kernel/tracing
9
10 function cleanup {
11         # To reset saved histogram, remove pinned map
12         rm /sys/fs/bpf/tc/globals/lwt_len_hist_map
13         ip route del 192.168.253.2/32 dev $VETH0 2> /dev/null
14         ip link del $VETH0 2> /dev/null
15         ip link del $VETH1 2> /dev/null
16         ip netns exec $NS1 killall netserver
17         ip netns delete $NS1 2> /dev/null
18 }
19
20 cleanup
21
22 ip netns add $NS1
23 ip link add $VETH0 type veth peer name $VETH1
24 ip link set dev $VETH0 up
25 ip addr add 192.168.253.1/24 dev $VETH0
26 ip link set $VETH1 netns $NS1
27 ip netns exec $NS1 ip link set dev $VETH1 up
28 ip netns exec $NS1 ip addr add 192.168.253.2/24 dev $VETH1
29 ip netns exec $NS1 netserver
30
31 echo 1 > ${TRACE_ROOT}/tracing_on
32 cp /dev/null ${TRACE_ROOT}/trace
33 ip route add 192.168.253.2/32 encap bpf out obj $BPF_PROG section len_hist dev $VETH0
34 netperf -H 192.168.253.2 -t TCP_STREAM
35 cat ${TRACE_ROOT}/trace | grep -v '^#'
36 ./lwt_len_hist
37 cleanup
38 echo 0 > ${TRACE_ROOT}/tracing_on
39
40 exit 0