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]>
---
v2: added CONFIG_IPV6_ROUTE_INFO to the config
---
 tools/testing/selftests/net/config       |  1 +
 tools/testing/selftests/net/fib_tests.sh | 17 +++++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/tools/testing/selftests/net/config 
b/tools/testing/selftests/net/config
index cd49b7dfe216..69e22bde0fdb 100644
--- a/tools/testing/selftests/net/config
+++ b/tools/testing/selftests/net/config
@@ -43,6 +43,7 @@ CONFIG_IPV6_ILA=m
 CONFIG_IPV6_IOAM6_LWTUNNEL=y
 CONFIG_IPV6_MROUTE=y
 CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_ROUTE_INFO=y
 CONFIG_IPV6_RPL_LWTUNNEL=y
 CONFIG_IPV6_SEG6_LWTUNNEL=y
 CONFIG_IPV6_SIT=y
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