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

static const struct xlat sysctl_net[] = {
#if defined(NET_CORE) || (defined(HAVE_DECL_NET_CORE) && HAVE_DECL_NET_CORE)
 XLAT(NET_CORE),
#endif
#if defined(NET_ETHER) || (defined(HAVE_DECL_NET_ETHER) && HAVE_DECL_NET_ETHER)
 XLAT(NET_ETHER),
#endif
#if defined(NET_802) || (defined(HAVE_DECL_NET_802) && HAVE_DECL_NET_802)
 XLAT(NET_802),
#endif
#if defined(NET_UNIX) || (defined(HAVE_DECL_NET_UNIX) && HAVE_DECL_NET_UNIX)
 XLAT(NET_UNIX),
#endif
#if defined(NET_IPV4) || (defined(HAVE_DECL_NET_IPV4) && HAVE_DECL_NET_IPV4)
 XLAT(NET_IPV4),
#endif
#if defined(NET_IPX) || (defined(HAVE_DECL_NET_IPX) && HAVE_DECL_NET_IPX)
 XLAT(NET_IPX),
#endif
#if defined(NET_ATALK) || (defined(HAVE_DECL_NET_ATALK) && HAVE_DECL_NET_ATALK)
 XLAT(NET_ATALK),
#endif
#if defined(NET_NETROM) || (defined(HAVE_DECL_NET_NETROM) && HAVE_DECL_NET_NETROM)
 XLAT(NET_NETROM),
#endif
#if defined(NET_AX25) || (defined(HAVE_DECL_NET_AX25) && HAVE_DECL_NET_AX25)
 XLAT(NET_AX25),
#endif
#if defined(NET_BRIDGE) || (defined(HAVE_DECL_NET_BRIDGE) && HAVE_DECL_NET_BRIDGE)
 XLAT(NET_BRIDGE),
#endif
#if defined(NET_ROSE) || (defined(HAVE_DECL_NET_ROSE) && HAVE_DECL_NET_ROSE)
 XLAT(NET_ROSE),
#endif
#if defined(NET_IPV6) || (defined(HAVE_DECL_NET_IPV6) && HAVE_DECL_NET_IPV6)
 XLAT(NET_IPV6),
#endif
#if defined(NET_X25) || (defined(HAVE_DECL_NET_X25) && HAVE_DECL_NET_X25)
 XLAT(NET_X25),
#endif
#if defined(NET_TR) || (defined(HAVE_DECL_NET_TR) && HAVE_DECL_NET_TR)
 XLAT(NET_TR),
#endif
#if defined(NET_DECNET) || (defined(HAVE_DECL_NET_DECNET) && HAVE_DECL_NET_DECNET)
 XLAT(NET_DECNET),
#endif
#if defined(NET_ECONET) || (defined(HAVE_DECL_NET_ECONET) && HAVE_DECL_NET_ECONET)
 XLAT(NET_ECONET),
#endif
#if defined(NET_SCTP) || (defined(HAVE_DECL_NET_SCTP) && HAVE_DECL_NET_SCTP)
 XLAT(NET_SCTP),
#endif
#if defined(NET_LLC) || (defined(HAVE_DECL_NET_LLC) && HAVE_DECL_NET_LLC)
 XLAT(NET_LLC),
#endif
#if defined(NET_NETFILTER) || (defined(HAVE_DECL_NET_NETFILTER) && HAVE_DECL_NET_NETFILTER)
 XLAT(NET_NETFILTER),
#endif
#if defined(NET_DCCP) || (defined(HAVE_DECL_NET_DCCP) && HAVE_DECL_NET_DCCP)
 XLAT(NET_DCCP),
#endif
#if defined(NET_IRDA) || (defined(HAVE_DECL_NET_IRDA) && HAVE_DECL_NET_IRDA)
 XLAT(NET_IRDA),
#endif
 XLAT_END
};
