/* Generated by ./xlat/gen.sh from ./xlat/nl_xfrm_types.in; do not edit. */
#if !(defined(XFRM_MSG_NEWSA) || (defined(HAVE_DECL_XFRM_MSG_NEWSA) && HAVE_DECL_XFRM_MSG_NEWSA))
# define XFRM_MSG_NEWSA 0x10
#endif
#if !(defined(XFRM_MSG_DELSA) || (defined(HAVE_DECL_XFRM_MSG_DELSA) && HAVE_DECL_XFRM_MSG_DELSA))
# define XFRM_MSG_DELSA 0x11
#endif
#if !(defined(XFRM_MSG_GETSA) || (defined(HAVE_DECL_XFRM_MSG_GETSA) && HAVE_DECL_XFRM_MSG_GETSA))
# define XFRM_MSG_GETSA 0x12
#endif
#if !(defined(XFRM_MSG_NEWPOLICY) || (defined(HAVE_DECL_XFRM_MSG_NEWPOLICY) && HAVE_DECL_XFRM_MSG_NEWPOLICY))
# define XFRM_MSG_NEWPOLICY 0x13
#endif
#if !(defined(XFRM_MSG_DELPOLICY) || (defined(HAVE_DECL_XFRM_MSG_DELPOLICY) && HAVE_DECL_XFRM_MSG_DELPOLICY))
# define XFRM_MSG_DELPOLICY 0x14
#endif
#if !(defined(XFRM_MSG_GETPOLICY) || (defined(HAVE_DECL_XFRM_MSG_GETPOLICY) && HAVE_DECL_XFRM_MSG_GETPOLICY))
# define XFRM_MSG_GETPOLICY 0x15
#endif
#if !(defined(XFRM_MSG_ALLOCSPI) || (defined(HAVE_DECL_XFRM_MSG_ALLOCSPI) && HAVE_DECL_XFRM_MSG_ALLOCSPI))
# define XFRM_MSG_ALLOCSPI 0x16
#endif
#if !(defined(XFRM_MSG_ACQUIRE) || (defined(HAVE_DECL_XFRM_MSG_ACQUIRE) && HAVE_DECL_XFRM_MSG_ACQUIRE))
# define XFRM_MSG_ACQUIRE 0x17
#endif
#if !(defined(XFRM_MSG_EXPIRE) || (defined(HAVE_DECL_XFRM_MSG_EXPIRE) && HAVE_DECL_XFRM_MSG_EXPIRE))
# define XFRM_MSG_EXPIRE 0x18
#endif
#if !(defined(XFRM_MSG_UPDPOLICY) || (defined(HAVE_DECL_XFRM_MSG_UPDPOLICY) && HAVE_DECL_XFRM_MSG_UPDPOLICY))
# define XFRM_MSG_UPDPOLICY 0x19
#endif
#if !(defined(XFRM_MSG_UPDSA) || (defined(HAVE_DECL_XFRM_MSG_UPDSA) && HAVE_DECL_XFRM_MSG_UPDSA))
# define XFRM_MSG_UPDSA 0x1a
#endif
#if !(defined(XFRM_MSG_POLEXPIRE) || (defined(HAVE_DECL_XFRM_MSG_POLEXPIRE) && HAVE_DECL_XFRM_MSG_POLEXPIRE))
# define XFRM_MSG_POLEXPIRE 0x1b
#endif
#if !(defined(XFRM_MSG_FLUSHSA) || (defined(HAVE_DECL_XFRM_MSG_FLUSHSA) && HAVE_DECL_XFRM_MSG_FLUSHSA))
# define XFRM_MSG_FLUSHSA 0x1c
#endif
#if !(defined(XFRM_MSG_FLUSHPOLICY) || (defined(HAVE_DECL_XFRM_MSG_FLUSHPOLICY) && HAVE_DECL_XFRM_MSG_FLUSHPOLICY))
# define XFRM_MSG_FLUSHPOLICY 0x1d
#endif
#if !(defined(XFRM_MSG_NEWAE) || (defined(HAVE_DECL_XFRM_MSG_NEWAE) && HAVE_DECL_XFRM_MSG_NEWAE))
# define XFRM_MSG_NEWAE 0x1e
#endif
#if !(defined(XFRM_MSG_GETAE) || (defined(HAVE_DECL_XFRM_MSG_GETAE) && HAVE_DECL_XFRM_MSG_GETAE))
# define XFRM_MSG_GETAE 0x1f
#endif
#if !(defined(XFRM_MSG_REPORT) || (defined(HAVE_DECL_XFRM_MSG_REPORT) && HAVE_DECL_XFRM_MSG_REPORT))
# define XFRM_MSG_REPORT 0x20
#endif
#if !(defined(XFRM_MSG_MIGRATE) || (defined(HAVE_DECL_XFRM_MSG_MIGRATE) && HAVE_DECL_XFRM_MSG_MIGRATE))
# define XFRM_MSG_MIGRATE 0x21
#endif
#if !(defined(XFRM_MSG_NEWSADINFO) || (defined(HAVE_DECL_XFRM_MSG_NEWSADINFO) && HAVE_DECL_XFRM_MSG_NEWSADINFO))
# define XFRM_MSG_NEWSADINFO 0x22
#endif
#if !(defined(XFRM_MSG_GETSADINFO) || (defined(HAVE_DECL_XFRM_MSG_GETSADINFO) && HAVE_DECL_XFRM_MSG_GETSADINFO))
# define XFRM_MSG_GETSADINFO 0x23
#endif
#if !(defined(XFRM_MSG_NEWSPDINFO) || (defined(HAVE_DECL_XFRM_MSG_NEWSPDINFO) && HAVE_DECL_XFRM_MSG_NEWSPDINFO))
# define XFRM_MSG_NEWSPDINFO 0x24
#endif
#if !(defined(XFRM_MSG_GETSPDINFO) || (defined(HAVE_DECL_XFRM_MSG_GETSPDINFO) && HAVE_DECL_XFRM_MSG_GETSPDINFO))
# define XFRM_MSG_GETSPDINFO 0x25
#endif
#if !(defined(XFRM_MSG_MAPPING) || (defined(HAVE_DECL_XFRM_MSG_MAPPING) && HAVE_DECL_XFRM_MSG_MAPPING))
# define XFRM_MSG_MAPPING 0x26
#endif

#ifdef IN_MPERS

# error static const struct xlat nl_xfrm_types in mpers mode

#else

static
const struct xlat nl_xfrm_types[] = {
 XLAT(XFRM_MSG_NEWSA),
 XLAT(XFRM_MSG_DELSA),
 XLAT(XFRM_MSG_GETSA),

 XLAT(XFRM_MSG_NEWPOLICY),
 XLAT(XFRM_MSG_DELPOLICY),
 XLAT(XFRM_MSG_GETPOLICY),

 XLAT(XFRM_MSG_ALLOCSPI),
 XLAT(XFRM_MSG_ACQUIRE),
 XLAT(XFRM_MSG_EXPIRE),

 XLAT(XFRM_MSG_UPDPOLICY),
 XLAT(XFRM_MSG_UPDSA),

 XLAT(XFRM_MSG_POLEXPIRE),

 XLAT(XFRM_MSG_FLUSHSA),
 XLAT(XFRM_MSG_FLUSHPOLICY),

 XLAT(XFRM_MSG_NEWAE),
 XLAT(XFRM_MSG_GETAE),

 XLAT(XFRM_MSG_REPORT),

 XLAT(XFRM_MSG_MIGRATE),

 XLAT(XFRM_MSG_NEWSADINFO),
 XLAT(XFRM_MSG_GETSADINFO),

 XLAT(XFRM_MSG_NEWSPDINFO),
 XLAT(XFRM_MSG_GETSPDINFO),

 XLAT(XFRM_MSG_MAPPING),
 XLAT_END
};

#endif /* !IN_MPERS */
