/* 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
};
