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