/* Generated by ./xlat/gen.sh from ./xlat/rtnl_route_attrs.in; do not edit. */
#if !(defined(RTA_UNSPEC) || (defined(HAVE_DECL_RTA_UNSPEC) && HAVE_DECL_RTA_UNSPEC))
# define RTA_UNSPEC 0
#endif
#if !(defined(RTA_DST) || (defined(HAVE_DECL_RTA_DST) && HAVE_DECL_RTA_DST))
# define RTA_DST 1
#endif
#if !(defined(RTA_SRC) || (defined(HAVE_DECL_RTA_SRC) && HAVE_DECL_RTA_SRC))
# define RTA_SRC 2
#endif
#if !(defined(RTA_IIF) || (defined(HAVE_DECL_RTA_IIF) && HAVE_DECL_RTA_IIF))
# define RTA_IIF 3
#endif
#if !(defined(RTA_OIF) || (defined(HAVE_DECL_RTA_OIF) && HAVE_DECL_RTA_OIF))
# define RTA_OIF 4
#endif
#if !(defined(RTA_GATEWAY) || (defined(HAVE_DECL_RTA_GATEWAY) && HAVE_DECL_RTA_GATEWAY))
# define RTA_GATEWAY 5
#endif
#if !(defined(RTA_PRIORITY) || (defined(HAVE_DECL_RTA_PRIORITY) && HAVE_DECL_RTA_PRIORITY))
# define RTA_PRIORITY 6
#endif
#if !(defined(RTA_PREFSRC) || (defined(HAVE_DECL_RTA_PREFSRC) && HAVE_DECL_RTA_PREFSRC))
# define RTA_PREFSRC 7
#endif
#if !(defined(RTA_METRICS) || (defined(HAVE_DECL_RTA_METRICS) && HAVE_DECL_RTA_METRICS))
# define RTA_METRICS 8
#endif
#if !(defined(RTA_MULTIPATH) || (defined(HAVE_DECL_RTA_MULTIPATH) && HAVE_DECL_RTA_MULTIPATH))
# define RTA_MULTIPATH 9
#endif
#if !(defined(RTA_PROTOINFO) || (defined(HAVE_DECL_RTA_PROTOINFO) && HAVE_DECL_RTA_PROTOINFO))
# define RTA_PROTOINFO 10
#endif
#if !(defined(RTA_FLOW) || (defined(HAVE_DECL_RTA_FLOW) && HAVE_DECL_RTA_FLOW))
# define RTA_FLOW 11
#endif
#if !(defined(RTA_CACHEINFO) || (defined(HAVE_DECL_RTA_CACHEINFO) && HAVE_DECL_RTA_CACHEINFO))
# define RTA_CACHEINFO 12
#endif
#if !(defined(RTA_SESSION) || (defined(HAVE_DECL_RTA_SESSION) && HAVE_DECL_RTA_SESSION))
# define RTA_SESSION 13
#endif
#if !(defined(RTA_MP_ALGO) || (defined(HAVE_DECL_RTA_MP_ALGO) && HAVE_DECL_RTA_MP_ALGO))
# define RTA_MP_ALGO 14
#endif
#if !(defined(RTA_TABLE) || (defined(HAVE_DECL_RTA_TABLE) && HAVE_DECL_RTA_TABLE))
# define RTA_TABLE 15
#endif
#if !(defined(RTA_MARK) || (defined(HAVE_DECL_RTA_MARK) && HAVE_DECL_RTA_MARK))
# define RTA_MARK 16
#endif
#if !(defined(RTA_MFC_STATS) || (defined(HAVE_DECL_RTA_MFC_STATS) && HAVE_DECL_RTA_MFC_STATS))
# define RTA_MFC_STATS 17
#endif
#if !(defined(RTA_VIA) || (defined(HAVE_DECL_RTA_VIA) && HAVE_DECL_RTA_VIA))
# define RTA_VIA 18
#endif
#if !(defined(RTA_NEWDST) || (defined(HAVE_DECL_RTA_NEWDST) && HAVE_DECL_RTA_NEWDST))
# define RTA_NEWDST 19
#endif
#if !(defined(RTA_PREF) || (defined(HAVE_DECL_RTA_PREF) && HAVE_DECL_RTA_PREF))
# define RTA_PREF 20
#endif
#if !(defined(RTA_ENCAP_TYPE) || (defined(HAVE_DECL_RTA_ENCAP_TYPE) && HAVE_DECL_RTA_ENCAP_TYPE))
# define RTA_ENCAP_TYPE 21
#endif
#if !(defined(RTA_ENCAP) || (defined(HAVE_DECL_RTA_ENCAP) && HAVE_DECL_RTA_ENCAP))
# define RTA_ENCAP 22
#endif
#if !(defined(RTA_EXPIRES) || (defined(HAVE_DECL_RTA_EXPIRES) && HAVE_DECL_RTA_EXPIRES))
# define RTA_EXPIRES 23
#endif
#if !(defined(RTA_PAD) || (defined(HAVE_DECL_RTA_PAD) && HAVE_DECL_RTA_PAD))
# define RTA_PAD 24
#endif
#if !(defined(RTA_UID) || (defined(HAVE_DECL_RTA_UID) && HAVE_DECL_RTA_UID))
# define RTA_UID 25
#endif
#if !(defined(RTA_TTL_PROPAGATE) || (defined(HAVE_DECL_RTA_TTL_PROPAGATE) && HAVE_DECL_RTA_TTL_PROPAGATE))
# define RTA_TTL_PROPAGATE 26
#endif

#ifdef IN_MPERS

# error static const struct xlat rtnl_route_attrs in mpers mode

#else

static
const struct xlat rtnl_route_attrs[] = {
 XLAT(RTA_UNSPEC),
 XLAT(RTA_DST),
 XLAT(RTA_SRC),
 XLAT(RTA_IIF),
 XLAT(RTA_OIF),
 XLAT(RTA_GATEWAY),
 XLAT(RTA_PRIORITY),
 XLAT(RTA_PREFSRC),
 XLAT(RTA_METRICS),
 XLAT(RTA_MULTIPATH),
 XLAT(RTA_PROTOINFO),
 XLAT(RTA_FLOW),
 XLAT(RTA_CACHEINFO),
 XLAT(RTA_SESSION),
 XLAT(RTA_MP_ALGO),
 XLAT(RTA_TABLE),
 XLAT(RTA_MARK),
 XLAT(RTA_MFC_STATS),
 XLAT(RTA_VIA),
 XLAT(RTA_NEWDST),
 XLAT(RTA_PREF),
 XLAT(RTA_ENCAP_TYPE),
 XLAT(RTA_ENCAP),
 XLAT(RTA_EXPIRES),
 XLAT(RTA_PAD),
 XLAT(RTA_UID),
 XLAT(RTA_TTL_PROPAGATE),
 XLAT_END
};

#endif /* !IN_MPERS */
