/* Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv6_route.in; do not edit. */

static const struct xlat sysctl_net_ipv6_route[] = {
#if defined(NET_IPV6_ROUTE_FLUSH) || (defined(HAVE_DECL_NET_IPV6_ROUTE_FLUSH) && HAVE_DECL_NET_IPV6_ROUTE_FLUSH)
	XLAT(NET_IPV6_ROUTE_FLUSH),
#endif
#if defined(NET_IPV6_ROUTE_GC_THRESH) || (defined(HAVE_DECL_NET_IPV6_ROUTE_GC_THRESH) && HAVE_DECL_NET_IPV6_ROUTE_GC_THRESH)
	XLAT(NET_IPV6_ROUTE_GC_THRESH),
#endif
#if defined(NET_IPV6_ROUTE_MAX_SIZE) || (defined(HAVE_DECL_NET_IPV6_ROUTE_MAX_SIZE) && HAVE_DECL_NET_IPV6_ROUTE_MAX_SIZE)
	XLAT(NET_IPV6_ROUTE_MAX_SIZE),
#endif
#if defined(NET_IPV6_ROUTE_GC_MIN_INTERVAL) || (defined(HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL) && HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL)
	XLAT(NET_IPV6_ROUTE_GC_MIN_INTERVAL),
#endif
#if defined(NET_IPV6_ROUTE_GC_TIMEOUT) || (defined(HAVE_DECL_NET_IPV6_ROUTE_GC_TIMEOUT) && HAVE_DECL_NET_IPV6_ROUTE_GC_TIMEOUT)
	XLAT(NET_IPV6_ROUTE_GC_TIMEOUT),
#endif
#if defined(NET_IPV6_ROUTE_GC_INTERVAL) || (defined(HAVE_DECL_NET_IPV6_ROUTE_GC_INTERVAL) && HAVE_DECL_NET_IPV6_ROUTE_GC_INTERVAL)
	XLAT(NET_IPV6_ROUTE_GC_INTERVAL),
#endif
#if defined(NET_IPV6_ROUTE_GC_ELASTICITY) || (defined(HAVE_DECL_NET_IPV6_ROUTE_GC_ELASTICITY) && HAVE_DECL_NET_IPV6_ROUTE_GC_ELASTICITY)
	XLAT(NET_IPV6_ROUTE_GC_ELASTICITY),
#endif
#if defined(NET_IPV6_ROUTE_MTU_EXPIRES) || (defined(HAVE_DECL_NET_IPV6_ROUTE_MTU_EXPIRES) && HAVE_DECL_NET_IPV6_ROUTE_MTU_EXPIRES)
	XLAT(NET_IPV6_ROUTE_MTU_EXPIRES),
#endif
#if defined(NET_IPV6_ROUTE_MIN_ADVMSS) || (defined(HAVE_DECL_NET_IPV6_ROUTE_MIN_ADVMSS) && HAVE_DECL_NET_IPV6_ROUTE_MIN_ADVMSS)
	XLAT(NET_IPV6_ROUTE_MIN_ADVMSS),
#endif
#if defined(NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS) || (defined(HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS) && HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS)
	XLAT(NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS),
#endif
	XLAT_END
};
