/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_port_attrs.in; do not edit. */
#if !(defined(IFLA_PORT_UNSPEC) || (defined(HAVE_DECL_IFLA_PORT_UNSPEC) && HAVE_DECL_IFLA_PORT_UNSPEC))
# define IFLA_PORT_UNSPEC 0
#endif
#if !(defined(IFLA_PORT_VF) || (defined(HAVE_DECL_IFLA_PORT_VF) && HAVE_DECL_IFLA_PORT_VF))
# define IFLA_PORT_VF 1
#endif
#if !(defined(IFLA_PORT_PROFILE) || (defined(HAVE_DECL_IFLA_PORT_PROFILE) && HAVE_DECL_IFLA_PORT_PROFILE))
# define IFLA_PORT_PROFILE 2
#endif
#if !(defined(IFLA_PORT_VSI_TYPE) || (defined(HAVE_DECL_IFLA_PORT_VSI_TYPE) && HAVE_DECL_IFLA_PORT_VSI_TYPE))
# define IFLA_PORT_VSI_TYPE 3
#endif
#if !(defined(IFLA_PORT_INSTANCE_UUID) || (defined(HAVE_DECL_IFLA_PORT_INSTANCE_UUID) && HAVE_DECL_IFLA_PORT_INSTANCE_UUID))
# define IFLA_PORT_INSTANCE_UUID 4
#endif
#if !(defined(IFLA_PORT_HOST_UUID) || (defined(HAVE_DECL_IFLA_PORT_HOST_UUID) && HAVE_DECL_IFLA_PORT_HOST_UUID))
# define IFLA_PORT_HOST_UUID 5
#endif
#if !(defined(IFLA_PORT_REQUEST) || (defined(HAVE_DECL_IFLA_PORT_REQUEST) && HAVE_DECL_IFLA_PORT_REQUEST))
# define IFLA_PORT_REQUEST 6
#endif
#if !(defined(IFLA_PORT_RESPONSE) || (defined(HAVE_DECL_IFLA_PORT_RESPONSE) && HAVE_DECL_IFLA_PORT_RESPONSE))
# define IFLA_PORT_RESPONSE 7
#endif

#ifdef IN_MPERS

# error static const struct xlat rtnl_ifla_port_attrs in mpers mode

#else

static
const struct xlat rtnl_ifla_port_attrs[] = {
 XLAT(IFLA_PORT_UNSPEC),
 XLAT(IFLA_PORT_VF),
 XLAT(IFLA_PORT_PROFILE),
 XLAT(IFLA_PORT_VSI_TYPE),
 XLAT(IFLA_PORT_INSTANCE_UUID),
 XLAT(IFLA_PORT_HOST_UUID),
 XLAT(IFLA_PORT_REQUEST),
 XLAT(IFLA_PORT_RESPONSE),
 XLAT_END
};

#endif /* !IN_MPERS */
