As commit bbf4a17ad9ff ("ipv6: Fix ECMP sibling count mismatch when
clearing RTF_ADDRCONF") pointed out, RA routes are not elegible for ECMP
merging.

Add a test scenario mixing RA and static routes with gateway to check
that they are not getting merged.

Signed-off-by: Fernando Fernandez Mancera <[email protected]>
---
 tools/testing/selftests/net/fib_tests.sh | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/tools/testing/selftests/net/fib_tests.sh 
b/tools/testing/selftests/net/fib_tests.sh
index c5694cc4ddd2..1262ee1ea09b 100755
--- a/tools/testing/selftests/net/fib_tests.sh
+++ b/tools/testing/selftests/net/fib_tests.sh
@@ -1534,6 +1534,23 @@ fib6_ra_to_static()
 
        log_test $ret 0 "ipv6 promote RA route to static"
 
+       # Prepare for RA route with gateway
+       $NS_EXEC sysctl -wq net.ipv6.conf.veth1.accept_ra_rt_info_max_plen=64
+
+       # Add initial route to cause ECMP merging
+       $IP -6 route add 2001:12::/64 via fe80::dead:beef dev veth1
+
+       $NS_EXEC ra6 -i veth2 -d 2001:10::1 -R 2001:12::/64#1#120
+
+       # Routes are not merged as RA routes are not elegible for ECMP
+       check_rt_num 2 "$($IP -6 route list | grep -c "2001:12::/64 via")"
+
+       $IP -6 route append 2001:12::/64 via fe80::dead:feeb dev veth1
+
+       check_rt_num 2 "$($IP -6 route list | grep -c "nexthop via")"
+
+       log_test "$ret" 0 "ipv6 RA route with nexthop do not merge into ECMP 
with static"
+
        set +e
 
        cleanup &> /dev/null
-- 
2.53.0


Reply via email to