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

#include "gcc_compat.h"
#include "static_assert.h"

#if defined(MDBA_ROUTER_UNSPEC) || (defined(HAVE_DECL_MDBA_ROUTER_UNSPEC) && HAVE_DECL_MDBA_ROUTER_UNSPEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MDBA_ROUTER_UNSPEC) == (0), "MDBA_ROUTER_UNSPEC != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MDBA_ROUTER_UNSPEC 0
#endif
#if defined(MDBA_ROUTER_PORT) || (defined(HAVE_DECL_MDBA_ROUTER_PORT) && HAVE_DECL_MDBA_ROUTER_PORT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MDBA_ROUTER_PORT) == (1), "MDBA_ROUTER_PORT != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MDBA_ROUTER_PORT 1
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat rtnl_mdba_router_attrs in mpers mode

# else

static
const struct xlat rtnl_mdba_router_attrs[] = {
 XLAT(MDBA_ROUTER_UNSPEC),
 XLAT(MDBA_ROUTER_PORT),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
