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

#ifdef IN_MPERS

# error static const struct xlat sysctl_net_ipv4_route in mpers mode

#else

static
const struct xlat sysctl_net_ipv4_route[] = {
 XLAT(NET_IPV4_ROUTE_FLUSH),
 XLAT(NET_IPV4_ROUTE_MIN_DELAY),
 XLAT(NET_IPV4_ROUTE_MAX_DELAY),
 XLAT(NET_IPV4_ROUTE_GC_THRESH),
 XLAT(NET_IPV4_ROUTE_MAX_SIZE),
 XLAT(NET_IPV4_ROUTE_GC_MIN_INTERVAL),
 XLAT(NET_IPV4_ROUTE_GC_TIMEOUT),
 XLAT(NET_IPV4_ROUTE_GC_INTERVAL),
 XLAT(NET_IPV4_ROUTE_REDIRECT_LOAD),
 XLAT(NET_IPV4_ROUTE_REDIRECT_NUMBER),
 XLAT(NET_IPV4_ROUTE_REDIRECT_SILENCE),
 XLAT(NET_IPV4_ROUTE_ERROR_COST),
 XLAT(NET_IPV4_ROUTE_ERROR_BURST),
 XLAT(NET_IPV4_ROUTE_GC_ELASTICITY),
 XLAT(NET_IPV4_ROUTE_MTU_EXPIRES),
 XLAT(NET_IPV4_ROUTE_MIN_PMTU),
 XLAT(NET_IPV4_ROUTE_MIN_ADVMSS),
 XLAT(NET_IPV4_ROUTE_SECRET_INTERVAL),
#if defined(NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS) || (defined(HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS) && HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS)
  XLAT(NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
