On Tue, Nov 03, 2020 at 12:29:07PM +0800, Hangbin Liu wrote: > In comment 173ca26e9b51 ("samples/bpf: add comprehensive ipip, ipip6, > ip6ip6 test") we added ip6ip6 test for bpf tunnel testing. But in commit > 933a741e3b82 ("selftests/bpf: bpf tunnel test.") when we moved it to > the current folder, we didn't add it. > > This patch add the ip6ip6 test back to bpf tunnel test. Since the > underlay network is the same, we can reuse the ipip6 framework directly. > Iperf test is removed as currect framework simplified it in purpose. > > Signed-off-by: Hangbin Liu <liuhangbin@xxxxxxxxx> > --- > tools/testing/selftests/bpf/test_tunnel.sh | 39 ++++++++++++++++++++-- > 1 file changed, 37 insertions(+), 2 deletions(-) > > diff --git a/tools/testing/selftests/bpf/test_tunnel.sh b/tools/testing/selftests/bpf/test_tunnel.sh > index bd12ec97a44d..76a00d2ef988 100755 > --- a/tools/testing/selftests/bpf/test_tunnel.sh > +++ b/tools/testing/selftests/bpf/test_tunnel.sh > @@ -24,12 +24,12 @@ > # Root namespace with metadata-mode tunnel + BPF > # Device names and addresses: > # veth1 IP: 172.16.1.200, IPv6: 00::22 (underlay) > -# tunnel dev <type>11, ex: gre11, IPv4: 10.1.1.200 (overlay) > +# tunnel dev <type>11, ex: gre11, IPv4: 10.1.1.200, IPv6: 1::22 (overlay) > # > # Namespace at_ns0 with native tunnel > # Device names and addresses: > # veth0 IPv4: 172.16.1.100, IPv6: 00::11 (underlay) > -# tunnel dev <type>00, ex: gre00, IPv4: 10.1.1.100 (overlay) > +# tunnel dev <type>00, ex: gre00, IPv4: 10.1.1.100, IPv6: 1::11 (overlay) > # > # > # End-to-end ping packet flow > @@ -262,11 +262,13 @@ add_ipip6tnl_tunnel() > ip link add dev $DEV_NS type $TYPE \ > local ::11 remote ::22 > ip netns exec at_ns0 ip addr add dev $DEV_NS 10.1.1.100/24 > + ip netns exec at_ns0 ip addr add dev $DEV_NS 1::11/96 > ip netns exec at_ns0 ip link set dev $DEV_NS up > > # root namespace > ip link add dev $DEV type $TYPE external > ip addr add dev $DEV 10.1.1.200/24 > + ip addr add dev $DEV 1::22/96 > ip link set dev $DEV up > } > > @@ -553,6 +555,34 @@ test_ipip6() > echo -e ${GREEN}"PASS: $TYPE"${NC} > } > > +test_ip6ip6() > +{ > + TYPE=ip6tnl > + DEV_NS=ip6ip6tnl00 > + DEV=ip6ip6tnl11 > + ret=0 > + > + check $TYPE > + config_device > + add_ipip6tnl_tunnel > + ip link set dev veth1 mtu 1500 > + attach_bpf $DEV ipip6_set_tunnel ipip6_get_tunnel >From looking at the ipip6_set_tunnel in test_tunnel_kern.c. I don't think they are testing an ip6ip6 packet. If the intention is to test ip6ip6, why the existing ip6ip6_set_tunnel does not need to be exercised? > + # underlay > + ping6 $PING_ARG ::11 > + # ip6 over ip6 > + ping6 $PING_ARG 1::11 > + check_err $? > + ip netns exec at_ns0 ping6 $PING_ARG 1::22 > + check_err $? > + cleanup > + > + if [ $ret -ne 0 ]; then > + echo -e ${RED}"FAIL: ip6$TYPE"${NC} > + return 1 > + fi > + echo -e ${GREEN}"PASS: ip6$TYPE"${NC} > +}