/* Generated by ./xlat/gen.sh from ./xlat/nf_ipset_msg_types.in; do not edit. */
#if !(defined(IPSET_CMD_NONE) || (defined(HAVE_DECL_IPSET_CMD_NONE) && HAVE_DECL_IPSET_CMD_NONE))
# define IPSET_CMD_NONE 0
#endif
#if !(defined(IPSET_CMD_PROTOCOL) || (defined(HAVE_DECL_IPSET_CMD_PROTOCOL) && HAVE_DECL_IPSET_CMD_PROTOCOL))
# define IPSET_CMD_PROTOCOL 1
#endif
#if !(defined(IPSET_CMD_CREATE) || (defined(HAVE_DECL_IPSET_CMD_CREATE) && HAVE_DECL_IPSET_CMD_CREATE))
# define IPSET_CMD_CREATE 2
#endif
#if !(defined(IPSET_CMD_DESTROY) || (defined(HAVE_DECL_IPSET_CMD_DESTROY) && HAVE_DECL_IPSET_CMD_DESTROY))
# define IPSET_CMD_DESTROY 3
#endif
#if !(defined(IPSET_CMD_FLUSH) || (defined(HAVE_DECL_IPSET_CMD_FLUSH) && HAVE_DECL_IPSET_CMD_FLUSH))
# define IPSET_CMD_FLUSH 4
#endif
#if !(defined(IPSET_CMD_RENAME) || (defined(HAVE_DECL_IPSET_CMD_RENAME) && HAVE_DECL_IPSET_CMD_RENAME))
# define IPSET_CMD_RENAME 5
#endif
#if !(defined(IPSET_CMD_SWAP) || (defined(HAVE_DECL_IPSET_CMD_SWAP) && HAVE_DECL_IPSET_CMD_SWAP))
# define IPSET_CMD_SWAP 6
#endif
#if !(defined(IPSET_CMD_LIST) || (defined(HAVE_DECL_IPSET_CMD_LIST) && HAVE_DECL_IPSET_CMD_LIST))
# define IPSET_CMD_LIST 7
#endif
#if !(defined(IPSET_CMD_SAVE) || (defined(HAVE_DECL_IPSET_CMD_SAVE) && HAVE_DECL_IPSET_CMD_SAVE))
# define IPSET_CMD_SAVE 8
#endif
#if !(defined(IPSET_CMD_ADD) || (defined(HAVE_DECL_IPSET_CMD_ADD) && HAVE_DECL_IPSET_CMD_ADD))
# define IPSET_CMD_ADD 9
#endif
#if !(defined(IPSET_CMD_DEL) || (defined(HAVE_DECL_IPSET_CMD_DEL) && HAVE_DECL_IPSET_CMD_DEL))
# define IPSET_CMD_DEL 10
#endif
#if !(defined(IPSET_CMD_TEST) || (defined(HAVE_DECL_IPSET_CMD_TEST) && HAVE_DECL_IPSET_CMD_TEST))
# define IPSET_CMD_TEST 11
#endif
#if !(defined(IPSET_CMD_HEADER) || (defined(HAVE_DECL_IPSET_CMD_HEADER) && HAVE_DECL_IPSET_CMD_HEADER))
# define IPSET_CMD_HEADER 12
#endif
#if !(defined(IPSET_CMD_TYPE) || (defined(HAVE_DECL_IPSET_CMD_TYPE) && HAVE_DECL_IPSET_CMD_TYPE))
# define IPSET_CMD_TYPE 13
#endif
#if !(defined(IPSET_CMD_RESTORE) || (defined(HAVE_DECL_IPSET_CMD_RESTORE) && HAVE_DECL_IPSET_CMD_RESTORE))
# define IPSET_CMD_RESTORE 14
#endif
#if !(defined(IPSET_CMD_HELP) || (defined(HAVE_DECL_IPSET_CMD_HELP) && HAVE_DECL_IPSET_CMD_HELP))
# define IPSET_CMD_HELP 15
#endif
#if !(defined(IPSET_CMD_VERSION) || (defined(HAVE_DECL_IPSET_CMD_VERSION) && HAVE_DECL_IPSET_CMD_VERSION))
# define IPSET_CMD_VERSION 16
#endif
#if !(defined(IPSET_CMD_QUIT) || (defined(HAVE_DECL_IPSET_CMD_QUIT) && HAVE_DECL_IPSET_CMD_QUIT))
# define IPSET_CMD_QUIT 17
#endif
#if !(defined(IPSET_CMD_COMMIT) || (defined(HAVE_DECL_IPSET_CMD_COMMIT) && HAVE_DECL_IPSET_CMD_COMMIT))
# define IPSET_CMD_COMMIT 18
#endif

#ifdef IN_MPERS

# error static const struct xlat nf_ipset_msg_types in mpers mode

#else

static
const struct xlat nf_ipset_msg_types[] = {
 XLAT(IPSET_CMD_NONE),
 XLAT(IPSET_CMD_PROTOCOL),
 XLAT(IPSET_CMD_CREATE),
 XLAT(IPSET_CMD_DESTROY),
 XLAT(IPSET_CMD_FLUSH),
 XLAT(IPSET_CMD_RENAME),
 XLAT(IPSET_CMD_SWAP),
 XLAT(IPSET_CMD_LIST),
 XLAT(IPSET_CMD_SAVE),
 XLAT(IPSET_CMD_ADD),
 XLAT(IPSET_CMD_DEL),
 XLAT(IPSET_CMD_TEST),
 XLAT(IPSET_CMD_HEADER),
 XLAT(IPSET_CMD_TYPE),

 XLAT(IPSET_CMD_RESTORE),
 XLAT(IPSET_CMD_HELP),
 XLAT(IPSET_CMD_VERSION),
 XLAT(IPSET_CMD_QUIT),

 XLAT(IPSET_CMD_COMMIT),
 XLAT_END
};

#endif /* !IN_MPERS */
