diff options
author | William Tu <u9012063@gmail.com> | 2017-12-26 14:10:07 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-02 13:37:42 -0500 |
commit | ef27e2ccde77c92245eccec97be32b5996a80efc (patch) | |
tree | 467ed49558ea8eabd3e5cb1d9683315524a167cc | |
parent | ac0b715eab23b82e7f9257fc2ca0c04f8c7695f1 (diff) |
selftests: rtnetlink: add erspan and ip6erspan
Add test cases for ipv4, ipv6 erspan, v1 and v2 native mode
and external (collect metadata) mode.
Signed-off-by: William Tu <u9012063@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rwxr-xr-x | tools/testing/selftests/net/rtnetlink.sh | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/tools/testing/selftests/net/rtnetlink.sh b/tools/testing/selftests/net/rtnetlink.sh index dada4ab69142..a622eeecc3a6 100755 --- a/tools/testing/selftests/net/rtnetlink.sh +++ b/tools/testing/selftests/net/rtnetlink.sh | |||
@@ -598,6 +598,135 @@ kci_test_ip6gretap() | |||
598 | ip netns del "$testns" | 598 | ip netns del "$testns" |
599 | } | 599 | } |
600 | 600 | ||
601 | kci_test_erspan() | ||
602 | { | ||
603 | testns="testns" | ||
604 | DEV_NS=erspan00 | ||
605 | ret=0 | ||
606 | |||
607 | ip link help erspan 2>&1 | grep -q "^Usage:" | ||
608 | if [ $? -ne 0 ];then | ||
609 | echo "SKIP: erspan: iproute2 too old" | ||
610 | return 1 | ||
611 | fi | ||
612 | |||
613 | ip netns add "$testns" | ||
614 | if [ $? -ne 0 ]; then | ||
615 | echo "SKIP erspan tests: cannot add net namespace $testns" | ||
616 | return 1 | ||
617 | fi | ||
618 | |||
619 | # test native tunnel erspan v1 | ||
620 | ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan seq \ | ||
621 | key 102 local 172.16.1.100 remote 172.16.1.200 \ | ||
622 | erspan_ver 1 erspan 488 | ||
623 | check_err $? | ||
624 | |||
625 | ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 | ||
626 | check_err $? | ||
627 | |||
628 | ip netns exec "$testns" ip link set dev $DEV_NS up | ||
629 | check_err $? | ||
630 | |||
631 | ip netns exec "$testns" ip link del "$DEV_NS" | ||
632 | check_err $? | ||
633 | |||
634 | # test native tunnel erspan v2 | ||
635 | ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan seq \ | ||
636 | key 102 local 172.16.1.100 remote 172.16.1.200 \ | ||
637 | erspan_ver 2 erspan_dir ingress erspan_hwid 7 | ||
638 | check_err $? | ||
639 | |||
640 | ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 | ||
641 | check_err $? | ||
642 | |||
643 | ip netns exec "$testns" ip link set dev $DEV_NS up | ||
644 | check_err $? | ||
645 | |||
646 | ip netns exec "$testns" ip link del "$DEV_NS" | ||
647 | check_err $? | ||
648 | |||
649 | # test external mode | ||
650 | ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan external | ||
651 | check_err $? | ||
652 | |||
653 | ip netns exec "$testns" ip link del "$DEV_NS" | ||
654 | check_err $? | ||
655 | |||
656 | if [ $ret -ne 0 ]; then | ||
657 | echo "FAIL: erspan" | ||
658 | return 1 | ||
659 | fi | ||
660 | echo "PASS: erspan" | ||
661 | |||
662 | ip netns del "$testns" | ||
663 | } | ||
664 | |||
665 | kci_test_ip6erspan() | ||
666 | { | ||
667 | testns="testns" | ||
668 | DEV_NS=ip6erspan00 | ||
669 | ret=0 | ||
670 | |||
671 | ip link help ip6erspan 2>&1 | grep -q "^Usage:" | ||
672 | if [ $? -ne 0 ];then | ||
673 | echo "SKIP: ip6erspan: iproute2 too old" | ||
674 | return 1 | ||
675 | fi | ||
676 | |||
677 | ip netns add "$testns" | ||
678 | if [ $? -ne 0 ]; then | ||
679 | echo "SKIP ip6erspan tests: cannot add net namespace $testns" | ||
680 | return 1 | ||
681 | fi | ||
682 | |||
683 | # test native tunnel ip6erspan v1 | ||
684 | ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6erspan seq \ | ||
685 | key 102 local fc00:100::1 remote fc00:100::2 \ | ||
686 | erspan_ver 1 erspan 488 | ||
687 | check_err $? | ||
688 | |||
689 | ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 | ||
690 | check_err $? | ||
691 | |||
692 | ip netns exec "$testns" ip link set dev $DEV_NS up | ||
693 | check_err $? | ||
694 | |||
695 | ip netns exec "$testns" ip link del "$DEV_NS" | ||
696 | check_err $? | ||
697 | |||
698 | # test native tunnel ip6erspan v2 | ||
699 | ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6erspan seq \ | ||
700 | key 102 local fc00:100::1 remote fc00:100::2 \ | ||
701 | erspan_ver 2 erspan_dir ingress erspan_hwid 7 | ||
702 | check_err $? | ||
703 | |||
704 | ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 | ||
705 | check_err $? | ||
706 | |||
707 | ip netns exec "$testns" ip link set dev $DEV_NS up | ||
708 | check_err $? | ||
709 | |||
710 | ip netns exec "$testns" ip link del "$DEV_NS" | ||
711 | check_err $? | ||
712 | |||
713 | # test external mode | ||
714 | ip netns exec "$testns" ip link add dev "$DEV_NS" \ | ||
715 | type ip6erspan external | ||
716 | check_err $? | ||
717 | |||
718 | ip netns exec "$testns" ip link del "$DEV_NS" | ||
719 | check_err $? | ||
720 | |||
721 | if [ $ret -ne 0 ]; then | ||
722 | echo "FAIL: ip6erspan" | ||
723 | return 1 | ||
724 | fi | ||
725 | echo "PASS: ip6erspan" | ||
726 | |||
727 | ip netns del "$testns" | ||
728 | } | ||
729 | |||
601 | kci_test_rtnl() | 730 | kci_test_rtnl() |
602 | { | 731 | { |
603 | kci_add_dummy | 732 | kci_add_dummy |
@@ -612,6 +741,8 @@ kci_test_rtnl() | |||
612 | kci_test_gre | 741 | kci_test_gre |
613 | kci_test_gretap | 742 | kci_test_gretap |
614 | kci_test_ip6gretap | 743 | kci_test_ip6gretap |
744 | kci_test_erspan | ||
745 | kci_test_ip6erspan | ||
615 | kci_test_bridge | 746 | kci_test_bridge |
616 | kci_test_addrlabel | 747 | kci_test_addrlabel |
617 | kci_test_ifalias | 748 | kci_test_ifalias |