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

#ifdef IN_MPERS

# error static const struct xlat fib_rule_flags in mpers mode

#else

static
const struct xlat fib_rule_flags[] = {
#if defined(FIB_RULE_PERMANENT) || (defined(HAVE_DECL_FIB_RULE_PERMANENT) && HAVE_DECL_FIB_RULE_PERMANENT)
  XLAT(FIB_RULE_PERMANENT),
#endif
#if defined(FIB_RULE_INVERT) || (defined(HAVE_DECL_FIB_RULE_INVERT) && HAVE_DECL_FIB_RULE_INVERT)
  XLAT(FIB_RULE_INVERT),
#endif
#if defined(FIB_RULE_UNRESOLVED) || (defined(HAVE_DECL_FIB_RULE_UNRESOLVED) && HAVE_DECL_FIB_RULE_UNRESOLVED)
  XLAT(FIB_RULE_UNRESOLVED),
#endif
#if defined(FIB_RULE_IIF_DETACHED) || (defined(HAVE_DECL_FIB_RULE_IIF_DETACHED) && HAVE_DECL_FIB_RULE_IIF_DETACHED)
  XLAT(FIB_RULE_IIF_DETACHED),
#endif
#if defined(FIB_RULE_OIF_DETACHED) || (defined(HAVE_DECL_FIB_RULE_OIF_DETACHED) && HAVE_DECL_FIB_RULE_OIF_DETACHED)
  XLAT(FIB_RULE_OIF_DETACHED),
#endif
#if defined(FIB_RULE_FIND_SADDR) || (defined(HAVE_DECL_FIB_RULE_FIND_SADDR) && HAVE_DECL_FIB_RULE_FIND_SADDR)
  XLAT(FIB_RULE_FIND_SADDR),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
