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

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

#if defined(IPPROTO_IP) || (defined(HAVE_DECL_IPPROTO_IP) && HAVE_DECL_IPPROTO_IP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_IP) == (0), "IPPROTO_IP != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_IP 0
#endif
#if defined(IPPROTO_ICMP) || (defined(HAVE_DECL_IPPROTO_ICMP) && HAVE_DECL_IPPROTO_ICMP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_ICMP) == (1), "IPPROTO_ICMP != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_ICMP 1
#endif
#if defined(IPPROTO_IGMP) || (defined(HAVE_DECL_IPPROTO_IGMP) && HAVE_DECL_IPPROTO_IGMP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_IGMP) == (2), "IPPROTO_IGMP != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_IGMP 2
#endif
#if defined(IPPROTO_IPIP) || (defined(HAVE_DECL_IPPROTO_IPIP) && HAVE_DECL_IPPROTO_IPIP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_IPIP) == (4), "IPPROTO_IPIP != 4");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_IPIP 4
#endif
#if defined(IPPROTO_TCP) || (defined(HAVE_DECL_IPPROTO_TCP) && HAVE_DECL_IPPROTO_TCP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_TCP) == (6), "IPPROTO_TCP != 6");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_TCP 6
#endif
#if defined(IPPROTO_EGP) || (defined(HAVE_DECL_IPPROTO_EGP) && HAVE_DECL_IPPROTO_EGP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_EGP) == (8), "IPPROTO_EGP != 8");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_EGP 8
#endif
#if defined(IPPROTO_PUP) || (defined(HAVE_DECL_IPPROTO_PUP) && HAVE_DECL_IPPROTO_PUP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_PUP) == (12), "IPPROTO_PUP != 12");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_PUP 12
#endif
#if defined(IPPROTO_UDP) || (defined(HAVE_DECL_IPPROTO_UDP) && HAVE_DECL_IPPROTO_UDP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_UDP) == (17), "IPPROTO_UDP != 17");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_UDP 17
#endif
#if defined(IPPROTO_IDP) || (defined(HAVE_DECL_IPPROTO_IDP) && HAVE_DECL_IPPROTO_IDP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_IDP) == (22), "IPPROTO_IDP != 22");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_IDP 22
#endif
#if defined(IPPROTO_TP) || (defined(HAVE_DECL_IPPROTO_TP) && HAVE_DECL_IPPROTO_TP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_TP) == (29), "IPPROTO_TP != 29");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_TP 29
#endif
#if defined(IPPROTO_DCCP) || (defined(HAVE_DECL_IPPROTO_DCCP) && HAVE_DECL_IPPROTO_DCCP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_DCCP) == (33), "IPPROTO_DCCP != 33");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_DCCP 33
#endif
#if defined(IPPROTO_IPV6) || (defined(HAVE_DECL_IPPROTO_IPV6) && HAVE_DECL_IPPROTO_IPV6)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_IPV6) == (41), "IPPROTO_IPV6 != 41");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_IPV6 41
#endif
#if defined(IPPROTO_ROUTING) || (defined(HAVE_DECL_IPPROTO_ROUTING) && HAVE_DECL_IPPROTO_ROUTING)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_ROUTING) == (43), "IPPROTO_ROUTING != 43");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_ROUTING 43
#endif
#if defined(IPPROTO_FRAGMENT) || (defined(HAVE_DECL_IPPROTO_FRAGMENT) && HAVE_DECL_IPPROTO_FRAGMENT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_FRAGMENT) == (44), "IPPROTO_FRAGMENT != 44");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_FRAGMENT 44
#endif
#if defined(IPPROTO_RSVP) || (defined(HAVE_DECL_IPPROTO_RSVP) && HAVE_DECL_IPPROTO_RSVP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_RSVP) == (46), "IPPROTO_RSVP != 46");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_RSVP 46
#endif
#if defined(IPPROTO_GRE) || (defined(HAVE_DECL_IPPROTO_GRE) && HAVE_DECL_IPPROTO_GRE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_GRE) == (47), "IPPROTO_GRE != 47");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_GRE 47
#endif
#if defined(IPPROTO_ESP) || (defined(HAVE_DECL_IPPROTO_ESP) && HAVE_DECL_IPPROTO_ESP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_ESP) == (50), "IPPROTO_ESP != 50");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_ESP 50
#endif
#if defined(IPPROTO_AH) || (defined(HAVE_DECL_IPPROTO_AH) && HAVE_DECL_IPPROTO_AH)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_AH) == (51), "IPPROTO_AH != 51");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_AH 51
#endif
#if defined(IPPROTO_ICMPV6) || (defined(HAVE_DECL_IPPROTO_ICMPV6) && HAVE_DECL_IPPROTO_ICMPV6)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_ICMPV6) == (58), "IPPROTO_ICMPV6 != 58");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_ICMPV6 58
#endif
#if defined(IPPROTO_NONE) || (defined(HAVE_DECL_IPPROTO_NONE) && HAVE_DECL_IPPROTO_NONE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_NONE) == (59), "IPPROTO_NONE != 59");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_NONE 59
#endif
#if defined(IPPROTO_DSTOPTS) || (defined(HAVE_DECL_IPPROTO_DSTOPTS) && HAVE_DECL_IPPROTO_DSTOPTS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_DSTOPTS) == (60), "IPPROTO_DSTOPTS != 60");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_DSTOPTS 60
#endif
#if defined(IPPROTO_MTP) || (defined(HAVE_DECL_IPPROTO_MTP) && HAVE_DECL_IPPROTO_MTP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_MTP) == (92), "IPPROTO_MTP != 92");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_MTP 92
#endif
#if defined(IPPROTO_BEETPH) || (defined(HAVE_DECL_IPPROTO_BEETPH) && HAVE_DECL_IPPROTO_BEETPH)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_BEETPH) == (94), "IPPROTO_BEETPH != 94");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_BEETPH 94
#endif
#if defined(IPPROTO_ENCAP) || (defined(HAVE_DECL_IPPROTO_ENCAP) && HAVE_DECL_IPPROTO_ENCAP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_ENCAP) == (98), "IPPROTO_ENCAP != 98");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_ENCAP 98
#endif
#if defined(IPPROTO_PIM) || (defined(HAVE_DECL_IPPROTO_PIM) && HAVE_DECL_IPPROTO_PIM)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_PIM) == (103), "IPPROTO_PIM != 103");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_PIM 103
#endif
#if defined(IPPROTO_COMP) || (defined(HAVE_DECL_IPPROTO_COMP) && HAVE_DECL_IPPROTO_COMP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_COMP) == (108), "IPPROTO_COMP != 108");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_COMP 108
#endif
#if defined(IPPROTO_L2TP) || (defined(HAVE_DECL_IPPROTO_L2TP) && HAVE_DECL_IPPROTO_L2TP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_L2TP) == (115), "IPPROTO_L2TP != 115");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_L2TP 115
#endif
#if defined(IPPROTO_SCTP) || (defined(HAVE_DECL_IPPROTO_SCTP) && HAVE_DECL_IPPROTO_SCTP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_SCTP) == (132), "IPPROTO_SCTP != 132");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_SCTP 132
#endif
#if defined(IPPROTO_MH) || (defined(HAVE_DECL_IPPROTO_MH) && HAVE_DECL_IPPROTO_MH)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_MH) == (135), "IPPROTO_MH != 135");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_MH 135
#endif
#if defined(IPPROTO_UDPLITE) || (defined(HAVE_DECL_IPPROTO_UDPLITE) && HAVE_DECL_IPPROTO_UDPLITE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_UDPLITE) == (136), "IPPROTO_UDPLITE != 136");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_UDPLITE 136
#endif
#if defined(IPPROTO_MPLS) || (defined(HAVE_DECL_IPPROTO_MPLS) && HAVE_DECL_IPPROTO_MPLS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_MPLS) == (137), "IPPROTO_MPLS != 137");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_MPLS 137
#endif
#if defined(IPPROTO_RAW) || (defined(HAVE_DECL_IPPROTO_RAW) && HAVE_DECL_IPPROTO_RAW)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_RAW) == (255), "IPPROTO_RAW != 255");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_RAW 255
#endif
#if defined(IPPROTO_MAX) || (defined(HAVE_DECL_IPPROTO_MAX) && HAVE_DECL_IPPROTO_MAX)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IPPROTO_MAX) == (256), "IPPROTO_MAX != 256");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IPPROTO_MAX 256
#endif

#ifndef XLAT_MACROS_ONLY

# ifndef IN_MPERS

const struct xlat inet_protocols[] = {

 XLAT(IPPROTO_IP),
 XLAT(IPPROTO_ICMP),
 XLAT(IPPROTO_IGMP),
 XLAT(IPPROTO_IPIP),
 XLAT(IPPROTO_TCP),
 XLAT(IPPROTO_EGP),
 XLAT(IPPROTO_PUP),
 XLAT(IPPROTO_UDP),
 XLAT(IPPROTO_IDP),
 XLAT(IPPROTO_TP),
 XLAT(IPPROTO_DCCP),
 XLAT(IPPROTO_IPV6),
 XLAT(IPPROTO_ROUTING),
 XLAT(IPPROTO_FRAGMENT),
 XLAT(IPPROTO_RSVP),
 XLAT(IPPROTO_GRE),
 XLAT(IPPROTO_ESP),
 XLAT(IPPROTO_AH),
 XLAT(IPPROTO_ICMPV6),
 XLAT(IPPROTO_NONE),
 XLAT(IPPROTO_DSTOPTS),
 XLAT(IPPROTO_MTP),
 XLAT(IPPROTO_BEETPH),
 XLAT(IPPROTO_ENCAP),
 XLAT(IPPROTO_PIM),
 XLAT(IPPROTO_COMP),
 XLAT(IPPROTO_L2TP),
 XLAT(IPPROTO_SCTP),
 XLAT(IPPROTO_MH),
 XLAT(IPPROTO_UDPLITE),
 XLAT(IPPROTO_MPLS),
 XLAT(IPPROTO_RAW),
 XLAT(IPPROTO_MAX),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
