@@ -467,8 +467,8 @@ ipv6_fdb_grp_fcnal()
467467 log_test $? 0 " Get Fdb nexthop group by id"
468468
469469 # fdb nexthop group can only contain fdb nexthops
470- run_cmd " $IP nexthop add id 63 via 2001:db8:91::4"
471- run_cmd " $IP nexthop add id 64 via 2001:db8:91::5"
470+ run_cmd " $IP nexthop add id 63 via 2001:db8:91::4 dev veth1 "
471+ run_cmd " $IP nexthop add id 64 via 2001:db8:91::5 dev veth1 "
472472 run_cmd " $IP nexthop add id 103 group 63/64 fdb"
473473 log_test $? 2 " Fdb Nexthop group with non-fdb nexthops"
474474
@@ -494,6 +494,26 @@ ipv6_fdb_grp_fcnal()
494494 run_cmd " $IP nexthop add id 69 encap mpls 101 via 2001:db8:91::8 dev veth1 fdb"
495495 log_test $? 2 " Fdb Nexthop with encap"
496496
497+ # Replace FDB nexthop to non-FDB and vice versa
498+ run_cmd " $IP nexthop add id 70 via 2001:db8:91::2 fdb"
499+ run_cmd " $IP nexthop replace id 70 via 2001:db8:91::2 dev veth1"
500+ log_test $? 0 " Replace FDB nexthop to non-FDB nexthop"
501+ run_cmd " $IP nexthop replace id 70 via 2001:db8:91::2 fdb"
502+ log_test $? 0 " Replace non-FDB nexthop to FDB nexthop"
503+
504+ # Replace FDB nexthop address while in a group
505+ run_cmd " $IP nexthop add id 71 group 70 fdb"
506+ run_cmd " $IP nexthop replace id 70 via 2001:db8:91::3 fdb"
507+ log_test $? 0 " Replace FDB nexthop address while in a group"
508+
509+ # Cannot replace FDB nexthop to non-FDB and vice versa while in a group
510+ run_cmd " $IP nexthop replace id 70 via 2001:db8:91::2 dev veth1"
511+ log_test $? 2 " Replace FDB nexthop to non-FDB nexthop while in a group"
512+ run_cmd " $IP nexthop add id 72 via 2001:db8:91::2 dev veth1"
513+ run_cmd " $IP nexthop add id 73 group 72"
514+ run_cmd " $IP nexthop replace id 72 via 2001:db8:91::2 fdb"
515+ log_test $? 2 " Replace non-FDB nexthop to FDB nexthop while in a group"
516+
497517 run_cmd " $IP link add name vx10 type vxlan id 1010 local 2001:db8:91::9 remote 2001:db8:91::10 dstport 4789 nolearning noudpcsum tos inherit ttl 100"
498518 run_cmd " $BRIDGE fdb add 02:02:00:00:00:13 dev vx10 nhid 102 self"
499519 log_test $? 0 " Fdb mac add with nexthop group"
@@ -547,15 +567,15 @@ ipv4_fdb_grp_fcnal()
547567 log_test $? 0 " Get Fdb nexthop group by id"
548568
549569 # fdb nexthop group can only contain fdb nexthops
550- run_cmd " $IP nexthop add id 14 via 172.16.1.2"
551- run_cmd " $IP nexthop add id 15 via 172.16.1.3"
570+ run_cmd " $IP nexthop add id 14 via 172.16.1.2 dev veth1 "
571+ run_cmd " $IP nexthop add id 15 via 172.16.1.3 dev veth1 "
552572 run_cmd " $IP nexthop add id 103 group 14/15 fdb"
553573 log_test $? 2 " Fdb Nexthop group with non-fdb nexthops"
554574
555575 # Non fdb nexthop group can not contain fdb nexthops
556576 run_cmd " $IP nexthop add id 16 via 172.16.1.2 fdb"
557577 run_cmd " $IP nexthop add id 17 via 172.16.1.3 fdb"
558- run_cmd " $IP nexthop add id 104 group 14/15 "
578+ run_cmd " $IP nexthop add id 104 group 16/17 "
559579 log_test $? 2 " Non-Fdb Nexthop group with fdb nexthops"
560580
561581 # fdb nexthop cannot have blackhole
@@ -574,6 +594,26 @@ ipv4_fdb_grp_fcnal()
574594 run_cmd " $IP nexthop add id 17 encap mpls 101 via 172.16.1.2 dev veth1 fdb"
575595 log_test $? 2 " Fdb Nexthop with encap"
576596
597+ # Replace FDB nexthop to non-FDB and vice versa
598+ run_cmd " $IP nexthop add id 18 via 172.16.1.2 fdb"
599+ run_cmd " $IP nexthop replace id 18 via 172.16.1.2 dev veth1"
600+ log_test $? 0 " Replace FDB nexthop to non-FDB nexthop"
601+ run_cmd " $IP nexthop replace id 18 via 172.16.1.2 fdb"
602+ log_test $? 0 " Replace non-FDB nexthop to FDB nexthop"
603+
604+ # Replace FDB nexthop address while in a group
605+ run_cmd " $IP nexthop add id 19 group 18 fdb"
606+ run_cmd " $IP nexthop replace id 18 via 172.16.1.3 fdb"
607+ log_test $? 0 " Replace FDB nexthop address while in a group"
608+
609+ # Cannot replace FDB nexthop to non-FDB and vice versa while in a group
610+ run_cmd " $IP nexthop replace id 18 via 172.16.1.2 dev veth1"
611+ log_test $? 2 " Replace FDB nexthop to non-FDB nexthop while in a group"
612+ run_cmd " $IP nexthop add id 20 via 172.16.1.2 dev veth1"
613+ run_cmd " $IP nexthop add id 21 group 20"
614+ run_cmd " $IP nexthop replace id 20 via 172.16.1.2 fdb"
615+ log_test $? 2 " Replace non-FDB nexthop to FDB nexthop while in a group"
616+
577617 run_cmd " $IP link add name vx10 type vxlan id 1010 local 10.0.0.1 remote 10.0.0.2 dstport 4789 nolearning noudpcsum tos inherit ttl 100"
578618 run_cmd " $BRIDGE fdb add 02:02:00:00:00:13 dev vx10 nhid 102 self"
579619 log_test $? 0 " Fdb mac add with nexthop group"
@@ -582,7 +622,7 @@ ipv4_fdb_grp_fcnal()
582622 run_cmd " $BRIDGE fdb add 02:02:00:00:00:14 dev vx10 nhid 12 self"
583623 log_test $? 255 " Fdb mac add with nexthop"
584624
585- run_cmd " $IP ro add 172.16.0.0/22 nhid 15 "
625+ run_cmd " $IP ro add 172.16.0.0/22 nhid 16 "
586626 log_test $? 2 " Route add with fdb nexthop"
587627
588628 run_cmd " $IP ro add 172.16.0.0/22 nhid 103"
0 commit comments