| .. | .. |
|---|
| 24 | 24 | # Root namespace with metadata-mode tunnel + BPF |
|---|
| 25 | 25 | # Device names and addresses: |
|---|
| 26 | 26 | # veth1 IP: 172.16.1.200, IPv6: 00::22 (underlay) |
|---|
| 27 | | -# tunnel dev <type>11, ex: gre11, IPv4: 10.1.1.200 (overlay) |
|---|
| 27 | +# tunnel dev <type>11, ex: gre11, IPv4: 10.1.1.200, IPv6: 1::22 (overlay) |
|---|
| 28 | 28 | # |
|---|
| 29 | 29 | # Namespace at_ns0 with native tunnel |
|---|
| 30 | 30 | # Device names and addresses: |
|---|
| 31 | 31 | # veth0 IPv4: 172.16.1.100, IPv6: 00::11 (underlay) |
|---|
| 32 | | -# tunnel dev <type>00, ex: gre00, IPv4: 10.1.1.100 (overlay) |
|---|
| 32 | +# tunnel dev <type>00, ex: gre00, IPv4: 10.1.1.100, IPv6: 1::11 (overlay) |
|---|
| 33 | 33 | # |
|---|
| 34 | 34 | # |
|---|
| 35 | 35 | # End-to-end ping packet flow |
|---|
| .. | .. |
|---|
| 250 | 250 | ip addr add dev $DEV 10.1.1.200/24 |
|---|
| 251 | 251 | } |
|---|
| 252 | 252 | |
|---|
| 253 | | -add_ipip6tnl_tunnel() |
|---|
| 253 | +add_ip6tnl_tunnel() |
|---|
| 254 | 254 | { |
|---|
| 255 | 255 | ip netns exec at_ns0 ip addr add ::11/96 dev veth0 |
|---|
| 256 | 256 | ip netns exec at_ns0 ip link set dev veth0 up |
|---|
| .. | .. |
|---|
| 262 | 262 | ip link add dev $DEV_NS type $TYPE \ |
|---|
| 263 | 263 | local ::11 remote ::22 |
|---|
| 264 | 264 | ip netns exec at_ns0 ip addr add dev $DEV_NS 10.1.1.100/24 |
|---|
| 265 | + ip netns exec at_ns0 ip addr add dev $DEV_NS 1::11/96 |
|---|
| 265 | 266 | ip netns exec at_ns0 ip link set dev $DEV_NS up |
|---|
| 266 | 267 | |
|---|
| 267 | 268 | # root namespace |
|---|
| 268 | 269 | ip link add dev $DEV type $TYPE external |
|---|
| 269 | 270 | ip addr add dev $DEV 10.1.1.200/24 |
|---|
| 271 | + ip addr add dev $DEV 1::22/96 |
|---|
| 270 | 272 | ip link set dev $DEV up |
|---|
| 271 | 273 | } |
|---|
| 272 | 274 | |
|---|
| .. | .. |
|---|
| 534 | 536 | |
|---|
| 535 | 537 | check $TYPE |
|---|
| 536 | 538 | config_device |
|---|
| 537 | | - add_ipip6tnl_tunnel |
|---|
| 539 | + add_ip6tnl_tunnel |
|---|
| 538 | 540 | ip link set dev veth1 mtu 1500 |
|---|
| 539 | 541 | attach_bpf $DEV ipip6_set_tunnel ipip6_get_tunnel |
|---|
| 540 | 542 | # underlay |
|---|
| .. | .. |
|---|
| 551 | 553 | return 1 |
|---|
| 552 | 554 | fi |
|---|
| 553 | 555 | echo -e ${GREEN}"PASS: $TYPE"${NC} |
|---|
| 556 | +} |
|---|
| 557 | + |
|---|
| 558 | +test_ip6ip6() |
|---|
| 559 | +{ |
|---|
| 560 | + TYPE=ip6tnl |
|---|
| 561 | + DEV_NS=ip6ip6tnl00 |
|---|
| 562 | + DEV=ip6ip6tnl11 |
|---|
| 563 | + ret=0 |
|---|
| 564 | + |
|---|
| 565 | + check $TYPE |
|---|
| 566 | + config_device |
|---|
| 567 | + add_ip6tnl_tunnel |
|---|
| 568 | + ip link set dev veth1 mtu 1500 |
|---|
| 569 | + attach_bpf $DEV ip6ip6_set_tunnel ip6ip6_get_tunnel |
|---|
| 570 | + # underlay |
|---|
| 571 | + ping6 $PING_ARG ::11 |
|---|
| 572 | + # ip6 over ip6 |
|---|
| 573 | + ping6 $PING_ARG 1::11 |
|---|
| 574 | + check_err $? |
|---|
| 575 | + ip netns exec at_ns0 ping6 $PING_ARG 1::22 |
|---|
| 576 | + check_err $? |
|---|
| 577 | + cleanup |
|---|
| 578 | + |
|---|
| 579 | + if [ $ret -ne 0 ]; then |
|---|
| 580 | + echo -e ${RED}"FAIL: ip6$TYPE"${NC} |
|---|
| 581 | + return 1 |
|---|
| 582 | + fi |
|---|
| 583 | + echo -e ${GREEN}"PASS: ip6$TYPE"${NC} |
|---|
| 554 | 584 | } |
|---|
| 555 | 585 | |
|---|
| 556 | 586 | setup_xfrm_tunnel() |
|---|
| .. | .. |
|---|
| 646 | 676 | ip link del veth1 2> /dev/null |
|---|
| 647 | 677 | ip link del ipip11 2> /dev/null |
|---|
| 648 | 678 | ip link del ipip6tnl11 2> /dev/null |
|---|
| 679 | + ip link del ip6ip6tnl11 2> /dev/null |
|---|
| 649 | 680 | ip link del gretap11 2> /dev/null |
|---|
| 650 | 681 | ip link del ip6gre11 2> /dev/null |
|---|
| 651 | 682 | ip link del ip6gretap11 2> /dev/null |
|---|
| .. | .. |
|---|
| 696 | 727 | |
|---|
| 697 | 728 | bpf_tunnel_test() |
|---|
| 698 | 729 | { |
|---|
| 730 | + local errors=0 |
|---|
| 731 | + |
|---|
| 699 | 732 | echo "Testing GRE tunnel..." |
|---|
| 700 | 733 | test_gre |
|---|
| 734 | + errors=$(( $errors + $? )) |
|---|
| 735 | + |
|---|
| 701 | 736 | echo "Testing IP6GRE tunnel..." |
|---|
| 702 | 737 | test_ip6gre |
|---|
| 738 | + errors=$(( $errors + $? )) |
|---|
| 739 | + |
|---|
| 703 | 740 | echo "Testing IP6GRETAP tunnel..." |
|---|
| 704 | 741 | test_ip6gretap |
|---|
| 742 | + errors=$(( $errors + $? )) |
|---|
| 743 | + |
|---|
| 705 | 744 | echo "Testing ERSPAN tunnel..." |
|---|
| 706 | 745 | test_erspan v2 |
|---|
| 746 | + errors=$(( $errors + $? )) |
|---|
| 747 | + |
|---|
| 707 | 748 | echo "Testing IP6ERSPAN tunnel..." |
|---|
| 708 | 749 | test_ip6erspan v2 |
|---|
| 750 | + errors=$(( $errors + $? )) |
|---|
| 751 | + |
|---|
| 709 | 752 | echo "Testing VXLAN tunnel..." |
|---|
| 710 | 753 | test_vxlan |
|---|
| 754 | + errors=$(( $errors + $? )) |
|---|
| 755 | + |
|---|
| 711 | 756 | echo "Testing IP6VXLAN tunnel..." |
|---|
| 712 | 757 | test_ip6vxlan |
|---|
| 758 | + errors=$(( $errors + $? )) |
|---|
| 759 | + |
|---|
| 713 | 760 | echo "Testing GENEVE tunnel..." |
|---|
| 714 | 761 | test_geneve |
|---|
| 762 | + errors=$(( $errors + $? )) |
|---|
| 763 | + |
|---|
| 715 | 764 | echo "Testing IP6GENEVE tunnel..." |
|---|
| 716 | 765 | test_ip6geneve |
|---|
| 766 | + errors=$(( $errors + $? )) |
|---|
| 767 | + |
|---|
| 717 | 768 | echo "Testing IPIP tunnel..." |
|---|
| 718 | 769 | test_ipip |
|---|
| 770 | + errors=$(( $errors + $? )) |
|---|
| 771 | + |
|---|
| 719 | 772 | echo "Testing IPIP6 tunnel..." |
|---|
| 720 | 773 | test_ipip6 |
|---|
| 774 | + errors=$(( $errors + $? )) |
|---|
| 775 | + |
|---|
| 776 | + echo "Testing IP6IP6 tunnel..." |
|---|
| 777 | + test_ip6ip6 |
|---|
| 778 | + errors=$(( $errors + $? )) |
|---|
| 779 | + |
|---|
| 721 | 780 | echo "Testing IPSec tunnel..." |
|---|
| 722 | 781 | test_xfrm_tunnel |
|---|
| 782 | + errors=$(( $errors + $? )) |
|---|
| 783 | + |
|---|
| 784 | + return $errors |
|---|
| 723 | 785 | } |
|---|
| 724 | 786 | |
|---|
| 725 | 787 | trap cleanup 0 3 6 |
|---|
| .. | .. |
|---|
| 728 | 790 | cleanup |
|---|
| 729 | 791 | bpf_tunnel_test |
|---|
| 730 | 792 | |
|---|
| 793 | +if [ $? -ne 0 ]; then |
|---|
| 794 | + echo -e "$(basename $0): ${RED}FAIL${NC}" |
|---|
| 795 | + exit 1 |
|---|
| 796 | +fi |
|---|
| 797 | +echo -e "$(basename $0): ${GREEN}PASS${NC}" |
|---|
| 731 | 798 | exit 0 |
|---|