From: Brooks Swinnerton Date: Sat, 21 Jan 2023 00:58:05 +0000 (-0500) Subject: network: Increase max route size when checking IPv6 forwarding X-Git-Tag: v9.1.0-rc1~201 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dfef0e70deaf525122eb4cf4abd0ba0cded1a4c2;p=thirdparty%2Flibvirt.git network: Increase max route size when checking IPv6 forwarding In d9ee51e, virNetDevIPCheckIPv6Forwarding was updated to walk the contents of /proc/net/ipv6_route so that it could check to see if the RTF_ADDRCONF was set on any IPv6 routes to ultimately determine if enabling forwarding would result in an error due to accept_ra=1 being set on the interface. The implementation added in that commit limited the number of routes that could be read from /proc/net/ipv6_route to 100_000, each with 150 characters. This is problematic for machines that have a full IPv6 routing table, as the IPv6 routing table has now grown to over 160_000 (it was closer to 100_000 at the time of that commit). This patch increases the maximum route size from 100_000 to 1_000_000. While a million routes is somewhat arbitrary, it's meant to be a value that can be supported for the forseeable future. APNIC, one of the five regional internet registries, recently published a forecast of IPv6 table growth which anticipates a worst-case growth to 1_000_000 in January of 2029. Signed-off-by: Brooks Swinnerton Reviewed-by: Michal Privoznik --- diff --git a/src/util/virnetdevip.c b/src/util/virnetdevip.c index 2eacb64ebe..034b392ee7 100644 --- a/src/util/virnetdevip.c +++ b/src/util/virnetdevip.c @@ -529,7 +529,7 @@ virNetDevIPCheckIPv6Forwarding(void) char *cur; g_autofree char *buf = NULL; /* lines are 150 chars */ - enum {MAX_ROUTE_SIZE = 150*100000}; + enum {MAX_ROUTE_SIZE = 150*1000000}; /* This is /proc/sys/net/ipv6/conf/all/accept_ra */ int all_accept_ra = virNetDevIPGetAcceptRA(NULL);