@@ -8,6 +8,7 @@ ALL_TESTS="
8
8
arp_validate
9
9
num_grat_arp
10
10
fail_over_mac
11
+ vlan_over_bond
11
12
"
12
13
13
14
lib_dir=$( dirname " $0 " )
@@ -508,7 +509,64 @@ fail_over_mac()
508
509
log_test " fail_over_mac 2" " failover: backup slave mac inherit"
509
510
check_first_slave_random_mac
510
511
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
511
539
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"
512
570
}
513
571
514
572
trap cleanup EXIT
0 commit comments