/* Generated by ./xlat/gen.sh from ./xlat/rtnl_tc_action_attrs.in; do not edit. */
#if !(defined(TCA_ACT_UNSPEC) || (defined(HAVE_DECL_TCA_ACT_UNSPEC) && HAVE_DECL_TCA_ACT_UNSPEC))
# define TCA_ACT_UNSPEC 0
#endif
#if !(defined(TCA_ACT_KIND) || (defined(HAVE_DECL_TCA_ACT_KIND) && HAVE_DECL_TCA_ACT_KIND))
# define TCA_ACT_KIND 1
#endif
#if !(defined(TCA_ACT_OPTIONS) || (defined(HAVE_DECL_TCA_ACT_OPTIONS) && HAVE_DECL_TCA_ACT_OPTIONS))
# define TCA_ACT_OPTIONS 2
#endif
#if !(defined(TCA_ACT_INDEX) || (defined(HAVE_DECL_TCA_ACT_INDEX) && HAVE_DECL_TCA_ACT_INDEX))
# define TCA_ACT_INDEX 3
#endif
#if !(defined(TCA_ACT_STATS) || (defined(HAVE_DECL_TCA_ACT_STATS) && HAVE_DECL_TCA_ACT_STATS))
# define TCA_ACT_STATS 4
#endif
#if !(defined(TCA_ACT_PAD) || (defined(HAVE_DECL_TCA_ACT_PAD) && HAVE_DECL_TCA_ACT_PAD))
# define TCA_ACT_PAD 5
#endif
#if !(defined(TCA_ACT_COOKIE) || (defined(HAVE_DECL_TCA_ACT_COOKIE) && HAVE_DECL_TCA_ACT_COOKIE))
# define TCA_ACT_COOKIE 6
#endif

#ifdef IN_MPERS

# error static const struct xlat rtnl_tc_action_attrs in mpers mode

#else

static
const struct xlat rtnl_tc_action_attrs[] = {
 XLAT(TCA_ACT_UNSPEC),
 XLAT(TCA_ACT_KIND),
 XLAT(TCA_ACT_OPTIONS),
 XLAT(TCA_ACT_INDEX),
 XLAT(TCA_ACT_STATS),
 XLAT(TCA_ACT_PAD),
 XLAT(TCA_ACT_COOKIE),
 XLAT_END
};

#endif /* !IN_MPERS */
