1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4NS1=lwt_ns1
5VETH0=tst_lwt1a
6VETH1=tst_lwt1b
7BPF_PROG=lwt_len_hist.bpf.o
8TRACE_ROOT=/sys/kernel/tracing
9
10function 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
20cleanup
21
22ip netns add $NS1
23ip link add $VETH0 type veth peer name $VETH1
24ip link set dev $VETH0 up
25ip addr add 192.168.253.1/24 dev $VETH0
26ip link set $VETH1 netns $NS1
27ip netns exec $NS1 ip link set dev $VETH1 up
28ip netns exec $NS1 ip addr add 192.168.253.2/24 dev $VETH1
29ip netns exec $NS1 netserver
30
31echo 1 > ${TRACE_ROOT}/tracing_on
32cp /dev/null ${TRACE_ROOT}/trace
33ip route add 192.168.253.2/32 encap bpf out obj $BPF_PROG section len_hist dev $VETH0
34netperf -H 192.168.253.2 -t TCP_STREAM
35cat ${TRACE_ROOT}/trace | grep -v '^#'
36./lwt_len_hist
37cleanup
38echo 0 > ${TRACE_ROOT}/tracing_on
39
40exit 0
41