@@ -8,6 +8,7 @@ ALL_TESTS="
88 arp_validate
99 num_grat_arp
1010 fail_over_mac
11+ vlan_over_bond
1112"
1213
1314lib_dir=$( dirname " $0 " )
@@ -508,7 +509,64 @@ fail_over_mac()
508509 log_test " fail_over_mac 2" " failover: backup slave mac inherit"
509510 check_first_slave_random_mac
510511 log_test " fail_over_mac 2" " first slave mac random"
512+ }
513+
514+ vlan_over_bond_arp ()
515+ {
516+ local mode=" $1 "
517+ RET=0
518+
519+ bond_reset " mode $mode arp_interval 100 arp_ip_target 192.0.3.10"
520+ ip -n " ${s_ns} " link add bond0.3 link bond0 type vlan id 3
521+ ip -n " ${s_ns} " link set bond0.3 up
522+ ip -n " ${s_ns} " addr add 192.0.3.1/24 dev bond0.3
523+ ip -n " ${s_ns} " addr add 2001:db8::3:1/64 dev bond0.3
524+
525+ slowwait_for_counter 5 5 tc_rule_handle_stats_get \
526+ " dev eth0.3 ingress" 101 " .packets" " -n ${c_ns} " & > /dev/null || RET=1
527+ log_test " vlan over bond arp" " $mode "
528+ }
529+
530+ vlan_over_bond_ns ()
531+ {
532+ local mode=" $1 "
533+ RET=0
534+
535+ if skip_ns; then
536+ log_test_skip " vlan_over_bond ns" " $mode "
537+ return 0
538+ fi
511539
540+ bond_reset " mode $mode arp_interval 100 ns_ip6_target 2001:db8::3:10"
541+ ip -n " ${s_ns} " link add bond0.3 link bond0 type vlan id 3
542+ ip -n " ${s_ns} " link set bond0.3 up
543+ ip -n " ${s_ns} " addr add 192.0.3.1/24 dev bond0.3
544+ ip -n " ${s_ns} " addr add 2001:db8::3:1/64 dev bond0.3
545+
546+ slowwait_for_counter 5 5 tc_rule_handle_stats_get \
547+ " dev eth0.3 ingress" 102 " .packets" " -n ${c_ns} " & > /dev/null || RET=1
548+ log_test " vlan over bond ns" " $mode "
549+ }
550+
551+ vlan_over_bond ()
552+ {
553+ # add vlan 3 for client
554+ ip -n " ${c_ns} " link add eth0.3 link eth0 type vlan id 3
555+ ip -n " ${c_ns} " link set eth0.3 up
556+ ip -n " ${c_ns} " addr add 192.0.3.10/24 dev eth0.3
557+ ip -n " ${c_ns} " addr add 2001:db8::3:10/64 dev eth0.3
558+
559+ # Add tc rule to check the vlan pkts
560+ tc -n " ${c_ns} " qdisc add dev eth0.3 clsact
561+ tc -n " ${c_ns} " filter add dev eth0.3 ingress protocol arp \
562+ handle 101 flower skip_hw arp_op request \
563+ arp_sip 192.0.3.1 arp_tip 192.0.3.10 action pass
564+ tc -n " ${c_ns} " filter add dev eth0.3 ingress protocol ipv6 \
565+ handle 102 flower skip_hw ip_proto icmpv6 \
566+ type 135 src_ip 2001:db8::3:1 action pass
567+
568+ vlan_over_bond_arp " active-backup"
569+ vlan_over_bond_ns " active-backup"
512570}
513571
514572trap cleanup EXIT
0 commit comments