/* Generated by ./xlat/gen.sh from ./xlat/rtnl_neightbl_attrs.in; do not edit. */
#if !(defined(NDTA_UNSPEC) || (defined(HAVE_DECL_NDTA_UNSPEC) && HAVE_DECL_NDTA_UNSPEC))
# define NDTA_UNSPEC 0
#endif
#if !(defined(NDTA_NAME) || (defined(HAVE_DECL_NDTA_NAME) && HAVE_DECL_NDTA_NAME))
# define NDTA_NAME 1
#endif
#if !(defined(NDTA_THRESH1) || (defined(HAVE_DECL_NDTA_THRESH1) && HAVE_DECL_NDTA_THRESH1))
# define NDTA_THRESH1 2
#endif
#if !(defined(NDTA_THRESH2) || (defined(HAVE_DECL_NDTA_THRESH2) && HAVE_DECL_NDTA_THRESH2))
# define NDTA_THRESH2 3
#endif
#if !(defined(NDTA_THRESH3) || (defined(HAVE_DECL_NDTA_THRESH3) && HAVE_DECL_NDTA_THRESH3))
# define NDTA_THRESH3 4
#endif
#if !(defined(NDTA_CONFIG) || (defined(HAVE_DECL_NDTA_CONFIG) && HAVE_DECL_NDTA_CONFIG))
# define NDTA_CONFIG 5
#endif
#if !(defined(NDTA_PARMS) || (defined(HAVE_DECL_NDTA_PARMS) && HAVE_DECL_NDTA_PARMS))
# define NDTA_PARMS 6
#endif
#if !(defined(NDTA_STATS) || (defined(HAVE_DECL_NDTA_STATS) && HAVE_DECL_NDTA_STATS))
# define NDTA_STATS 7
#endif
#if !(defined(NDTA_GC_INTERVAL) || (defined(HAVE_DECL_NDTA_GC_INTERVAL) && HAVE_DECL_NDTA_GC_INTERVAL))
# define NDTA_GC_INTERVAL 8
#endif
#if !(defined(NDTA_PAD) || (defined(HAVE_DECL_NDTA_PAD) && HAVE_DECL_NDTA_PAD))
# define NDTA_PAD 9
#endif

#ifdef IN_MPERS

# error static const struct xlat rtnl_neightbl_attrs in mpers mode

#else

static
const struct xlat rtnl_neightbl_attrs[] = {
 XLAT(NDTA_UNSPEC),
 XLAT(NDTA_NAME),
 XLAT(NDTA_THRESH1),
 XLAT(NDTA_THRESH2),
 XLAT(NDTA_THRESH3),
 XLAT(NDTA_CONFIG),
 XLAT(NDTA_PARMS),
 XLAT(NDTA_STATS),
 XLAT(NDTA_GC_INTERVAL),
 XLAT(NDTA_PAD),
 XLAT_END
};

#endif /* !IN_MPERS */
