/*
 pylibnet - Python module for the libnet packet injection library
 Copyright (C) 2009  Nadeem Douba

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.

 Nadeem Douba <ndouba at gmail dot com>
 348 Patricia Ave, Ottawa, ON, K1Z 6G6
 Canada
*/

#define PTAG_INITIALIZER LIBNET_PTAG_INITIALIZER

/* Psuedo random number generator modes */

#define PR2 LIBNET_PR2
#define PR8 LIBNET_PR8
#define PR16 LIBNET_PR16
#define PRu16 LIBNET_PRu16
#define PR32 LIBNET_PR32
#define PRu32 LIBNET_PRu32

/* Checksum togglers */
#define ON LIBNET_ON
#define OFF LIBNET_OFF

/* Resolve togglers */
#define RESOLVE LIBNET_RESOLVE
#define DONT_RESOLVE LIBNET_DONT_RESOLVE

/* Injection types */
#define LINK LIBNET_LINK
#define LINK_ADV LIBNET_LINK_ADV
#define RAW4 LIBNET_RAW4
#define RAW4_ADV LIBNET_RAW4_ADV
#define RAW6 LIBNET_RAW6
#define RAW6_ADV LIBNET_RAW6_ADV


/* Protocol headers */
#define I802_1Q_H LIBNET_802_1Q_H
#define I802_1X_H LIBNET_802_1X_H
#define I802_2_H LIBNET_802_2_H
#define I802_2SNAP_H LIBNET_802_2SNAP_H
#define c802_3_H LIBNET_802_3_H
#define ARP_H LIBNET_ARP_H
#define ARP_ETH_IP_H LIBNET_ARP_ETH_IP_H
#define BGP4_HEADER_H LIBNET_BGP4_HEADER_H
#define BGP4_OPEN_H LIBNET_BGP4_OPEN_H
#define BGP4_UPDATE_H LIBNET_BGP4_UPDATE_H
#define BGP4_NOTIFICATION_H LIBNET_BGP4_NOTIFICATION_H
#define CDP_H LIBNET_CDP_H
#define DHCPV4_H LIBNET_DHCPV4_H
#define UDP_DNSV4_H LIBNET_UDP_DNSV4_H
#define TCP_DNSV4_H LIBNET_TCP_DNSV4_H
#define ETH_H LIBNET_ETH_H
#define FDDI_H LIBNET_FDDI_H
#define ICMPV4_H LIBNET_ICMPV4_H
#define ICMPV4_ECHO_H LIBNET_ICMPV4_ECHO_H
#define ICMPV4_MASK_H LIBNET_ICMPV4_MASK_H
#define ICMPV4_UNREACH_H LIBNET_ICMPV4_UNREACH_H
#define ICMPV4_TIMXCEED_H LIBNET_ICMPV4_TIMXCEED_H
#define ICMPV4_REDIRECT_H LIBNET_ICMPV4_REDIRECT_H
#define ICMPV4_TS_H LIBNET_ICMPV4_TS_H
#define ICMPV6_H LIBNET_ICMPV6_H
#define IGMP_H LIBNET_IGMP_H
#define IPV4_H LIBNET_IPV4_H
#define IPV6_H LIBNET_IPV6_H
#define IPV6_FRAG_H LIBNET_IPV6_FRAG_H
#define IPV6_ROUTING_H LIBNET_IPV6_ROUTING_H
#define IPV6_DESTOPTS_H LIBNET_IPV6_DESTOPTS_H
#define IPV6_HBHOPTS_H LIBNET_IPV6_HBHOPTS_H
#define IPSEC_ESP_HDR_H LIBNET_IPSEC_ESP_HDR_H
#define IPSEC_ESP_FTR_H LIBNET_IPSEC_ESP_FTR_H
#define IPSEC_AH_H LIBNET_IPSEC_AH_H
#define ISL_H LIBNET_ISL_H
#define GRE_H LIBNET_GRE_H
#define GRE_SRE_H LIBNET_GRE_SRE_H
#define MPLS_H LIBNET_MPLS_H
#define OSPF_H LIBNET_OSPF_H
#define OSPF_HELLO_H LIBNET_OSPF_HELLO_H
#define OSPF_DBD_H LIBNET_OSPF_DBD_H
#define OSPF_LSR_H LIBNET_OSPF_LSR_H
#define OSPF_LSU_H LIBNET_OSPF_LSU_H
#define OSPF_LSA_H LIBNET_OSPF_LSA_H
#define OSPF_AUTH_H LIBNET_OSPF_AUTH_H
#define OSPF_CKSUM LIBNET_OSPF_CKSUM
#define OSPF_LS_RTR_H LIBNET_OSPF_LS_RTR_H
#define OSPF_LS_NET_H LIBNET_OSPF_LS_NET_H
#define OSPF_LS_SUM_H LIBNET_OSPF_LS_SUM_H
#define OSPF_LS_AS_EXT_H LIBNET_OSPF_LS_AS_EXT_H
#define NTP_H LIBNET_NTP_H
#define RIP_H LIBNET_RIP_H
#define RPC_CALL_H LIBNET_RPC_CALL_H
#define RPC_CALL_TCP_H LIBNET_RPC_CALL_TCP_H
#define SEBEK_H LIBNET_SEBEK_H
#define STP_CONF_H LIBNET_STP_CONF_H
#define STP_TCN_H LIBNET_STP_TCN_H
#define TOKEN_RING_H LIBNET_TOKEN_RING_H
#define TCP_H LIBNET_TCP_H
#define UDP_H LIBNET_UDP_H
#define VRRP_H LIBNET_VRRP_H
#define I802_1Q_PRIMASK LIBNET_802_1Q_PRIMASK
#define I802_1Q_CFIMASK LIBNET_802_1Q_CFIMASK
#define I802_1Q_VIDMASK LIBNET_802_1Q_VIDMASK
#define I802_1X_PACKET LIBNET_802_1X_PACKET
#define I802_1X_START LIBNET_802_1X_START
#define I802_1X_LOGOFF LIBNET_802_1X_LOGOFF
#define I802_1X_KEY LIBNET_802_1X_KEY
#define I802_1X_ENCASFAL LIBNET_802_1X_ENCASFAL
#define SAP_STP LIBNET_SAP_STP
#define SAP_SNAP LIBNET_SAP_SNAP
#define BGP4_MARKER_SIZE LIBNET_BGP4_MARKER_SIZE
#define BGP4_OPEN LIBNET_BGP4_OPEN
#define BGP4_UPDATE LIBNET_BGP4_UPDATE
#define BGP4_NOTIFICATION LIBNET_BGP4_NOTIFICATION
#define BGP4_KEEPALIVE LIBNET_BGP4_KEEPALIVE
#define BGP4_MESSAGE_HEADER_ERROR LIBNET_BGP4_MESSAGE_HEADER_ERROR
#define BGP4_OPEN_MESSAGE_ERROR LIBNET_BGP4_OPEN_MESSAGE_ERROR
#define BGP4_UPDATE_MESSAGE_ERROR LIBNET_BGP4_UPDATE_MESSAGE_ERROR
#define BGP4_HOLD_TIMER_EXPIRED LIBNET_BGP4_HOLD_TIMER_EXPIRED
#define BGP4_FINITE_STATE__ERROR LIBNET_BGP4_FINITE_STATE__ERROR
#define BGP4_CEASE LIBNET_BGP4_CEASE
#define BGP4_CONNECTION_NOT_SYNCHRONIZED LIBNET_BGP4_CONNECTION_NOT_SYNCHRONIZED
#define BGP4_BAD_MESSAGE_LENGTH LIBNET_BGP4_BAD_MESSAGE_LENGTH
#define BGP4_BAD_MESSAGE_TYPE LIBNET_BGP4_BAD_MESSAGE_TYPE
#define BGP4_UNSUPPORTED_VERSION_NUMBER LIBNET_BGP4_UNSUPPORTED_VERSION_NUMBER
#define BGP4_BAD_PEER_AS LIBNET_BGP4_BAD_PEER_AS
#define BGP4_BAD_BGP_IDENTIFIER LIBNET_BGP4_BAD_BGP_IDENTIFIER
#define BGP4_UNSUPPORTED_OPTIONAL_PARAMETER LIBNET_BGP4_UNSUPPORTED_OPTIONAL_PARAMETER
#define BGP4_AUTHENTICATION_FAILURE LIBNET_BGP4_AUTHENTICATION_FAILURE
#define BGP4_UNACCEPTABLE_HOLD_TIME LIBNET_BGP4_UNACCEPTABLE_HOLD_TIME
#define BGP4_MALFORMED_ATTRIBUTE_LIST 1
#define BGP4_UNRECOGNIZED_WELL_KNOWN_ATTRIBUTE 2
#define BGP4_MISSING_WELL_KNOWN_ATTRIBUTE 3
#define BGP4_ATTRIBUTE_FLAGS_ERROR 4
#define BGP4_ATTRIBUTE_LENGTH_ERROR 5
#define BGP4_INVALID_ORIGIN_ATTRIBUTE 6
#define BGP4_AS_ROUTING_LOOP 7
#define BGP4_INVALID_NEXT_HOP_ATTRIBUTE 8
#define BGP4_OPTIONAL_ATTRIBUTE_ERROR 9
#define BGP4_INVALID_NETWORK_FIELD 10
#define BGP4_MALFORMED_AS_PATH 11
#define PROTO_CDP LIBNET_PROTO_CDP
#define CDP_DEVID LIBNET_CDP_DEVID
#define CDP_ADDRESS LIBNET_CDP_ADDRESS
#define CDP_PORTID LIBNET_CDP_PORTID
#define CDP_CAPABIL LIBNET_CDP_CAPABIL
#define CDP_VERSION LIBNET_CDP_VERSION
#define CDP_PLATFORM LIBNET_CDP_PLATFORM
#define CDP_IPPREFIX LIBNET_CDP_IPPREFIX
#define CDP_CAP_L3R LIBNET_CDP_CAP_L3R
#define CDP_CAP_L2B LIBNET_CDP_CAP_L2B
#define CDP_CAP_L2SRB LIBNET_CDP_CAP_L2SRB
#define CDP_CAP_L2S LIBNET_CDP_CAP_L2S
#define CDP_CAP_SR LIBNET_CDP_CAP_SR
#define CDP_CAP_NOI LIBNET_CDP_CAP_NOI
#define CDP_CAP_L1F LIBNET_CDP_CAP_L1F
#define DHCP_REQUEST LIBNET_DHCP_REQUEST
#define DHCP_REPLY LIBNET_DHCP_REPLY
#define BOOTP_MIN_LEN LIBNET_BOOTP_MIN_LEN
#define DHCP_PAD LIBNET_DHCP_PAD
#define DHCP_SUBNETMASK LIBNET_DHCP_SUBNETMASK
#define DHCP_TIMEOFFSET LIBNET_DHCP_TIMEOFFSET
#define DHCP_ROUTER LIBNET_DHCP_ROUTER
#define DHCP_TIMESERVER LIBNET_DHCP_TIMESERVER
#define DHCP_NAMESERVER LIBNET_DHCP_NAMESERVER
#define DHCP_DNS LIBNET_DHCP_DNS
#define DHCP_LOGSERV LIBNET_DHCP_LOGSERV
#define DHCP_COOKIESERV LIBNET_DHCP_COOKIESERV
#define DHCP_LPRSERV LIBNET_DHCP_LPRSERV
#define DHCP_IMPSERV LIBNET_DHCP_IMPSERV
#define DHCP_RESSERV LIBNET_DHCP_RESSERV
#define DHCP_HOSTNAME LIBNET_DHCP_HOSTNAME
#define DHCP_BOOTFILESIZE LIBNET_DHCP_BOOTFILESIZE
#define DHCP_DUMPFILE LIBNET_DHCP_DUMPFILE
#define DHCP_DOMAINNAME LIBNET_DHCP_DOMAINNAME
#define DHCP_SWAPSERV LIBNET_DHCP_SWAPSERV
#define DHCP_ROOTPATH LIBNET_DHCP_ROOTPATH
#define DHCP_EXTENPATH LIBNET_DHCP_EXTENPATH
#define DHCP_IPFORWARD LIBNET_DHCP_IPFORWARD
#define DHCP_SRCROUTE LIBNET_DHCP_SRCROUTE
#define DHCP_POLICYFILTER LIBNET_DHCP_POLICYFILTER
#define DHCP_MAXASMSIZE LIBNET_DHCP_MAXASMSIZE
#define DHCP_IPTTL LIBNET_DHCP_IPTTL
#define DHCP_MTUTIMEOUT LIBNET_DHCP_MTUTIMEOUT
#define DHCP_MTUTABLE LIBNET_DHCP_MTUTABLE
#define DHCP_MTUSIZE LIBNET_DHCP_MTUSIZE
#define DHCP_LOCALSUBNETS LIBNET_DHCP_LOCALSUBNETS
#define DHCP_BROADCASTADDR LIBNET_DHCP_BROADCASTADDR
#define DHCP_DOMASKDISCOV LIBNET_DHCP_DOMASKDISCOV
#define DHCP_MASKSUPPLY LIBNET_DHCP_MASKSUPPLY
#define DHCP_DOROUTEDISC LIBNET_DHCP_DOROUTEDISC
#define DHCP_ROUTERSOLICIT LIBNET_DHCP_ROUTERSOLICIT
#define DHCP_STATICROUTE LIBNET_DHCP_STATICROUTE
#define DHCP_TRAILERENCAP LIBNET_DHCP_TRAILERENCAP
#define DHCP_ARPTIMEOUT LIBNET_DHCP_ARPTIMEOUT
#define DHCP_ETHERENCAP LIBNET_DHCP_ETHERENCAP
#define DHCP_TCPTTL LIBNET_DHCP_TCPTTL
#define DHCP_TCPKEEPALIVE LIBNET_DHCP_TCPKEEPALIVE
#define DHCP_TCPALIVEGARBAGE LIBNET_DHCP_TCPALIVEGARBAGE
#define DHCP_NISDOMAIN LIBNET_DHCP_NISDOMAIN
#define DHCP_NISSERVERS LIBNET_DHCP_NISSERVERS
#define DHCP_NISTIMESERV LIBNET_DHCP_NISTIMESERV
#define DHCP_VENDSPECIFIC LIBNET_DHCP_VENDSPECIFIC
#define DHCP_NBNS LIBNET_DHCP_NBNS
#define DHCP_NBDD LIBNET_DHCP_NBDD
#define DHCP_NBTCPIP LIBNET_DHCP_NBTCPIP
#define DHCP_NBTCPSCOPE LIBNET_DHCP_NBTCPSCOPE
#define DHCP_XFONT LIBNET_DHCP_XFONT
#define DHCP_XDISPLAYMGR LIBNET_DHCP_XDISPLAYMGR
#define DHCP_DISCOVERADDR LIBNET_DHCP_DISCOVERADDR
#define DHCP_LEASETIME LIBNET_DHCP_LEASETIME
#define DHCP_OPTIONOVERLOAD LIBNET_DHCP_OPTIONOVERLOAD
#define DHCP_MESSAGETYPE LIBNET_DHCP_MESSAGETYPE
#define DHCP_SERVIDENT LIBNET_DHCP_SERVIDENT
#define DHCP_PARAMREQUEST LIBNET_DHCP_PARAMREQUEST
#define DHCP_MESSAGE LIBNET_DHCP_MESSAGE
#define DHCP_MAXMSGSIZE LIBNET_DHCP_MAXMSGSIZE
#define DHCP_RENEWTIME LIBNET_DHCP_RENEWTIME
#define DHCP_REBINDTIME LIBNET_DHCP_REBINDTIME
#define DHCP_CLASSSID LIBNET_DHCP_CLASSSID
#define DHCP_CLIENTID LIBNET_DHCP_CLIENTID
#define DHCP_NISPLUSDOMAIN LIBNET_DHCP_NISPLUSDOMAIN
#define DHCP_NISPLUSSERVERS LIBNET_DHCP_NISPLUSSERVERS
#define DHCP_MOBILEIPAGENT LIBNET_DHCP_MOBILEIPAGENT
#define DHCP_SMTPSERVER LIBNET_DHCP_SMTPSERVER
#define DHCP_POP3SERVER LIBNET_DHCP_POP3SERVER
#define DHCP_NNTPSERVER LIBNET_DHCP_NNTPSERVER
#define DHCP_WWWSERVER LIBNET_DHCP_WWWSERVER
#define DHCP_FINGERSERVER LIBNET_DHCP_FINGERSERVER
#define DHCP_IRCSERVER LIBNET_DHCP_IRCSERVER
#define DHCP_STSERVER LIBNET_DHCP_STSERVER
#define DHCP_STDASERVER LIBNET_DHCP_STDASERVER
#define DHCP_END LIBNET_DHCP_END
#define DHCP_MSGDISCOVER LIBNET_DHCP_MSGDISCOVER
#define DHCP_MSGOFFER LIBNET_DHCP_MSGOFFER
#define DHCP_MSGREQUEST LIBNET_DHCP_MSGREQUEST
#define DHCP_MSGDECLINE LIBNET_DHCP_MSGDECLINE
#define DHCP_MSGACK LIBNET_DHCP_MSGACK
#define DHCP_MSGNACK LIBNET_DHCP_MSGNACK
#define DHCP_MSGRELEASE LIBNET_DHCP_MSGRELEASE
#define DHCP_MSGINFORM LIBNET_DHCP_MSGINFORM
#define DNS_H LIBNET_DNS_H
#define FDDI_LLC_FRAME LIBNET_FDDI_LLC_FRAME
#define FDDI_48BIT_ADDR LIBNET_FDDI_48BIT_ADDR
#define FDDI_FC_REQD LIBNET_FDDI_FC_REQD
#define IPV6_NH_FRAGMENT LIBNET_IPV6_NH_FRAGMENT
#define IPV6_NH_ROUTING LIBNET_IPV6_NH_ROUTING
#define IPV6_NH_DESTOPTS LIBNET_IPV6_NH_DESTOPTS
#define IPV6_NH_HBH LIBNET_IPV6_NH_HBH
#define PROTO_ISL LIBNET_PROTO_ISL
#define MODX LIBNET_MODX
#define OPT_EBIT LIBNET_OPT_EBIT
#define OPT_MCBIT LIBNET_OPT_MCBIT
#define OPT_NPBIT LIBNET_OPT_NPBIT
#define OPT_EABIT LIBNET_OPT_EABIT
#define OPT_DCBIT LIBNET_OPT_DCBIT
#define MPLS_BOS_ON LIBNET_MPLS_BOS_ON
#define MPLS_BOS_OFF LIBNET_MPLS_BOS_OFF
#define NTP_LI_NW LIBNET_NTP_LI_NW
#define NTP_LI_AS LIBNET_NTP_LI_AS
#define NTP_LI_DS LIBNET_NTP_LI_DS
#define NTP_LI_AC LIBNET_NTP_LI_AC
#define NTP_VN_2 LIBNET_NTP_VN_2
#define NTP_VN_3 LIBNET_NTP_VN_3
#define NTP_VN_4 LIBNET_NTP_VN_4
#define NTP_MODE_R LIBNET_NTP_MODE_R
#define NTP_MODE_A LIBNET_NTP_MODE_A
#define NTP_MODE_P LIBNET_NTP_MODE_P
#define NTP_MODE_C LIBNET_NTP_MODE_C
#define NTP_MODE_S LIBNET_NTP_MODE_S
#define NTP_MODE_B LIBNET_NTP_MODE_B
#define NTP_MODE_RC LIBNET_NTP_MODE_RC
#define NTP_MODE_RP LIBNET_NTP_MODE_RP
#define NTP_STRATUM_UNAVAIL LIBNET_NTP_STRATUM_UNAVAIL
#define NTP_STRATUM_PRIMARY LIBNET_NTP_STRATUM_PRIMARY
#define NTP_REF_LOCAL LIBNET_NTP_REF_LOCAL
#define NTP_REF_PPS LIBNET_NTP_REF_PPS
#define NTP_REF_ACTS LIBNET_NTP_REF_ACTS
#define NTP_REF_USNO LIBNET_NTP_REF_USNO
#define NTP_REF_PTB LIBNET_NTP_REF_PTB
#define NTP_REF_TDF LIBNET_NTP_REF_TDF
#define NTP_REF_DCF LIBNET_NTP_REF_DCF
#define NTP_REF_MSF LIBNET_NTP_REF_MSF
#define NTP_REF_WWV LIBNET_NTP_REF_WWV
#define NTP_REF_WWVB LIBNET_NTP_REF_WWVB
#define NTP_REF_WWVH LIBNET_NTP_REF_WWVH
#define NTP_REF_CHU LIBNET_NTP_REF_CHU
#define NTP_REF_LORC LIBNET_NTP_REF_LORC
#define NTP_REF_OMEG LIBNET_NTP_REF_OMEG
#define NTP_REF_GPS LIBNET_NTP_REF_GPS
#define NTP_REF_GOES LIBNET_NTP_REF_GOES
#define OSPF_UMD LIBNET_OSPF_UMD
#define OSPF_HELLO LIBNET_OSPF_HELLO
#define OSPF_DBD LIBNET_OSPF_DBD
#define OSPF_LSR LIBNET_OSPF_LSR
#define OSPF_LSU LIBNET_OSPF_LSU
#define OSPF_LSA LIBNET_OSPF_LSA
#define OSPF_AUTH_NULL LIBNET_OSPF_AUTH_NULL
#define OSPF_AUTH_SIMPLE LIBNET_OSPF_AUTH_SIMPLE
#define OSPF_AUTH_MD5 LIBNET_OSPF_AUTH_MD5
#define DBD_IBI LIBNET_DBD_IBI
#define DBD_MBIT LIBNET_DBD_MBIT
#define DBD_MSBIT LIBNET_DBD_MSBIT
#define LS_TYPE_RTR LIBNET_LS_TYPE_RTR
#define LS_TYPE_NET LIBNET_LS_TYPE_NET
#define LS_TYPE_IP LIBNET_LS_TYPE_IP
#define LS_TYPE_ASBR LIBNET_LS_TYPE_ASBR
#define LS_TYPE_ASEXT LIBNET_LS_TYPE_ASEXT
#define RTR_FLAGS_W LIBNET_RTR_FLAGS_W
#define RTR_FLAGS_E LIBNET_RTR_FLAGS_E
#define RTR_FLAGS_B LIBNET_RTR_FLAGS_B
#define LINK_ID_NBR_ID LIBNET_LINK_ID_NBR_ID
#define LINK_ID_IP_DES LIBNET_LINK_ID_IP_DES
#define LINK_ID_SUB LIBNET_LINK_ID_SUB
#define RTR_TYPE_PTP LIBNET_RTR_TYPE_PTP
#define RTR_TYPE_TRANS LIBNET_RTR_TYPE_TRANS
#define RTR_TYPE_STUB LIBNET_RTR_TYPE_STUB
#define AS_E_BIT_ON LIBNET_AS_E_BIT_ON
#define RPC_CALL LIBNET_RPC_CALL
#define RPC_REPLY LIBNET_RPC_REPLY
#define RPC_VERS LIBNET_RPC_VERS
#define RPC_LAST_FRAG LIBNET_RPC_LAST_FRAG
#define PMAP_PROGRAM LIBNET_PMAP_PROGRAM
#define PMAP_PROC_NULL LIBNET_PMAP_PROC_NULL
#define PMAP_PROC_SET LIBNET_PMAP_PROC_SET
#define PMAP_PROC_UNSET LIBNET_PMAP_PROC_UNSET
#define PMAP_PROC_GETADDR LIBNET_PMAP_PROC_GETADDR
#define PMAP_PROC_DUMP LIBNET_PMAP_PROC_DUMP
#define PMAP_PROC_CALLIT LIBNET_PMAP_PROC_CALLIT
#define PMAP_PROC_BCAST LIBNET_PMAP_PROC_BCAST
#define PMAP_PROC_GETTIME LIBNET_PMAP_PROC_GETTIME
#define PMAP_PROC_UADDR2TADDR LIBNET_PMAP_PROC_UADDR2TADDR
#define PMAP_PROC_TADDR2UADDR LIBNET_PMAP_PROC_TADDR2UADDR
#define PMAP_PROC_GETVERSADDR LIBNET_PMAP_PROC_GETVERSADDR
#define PMAP_PROC_INDIRECT LIBNET_PMAP_PROC_INDIRECT
#define PMAP_PROC_GETADDRLIST LIBNET_PMAP_PROC_GETADDRLIST
#define PMAP_PROC_GETSTAT LIBNET_PMAP_PROC_GETSTAT
#define TOKEN_RING_FRAME LIBNET_TOKEN_RING_FRAME
#define TOKEN_RING_LLC_FRAME LIBNET_TOKEN_RING_LLC_FRAME
#define VRRP_VERSION_01 LIBNET_VRRP_VERSION_01
#define VRRP_VERSION_02 LIBNET_VRRP_VERSION_02
#define VRRP_TYPE_ADVERT LIBNET_VRRP_TYPE_ADVERT
#define VRRP_AUTH_NONE LIBNET_VRRP_AUTH_NONE
#define VRRP_AUTH_PASSWD LIBNET_VRRP_AUTH_PASSWD
#define VRRP_AUTH_IPAH LIBNET_VRRP_AUTH_IPAH

#if LIBNET_RELEASE >= 4

#define HSRP_H LIBNET_HSRP_H
#define HSRP_VERSION LIBNET_HSRP_VERSION
#define HSRP_TYPE_HELLO LIBNET_HSRP_TYPE_HELLO
#define HSRP_TYPE_COUP LIBNET_HSRP_TYPE_COUP
#define HSRP_TYPE_RESIGN LIBNET_HSRP_TYPE_RESIGN
#define HSRP_STATE_INITIAL LIBNET_HSRP_STATE_INITIAL
#define HSRP_STATE_LEARN LIBNET_HSRP_STATE_LEARN
#define HSRP_STATE_LISTEN LIBNET_HSRP_STATE_LISTEN
#define HSRP_STATE_SPEAK LIBNET_HSRP_STATE_SPEAK
#define HSRP_STATE_STANDBY LIBNET_HSRP_STATE_STANDBY
#define HSRP_STATE_ACTIVE LIBNET_HSRP_STATE_ACTIVE

#endif

/* Pblock headers */

#define PBLOCK_ARP_H LIBNET_PBLOCK_ARP_H
#define PBLOCK_DHCPV4_H LIBNET_PBLOCK_DHCPV4_H
#define PBLOCK_DNSV4_H LIBNET_PBLOCK_DNSV4_H
#define PBLOCK_ETH_H LIBNET_PBLOCK_ETH_H
#define PBLOCK_ICMPV4_H LIBNET_PBLOCK_ICMPV4_H
#define PBLOCK_ICMPV4_ECHO_H LIBNET_PBLOCK_ICMPV4_ECHO_H
#define PBLOCK_ICMPV4_MASK_H LIBNET_PBLOCK_ICMPV4_MASK_H
#define PBLOCK_ICMPV4_UNREACH_H LIBNET_PBLOCK_ICMPV4_UNREACH_H
#define PBLOCK_ICMPV4_TIMXCEED_H LIBNET_PBLOCK_ICMPV4_TIMXCEED_H
#define PBLOCK_ICMPV4_REDIRECT_H LIBNET_PBLOCK_ICMPV4_REDIRECT_H
#define PBLOCK_ICMPV4_TS_H LIBNET_PBLOCK_ICMPV4_TS_H
#define PBLOCK_IGMP_H LIBNET_PBLOCK_IGMP_H
#define PBLOCK_IPV4_H LIBNET_PBLOCK_IPV4_H
#define PBLOCK_IPO_H LIBNET_PBLOCK_IPO_H
#define PBLOCK_IPDATA LIBNET_PBLOCK_IPDATA
#define PBLOCK_OSPF_H LIBNET_PBLOCK_OSPF_H
#define PBLOCK_OSPF_HELLO_H LIBNET_PBLOCK_OSPF_HELLO_H
#define PBLOCK_OSPF_DBD_H LIBNET_PBLOCK_OSPF_DBD_H
#define PBLOCK_OSPF_LSR_H LIBNET_PBLOCK_OSPF_LSR_H
#define PBLOCK_OSPF_LSU_H LIBNET_PBLOCK_OSPF_LSU_H
#define PBLOCK_OSPF_LSA_H LIBNET_PBLOCK_OSPF_LSA_H
#define PBLOCK_OSPF_AUTH_H LIBNET_PBLOCK_OSPF_AUTH_H
#define PBLOCK_OSPF_CKSUM LIBNET_PBLOCK_OSPF_CKSUM
#define PBLOCK_LS_RTR_H LIBNET_PBLOCK_LS_RTR_H
#define PBLOCK_LS_NET_H LIBNET_PBLOCK_LS_NET_H
#define PBLOCK_LS_SUM_H LIBNET_PBLOCK_LS_SUM_H
#define PBLOCK_LS_AS_EXT_H LIBNET_PBLOCK_LS_AS_EXT_H
#define PBLOCK_NTP_H LIBNET_PBLOCK_NTP_H
#define PBLOCK_RIP_H LIBNET_PBLOCK_RIP_H
#define PBLOCK_TCP_H LIBNET_PBLOCK_TCP_H
#define PBLOCK_TCPO_H LIBNET_PBLOCK_TCPO_H
#define PBLOCK_TCPDATA LIBNET_PBLOCK_TCPDATA
#define PBLOCK_UDP_H LIBNET_PBLOCK_UDP_H
#define PBLOCK_VRRP_H LIBNET_PBLOCK_VRRP_H
#define PBLOCK_DATA_H LIBNET_PBLOCK_DATA_H
#define PBLOCK_CDP_H LIBNET_PBLOCK_CDP_H
#define PBLOCK_IPSEC_ESP_HDR_H LIBNET_PBLOCK_IPSEC_ESP_HDR_H
#define PBLOCK_IPSEC_ESP_FTR_H LIBNET_PBLOCK_IPSEC_ESP_FTR_H
#define PBLOCK_IPSEC_AH_H LIBNET_PBLOCK_IPSEC_AH_H
#define PBLOCK_802_1Q_H LIBNET_PBLOCK_802_1Q_H
#define PBLOCK_802_2_H LIBNET_PBLOCK_802_2_H
#define PBLOCK_802_2SNAP_H LIBNET_PBLOCK_802_2SNAP_H
#define PBLOCK_802_3_H LIBNET_PBLOCK_802_3_H
#define PBLOCK_STP_CONF_H LIBNET_PBLOCK_STP_CONF_H
#define PBLOCK_STP_TCN_H LIBNET_PBLOCK_STP_TCN_H
#define PBLOCK_ISL_H LIBNET_PBLOCK_ISL_H
#define PBLOCK_IPV6_H LIBNET_PBLOCK_IPV6_H
#define PBLOCK_802_1X_H LIBNET_PBLOCK_802_1X_H
#define PBLOCK_RPC_CALL_H LIBNET_PBLOCK_RPC_CALL_H
#define PBLOCK_MPLS_H LIBNET_PBLOCK_MPLS_H
#define PBLOCK_FDDI_H LIBNET_PBLOCK_FDDI_H
#define PBLOCK_TOKEN_RING_H LIBNET_PBLOCK_TOKEN_RING_H
#define PBLOCK_BGP4_HEADER_H LIBNET_PBLOCK_BGP4_HEADER_H
#define PBLOCK_BGP4_OPEN_H LIBNET_PBLOCK_BGP4_OPEN_H
#define PBLOCK_BGP4_UPDATE_H LIBNET_PBLOCK_BGP4_UPDATE_H
#define PBLOCK_BGP4_NOTIFICATION_H LIBNET_PBLOCK_BGP4_NOTIFICATION_H
#define PBLOCK_GRE_H LIBNET_PBLOCK_GRE_H
#define PBLOCK_GRE_SRE_H LIBNET_PBLOCK_GRE_SRE_H
#define PBLOCK_IPV6_FRAG_H LIBNET_PBLOCK_IPV6_FRAG_H
#define PBLOCK_IPV6_ROUTING_H LIBNET_PBLOCK_IPV6_ROUTING_H
#define PBLOCK_IPV6_DESTOPTS_H LIBNET_PBLOCK_IPV6_DESTOPTS_H
#define PBLOCK_IPV6_HBHOPTS_H LIBNET_PBLOCK_IPV6_HBHOPTS_H
#define PBLOCK_SEBEK_H LIBNET_PBLOCK_SEBEK_H

#if LIBNET_RELEASE >= 4
#define PBLOCK_HSRP_H LIBNET_PBLOCK_HSRP_H
#endif

#define PBLOCK_DO_CHECKSUM LIBNET_PBLOCK_DO_CHECKSUM

#ifndef IPPROTO_IP
#define IPPROTO_IP 0
#endif
#ifndef IPPROTO_HOPOPTS
#define IPPROTO_HOPOPTS 0
#endif
#ifndef IPPROTO_ICMP
#define IPPROTO_ICMP 1
#endif
#ifndef IPPROTO_IGMP
#define IPPROTO_IGMP 2
#endif
#ifndef IPPROTO_GGP
#define IPPROTO_GGP 3
#endif
#ifndef IPPROTO_IPV4
#define IPPROTO_IPV4 4
#endif
#ifndef IPPROTO_IPIP
#define IPPROTO_IPIP IPPROTO_IPV4
#endif
#ifndef IPPROTO_TCP
#define IPPROTO_TCP 6
#endif
#ifndef IPPROTO_ST
#define IPPROTO_ST 7
#endif
#ifndef IPPROTO_EGP
#define IPPROTO_EGP 8
#endif
#ifndef IPPROTO_PIGP
#define IPPROTO_PIGP 9
#endif
#ifndef IPPROTO_RCCMON
#define IPPROTO_RCCMON 10
#endif
#ifndef IPPROTO_NVPII
#define IPPROTO_NVPII 11
#endif
#ifndef IPPROTO_PUP
#define IPPROTO_PUP 12
#endif
#ifndef IPPROTO_ARGUS
#define IPPROTO_ARGUS 13
#endif
#ifndef IPPROTO_EMCON
#define IPPROTO_EMCON 14
#endif
#ifndef IPPROTO_XNET
#define IPPROTO_XNET 15
#endif
#ifndef IPPROTO_CHAOS
#define IPPROTO_CHAOS 16
#endif
#ifndef IPPROTO_UDP
#define IPPROTO_UDP 17
#endif
#ifndef IPPROTO_MUX
#define IPPROTO_MUX 18
#endif
#ifndef IPPROTO_MEAS
#define IPPROTO_MEAS 19
#endif
#ifndef IPPROTO_HMP
#define IPPROTO_HMP 20
#endif
#ifndef IPPROTO_PRM
#define IPPROTO_PRM 21
#endif
#ifndef IPPROTO_IDP
#define IPPROTO_IDP 22
#endif
#ifndef IPPROTO_TRUNK1
#define IPPROTO_TRUNK1 23
#endif
#ifndef IPPROTO_TRUNK2
#define IPPROTO_TRUNK2 24
#endif
#ifndef IPPROTO_LEAF1
#define IPPROTO_LEAF1 25
#endif
#ifndef IPPROTO_LEAF2
#define IPPROTO_LEAF2 26
#endif
#ifndef IPPROTO_RDP
#define IPPROTO_RDP 27
#endif
#ifndef IPPROTO_IRTP
#define IPPROTO_IRTP 28
#endif
#ifndef IPPROTO_TP
#define IPPROTO_TP 29
#endif
#ifndef IPPROTO_BLT
#define IPPROTO_BLT 30
#endif
#ifndef IPPROTO_NSP
#define IPPROTO_NSP 31
#endif
#ifndef IPPROTO_INP
#define IPPROTO_INP 32
#endif
#ifndef IPPROTO_SEP
#define IPPROTO_SEP 33
#endif
#ifndef IPPROTO_3PC
#define IPPROTO_3PC 34
#endif
#ifndef IPPROTO_IDPR
#define IPPROTO_IDPR 35
#endif
#ifndef IPPROTO_XTP
#define IPPROTO_XTP 36
#endif
#ifndef IPPROTO_DDP
#define IPPROTO_DDP 37
#endif
#ifndef IPPROTO_CMTP
#define IPPROTO_CMTP 38
#endif
#ifndef IPPROTO_TPXX
#define IPPROTO_TPXX 39
#endif
#ifndef IPPROTO_IL
#define IPPROTO_IL 40
#endif
#ifndef IPPROTO_IPV6
#define IPPROTO_IPV6 41
#endif
#ifndef IPPROTO_SDRP
#define IPPROTO_SDRP 42
#endif
#ifndef IPPROTO_ROUTING
#define IPPROTO_ROUTING 43
#endif
#ifndef IPPROTO_FRAGMENT
#define IPPROTO_FRAGMENT 44
#endif
#ifndef IPPROTO_IDRP
#define IPPROTO_IDRP 45
#endif
#ifndef IPPROTO_RSVP
#define IPPROTO_RSVP 46
#endif
#ifndef IPPROTO_GRE
#define IPPROTO_GRE 47
#endif
#ifndef IPPROTO_MHRP
#define IPPROTO_MHRP 48
#endif
#ifndef IPPROTO_BHA
#define IPPROTO_BHA 49
#endif
#ifndef IPPROTO_ESP
#define IPPROTO_ESP 50
#endif
#ifndef IPPROTO_AH
#define IPPROTO_AH 51
#endif
#ifndef IPPROTO_INLSP
#define IPPROTO_INLSP 52
#endif
#ifndef IPPROTO_SWIPE
#define IPPROTO_SWIPE 53
#endif
#ifndef IPPROTO_NHRP
#define IPPROTO_NHRP 54
#endif
#ifndef IPPROTO_ICMPV6
#define IPPROTO_ICMPV6 58
#endif
#ifndef IPPROTO_NONE
#define IPPROTO_NONE 59
#endif
#ifndef IPPROTO_DSTOPTS
#define IPPROTO_DSTOPTS 60
#endif
#ifndef IPPROTO_AHIP
#define IPPROTO_AHIP 61
#endif
#ifndef IPPROTO_CFTP
#define IPPROTO_CFTP 62
#endif
#ifndef IPPROTO_HELLO
#define IPPROTO_HELLO 63
#endif
#ifndef IPPROTO_SATEXPAK
#define IPPROTO_SATEXPAK 64
#endif
#ifndef IPPROTO_KRYPTOLAN
#define IPPROTO_KRYPTOLAN 65
#endif
#ifndef IPPROTO_RVD
#define IPPROTO_RVD 66
#endif
#ifndef IPPROTO_IPPC
#define IPPROTO_IPPC 67
#endif
#ifndef IPPROTO_ADFS
#define IPPROTO_ADFS 68
#endif
#ifndef IPPROTO_SATMON
#define IPPROTO_SATMON 69
#endif
#ifndef IPPROTO_VISA
#define IPPROTO_VISA 70
#endif
#ifndef IPPROTO_IPCV
#define IPPROTO_IPCV 71
#endif
#ifndef IPPROTO_CPNX
#define IPPROTO_CPNX 72
#endif
#ifndef IPPROTO_CPHB
#define IPPROTO_CPHB 73
#endif
#ifndef IPPROTO_WSN
#define IPPROTO_WSN 74
#endif
#ifndef IPPROTO_PVP
#define IPPROTO_PVP 75
#endif
#ifndef IPPROTO_BRSATMON
#define IPPROTO_BRSATMON 76
#endif
#ifndef IPPROTO_ND
#define IPPROTO_ND 77
#endif
#ifndef IPPROTO_WBMON
#define IPPROTO_WBMON 78
#endif
#ifndef IPPROTO_WBEXPAK
#define IPPROTO_WBEXPAK 79
#endif
#ifndef IPPROTO_EON
#define IPPROTO_EON 80
#endif
#ifndef IPPROTO_VMTP
#define IPPROTO_VMTP 81
#endif
#ifndef IPPROTO_SVMTP
#define IPPROTO_SVMTP 82
#endif
#ifndef IPPROTO_VINES
#define IPPROTO_VINES 83
#endif
#ifndef IPPROTO_TTP
#define IPPROTO_TTP 84
#endif
#ifndef IPPROTO_IGP
#define IPPROTO_IGP 85
#endif
#ifndef IPPROTO_DGP
#define IPPROTO_DGP 86
#endif
#ifndef IPPROTO_TCF
#define IPPROTO_TCF 87
#endif
#ifndef IPPROTO_IGRP
#define IPPROTO_IGRP 88
#endif
#ifndef IPPROTO_OSPFIGP
#define IPPROTO_OSPFIGP 89
#endif
#ifndef IPPROTO_SRPC
#define IPPROTO_SRPC 90
#endif
#ifndef IPPROTO_LARP
#define IPPROTO_LARP 91
#endif
#ifndef IPPROTO_MTP
#define IPPROTO_MTP 92
#endif
#ifndef IPPROTO_AX25
#define IPPROTO_AX25 93
#endif
#ifndef IPPROTO_IPEIP
#define IPPROTO_IPEIP 94
#endif
#ifndef IPPROTO_MICP
#define IPPROTO_MICP 95
#endif
#ifndef IPPROTO_SCCSP
#define IPPROTO_SCCSP 96
#endif
#ifndef IPPROTO_ETHERIP
#define IPPROTO_ETHERIP 97
#endif
#ifndef IPPROTO_ENCAP
#define IPPROTO_ENCAP 98
#endif
#ifndef IPPROTO_APES
#define IPPROTO_APES 99
#endif
#ifndef IPPROTO_GMTP
#define IPPROTO_GMTP 100
#endif
#ifndef IPPROTO_IPCOMP
#define IPPROTO_IPCOMP 108
#endif
#ifndef IPPROTO_PIM
#define IPPROTO_PIM 103
#endif
#ifndef IPPROTO_PGM
#define IPPROTO_PGM 113
#endif
#ifndef IPPROTO_DIVERT
#define IPPROTO_DIVERT 254
#endif
#ifndef IPPROTO_RAW
#define IPPROTO_RAW 255
#endif
#ifndef IPPROTO_MAX
#define IPPROTO_MAX 256
#endif
#ifndef IPPROTO_DONE
#define IPPROTO_DONE 257
#endif
#ifndef IPPROTO_MAXID
#define IPPROTO_MAXID (IPPROTO_AH + 1)
#endif
#ifndef ETHERTYPE_IPV6
#define ETHERTYPE_IPV6 0x86dd
#endif

#define U_INT32_TP(x) *((u_int32_t *)x)
#define PYLIBNET_RANDOM_U2 libnet_get_prand(LIBNET_PR2);
#define PYLIBNET_RANDOM_U8 libnet_get_prand(LIBNET_PR8);
#define PYLIBNET_RANDOM_U16 libnet_get_prand(LIBNET_PRu16);
#define PYLIBNET_RANDOM_U32 libnet_get_prand(LIBNET_PRu32);

#define PYLIBNET_BROADCAST_MAC (u_int8_t *)"\xff\xff\xff\xff\xff\xff"
#define PYLIBNET_BROADCAST_IPV4 (u_int8_t *)"\xff\xff\xff\xff"
#define PYLIBNET_BROADCAST_IPV6 (u_int8_t *)"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"

#define PYLIBNET_ERROR_STR(x, x_len, y, s) PYLIBNET_ERROR_STRING(x == NULL || x_len != y, s)
#define PYLIBNET_ERROR_TYPE(x, y, s) PYLIBNET_ERROR_STRING(x, "argument '" y "' must be a " s ".")
#define PYLIBNET_ERROR_TYPE1(x, y, s) PYLIBNET_ERROR_STRING(x, "argument '" y "' must be an " s ".")


#define PYLIBNET_ERROR_STRING(x, s) if (x) { \
	PyErr_SetString(PyExc_TypeError, s); \
	return NULL; \
}

#define PYLIBNET_ERROR_LIBNET(x) if (x) { \
	PyErr_SetString(PyErr_LibnetError, libnet_geterror(self->l)); \
	return NULL; \
}

static struct {
	char *c_name;
	int value;
} libnet_constants[] = {
	{"PTAG_INITIALIZER", LIBNET_PTAG_INITIALIZER},
	{"PR2", LIBNET_PR2},
	{"PR8", LIBNET_PR8},
	{"PR16", LIBNET_PR16},
	{"PRu16", LIBNET_PRu16},
	{"PR32", LIBNET_PR32},
	{"PRu32", LIBNET_PRu32},
	{"ON", LIBNET_ON},
	{"OFF", LIBNET_OFF},
	{"RESOLVE", LIBNET_RESOLVE},
	{"DONT_RESOLVE", LIBNET_DONT_RESOLVE},
	{"LINK", LIBNET_LINK},
	{"LINK_ADV", LIBNET_LINK_ADV},
	{"RAW4", LIBNET_RAW4},
	{"RAW4_ADV", LIBNET_RAW4_ADV},
	{"RAW6", LIBNET_RAW6},
	{"RAW6_ADV", LIBNET_RAW6_ADV},
	{"I802_1Q_H", LIBNET_802_1Q_H},
	{"I802_1X_H", LIBNET_802_1X_H},
	{"I802_2_H", LIBNET_802_2_H},
	{"I802_2SNAP_H", LIBNET_802_2SNAP_H},
	{"I802_3_H", LIBNET_802_3_H},
	{"ARP_H", LIBNET_ARP_H},
	{"ARP_ETH_IP_H", LIBNET_ARP_ETH_IP_H},
	{"BGP4_HEADER_H", LIBNET_BGP4_HEADER_H},
	{"BGP4_OPEN_H", LIBNET_BGP4_OPEN_H},
	{"BGP4_UPDATE_H", LIBNET_BGP4_UPDATE_H},
	{"BGP4_NOTIFICATION_H", LIBNET_BGP4_NOTIFICATION_H},
	{"CDP_H", LIBNET_CDP_H},
	{"DHCPV4_H", LIBNET_DHCPV4_H},
	{"UDP_DNSV4_H", LIBNET_UDP_DNSV4_H},
	{"TCP_DNSV4_H", LIBNET_TCP_DNSV4_H},
	{"ETH_H", LIBNET_ETH_H},
	{"FDDI_H", LIBNET_FDDI_H},
	{"ICMPV4_H", LIBNET_ICMPV4_H},
	{"ICMPV4_ECHO_H", LIBNET_ICMPV4_ECHO_H},
	{"ICMPV4_MASK_H", LIBNET_ICMPV4_MASK_H},
	{"ICMPV4_UNREACH_H", LIBNET_ICMPV4_UNREACH_H},
	{"ICMPV4_TIMXCEED_H", LIBNET_ICMPV4_TIMXCEED_H},
	{"ICMPV4_REDIRECT_H", LIBNET_ICMPV4_REDIRECT_H},
	{"ICMPV4_TS_H", LIBNET_ICMPV4_TS_H},
	{"ICMPV6_H", LIBNET_ICMPV6_H},
	{"IGMP_H", LIBNET_IGMP_H},
	{"IPV4_H", LIBNET_IPV4_H},
	{"IPV6_H", LIBNET_IPV6_H},
	{"IPV6_FRAG_H", LIBNET_IPV6_FRAG_H},
	{"IPV6_ROUTING_H", LIBNET_IPV6_ROUTING_H},
	{"IPV6_DESTOPTS_H", LIBNET_IPV6_DESTOPTS_H},
	{"IPV6_HBHOPTS_H", LIBNET_IPV6_HBHOPTS_H},
	{"IPSEC_ESP_HDR_H", LIBNET_IPSEC_ESP_HDR_H},
	{"IPSEC_ESP_FTR_H", LIBNET_IPSEC_ESP_FTR_H},
	{"IPSEC_AH_H", LIBNET_IPSEC_AH_H},
	{"ISL_H", LIBNET_ISL_H},
	{"GRE_H", LIBNET_GRE_H},
	{"GRE_SRE_H", LIBNET_GRE_SRE_H},
	{"MPLS_H", LIBNET_MPLS_H},
	{"OSPF_H", LIBNET_OSPF_H},
	{"OSPF_HELLO_H", LIBNET_OSPF_HELLO_H},
	{"OSPF_DBD_H", LIBNET_OSPF_DBD_H},
	{"OSPF_LSR_H", LIBNET_OSPF_LSR_H},
	{"OSPF_LSU_H", LIBNET_OSPF_LSU_H},
	{"OSPF_LSA_H", LIBNET_OSPF_LSA_H},
	{"OSPF_AUTH_H", LIBNET_OSPF_AUTH_H},
	{"OSPF_CKSUM", LIBNET_OSPF_CKSUM},
	{"OSPF_LS_RTR_H", LIBNET_OSPF_LS_RTR_H},
	{"OSPF_LS_NET_H", LIBNET_OSPF_LS_NET_H},
	{"OSPF_LS_SUM_H", LIBNET_OSPF_LS_SUM_H},
	{"OSPF_LS_AS_EXT_H", LIBNET_OSPF_LS_AS_EXT_H},
	{"NTP_H", LIBNET_NTP_H},
	{"RIP_H", LIBNET_RIP_H},
	{"RPC_CALL_H", LIBNET_RPC_CALL_H},
	{"RPC_CALL_TCP_H", LIBNET_RPC_CALL_TCP_H},
	{"SEBEK_H", LIBNET_SEBEK_H},
	{"STP_CONF_H", LIBNET_STP_CONF_H},
	{"STP_TCN_H", LIBNET_STP_TCN_H},
	{"TOKEN_RING_H", LIBNET_TOKEN_RING_H},
	{"TCP_H", LIBNET_TCP_H},
	{"UDP_H", LIBNET_UDP_H},
	{"VRRP_H", LIBNET_VRRP_H},
	{"I802_1Q_PRIMASK", LIBNET_802_1Q_PRIMASK},
	{"I802_1Q_CFIMASK", LIBNET_802_1Q_CFIMASK},
	{"I802_1Q_VIDMASK", LIBNET_802_1Q_VIDMASK},
	{"I802_1X_PACKET", LIBNET_802_1X_PACKET},
	{"I802_1X_START", LIBNET_802_1X_START},
	{"I802_1X_LOGOFF", LIBNET_802_1X_LOGOFF},
	{"I802_1X_KEY", LIBNET_802_1X_KEY},
	{"I802_1X_ENCASFAL", LIBNET_802_1X_ENCASFAL},
	{"SAP_STP", LIBNET_SAP_STP},
	{"SAP_SNAP", LIBNET_SAP_SNAP},
	{"ARPHRD_NETROM", ARPHRD_NETROM},
	{"ARPHRD_ETHER", ARPHRD_ETHER},
	{"ARPHRD_EETHER", ARPHRD_EETHER},
	{"ARPHRD_AX25", ARPHRD_AX25},
	{"ARPHRD_PRONET", ARPHRD_PRONET},
	{"ARPHRD_CHAOS", ARPHRD_CHAOS},
	{"ARPHRD_IEEE802", ARPHRD_IEEE802},
	{"ARPHRD_ARCNET", ARPHRD_ARCNET},
	{"ARPHRD_APPLETLK", ARPHRD_APPLETLK},
	{"ARPHRD_LANSTAR", ARPHRD_LANSTAR},
	{"ARPHRD_DLCI", ARPHRD_DLCI},
	{"ARPHRD_ATM", ARPHRD_ATM},
	{"ARPHRD_METRICOM", ARPHRD_METRICOM},
	{"ARPHRD_IPSEC", ARPHRD_IPSEC},
	{"ARPOP_REQUEST", ARPOP_REQUEST},
	{"ARPOP_REPLY", ARPOP_REPLY},
	{"ARPOP_REVREQUEST", ARPOP_REVREQUEST},
	{"ARPOP_REVREPLY", ARPOP_REVREPLY},
	{"ARPOP_INVREQUEST", ARPOP_INVREQUEST},
	{"ARPOP_INVREPLY", ARPOP_INVREPLY},
	{"BGP4_MARKER_SIZE", LIBNET_BGP4_MARKER_SIZE},
	{"BGP4_OPEN", LIBNET_BGP4_OPEN},
	{"BGP4_UPDATE", LIBNET_BGP4_UPDATE},
	{"BGP4_NOTIFICATION", LIBNET_BGP4_NOTIFICATION},
	{"BGP4_KEEPALIVE", LIBNET_BGP4_KEEPALIVE},
	{"BGP4_MESSAGE_HEADER_ERROR", LIBNET_BGP4_MESSAGE_HEADER_ERROR},
	{"BGP4_OPEN_MESSAGE_ERROR", LIBNET_BGP4_OPEN_MESSAGE_ERROR},
	{"BGP4_UPDATE_MESSAGE_ERROR", LIBNET_BGP4_UPDATE_MESSAGE_ERROR},
	{"BGP4_HOLD_TIMER_EXPIRED", LIBNET_BGP4_HOLD_TIMER_EXPIRED},
	{"BGP4_FINITE_STATE__ERROR", LIBNET_BGP4_FINITE_STATE__ERROR},
	{"BGP4_CEASE", LIBNET_BGP4_CEASE},
	{"BGP4_CONNECTION_NOT_SYNCHRONIZED", LIBNET_BGP4_CONNECTION_NOT_SYNCHRONIZED},
	{"BGP4_BAD_MESSAGE_LENGTH", LIBNET_BGP4_BAD_MESSAGE_LENGTH},
	{"BGP4_BAD_MESSAGE_TYPE", LIBNET_BGP4_BAD_MESSAGE_TYPE},
	{"BGP4_UNSUPPORTED_VERSION_NUMBER", LIBNET_BGP4_UNSUPPORTED_VERSION_NUMBER},
	{"BGP4_BAD_PEER_AS", LIBNET_BGP4_BAD_PEER_AS},
	{"BGP4_BAD_BGP_IDENTIFIER", LIBNET_BGP4_BAD_BGP_IDENTIFIER},
	{"BGP4_UNSUPPORTED_OPTIONAL_PARAMETER", LIBNET_BGP4_UNSUPPORTED_OPTIONAL_PARAMETER},
	{"BGP4_AUTHENTICATION_FAILURE", LIBNET_BGP4_AUTHENTICATION_FAILURE},
	{"BGP4_UNACCEPTABLE_HOLD_TIME", LIBNET_BGP4_UNACCEPTABLE_HOLD_TIME},
	{"BGP4_MALFORMED_ATTRIBUTE_LIST", LIBNET_BGP4_MALFORMED_ATTRIBUTE_LIST},
	{"BGP4_UNRECOGNIZED_WELL_KNOWN_ATTRIBUTE", LIBNET_BGP4_UNRECOGNIZED_WELL_KNOWN_ATTRIBUTE},
	{"BGP4_MISSING_WELL_KNOWN_ATTRIBUTE", LIBNET_BGP4_MISSING_WELL_KNOWN_ATTRIBUTE},
	{"BGP4_ATTRIBUTE_FLAGS_ERROR", LIBNET_BGP4_ATTRIBUTE_FLAGS_ERROR},
	{"BGP4_ATTRIBUTE_LENGTH_ERROR", LIBNET_BGP4_ATTRIBUTE_LENGTH_ERROR},
	{"BGP4_INVALID_ORIGIN_ATTRIBUTE", LIBNET_BGP4_INVALID_ORIGIN_ATTRIBUTE},
	{"BGP4_AS_ROUTING_LOOP", LIBNET_BGP4_AS_ROUTING_LOOP},
	{"BGP4_INVALID_NEXT_HOP_ATTRIBUTE", LIBNET_BGP4_INVALID_NEXT_HOP_ATTRIBUTE},
	{"BGP4_OPTIONAL_ATTRIBUTE_ERROR", LIBNET_BGP4_OPTIONAL_ATTRIBUTE_ERROR},
	{"BGP4_INVALID_NETWORK_FIELD", LIBNET_BGP4_INVALID_NETWORK_FIELD},
	{"BGP4_MALFORMED_AS_PATH", LIBNET_BGP4_MALFORMED_AS_PATH},
	{"PROTO_CDP", LIBNET_PROTO_CDP},
	{"CDP_DEVID", LIBNET_CDP_DEVID},
	{"CDP_ADDRESS", LIBNET_CDP_ADDRESS},
	{"CDP_PORTID", LIBNET_CDP_PORTID},
	{"CDP_CAPABIL", LIBNET_CDP_CAPABIL},
	{"CDP_VERSION", LIBNET_CDP_VERSION},
	{"CDP_PLATFORM", LIBNET_CDP_PLATFORM},
	{"CDP_IPPREFIX", LIBNET_CDP_IPPREFIX},
	{"CDP_CAP_L3R", LIBNET_CDP_CAP_L3R},
	{"CDP_CAP_L2B", LIBNET_CDP_CAP_L2B},
	{"CDP_CAP_L2SRB", LIBNET_CDP_CAP_L2SRB},
	{"CDP_CAP_L2S", LIBNET_CDP_CAP_L2S},
	{"CDP_CAP_SR", LIBNET_CDP_CAP_SR},
	{"CDP_CAP_NOI", LIBNET_CDP_CAP_NOI},
	{"CDP_CAP_L1F", LIBNET_CDP_CAP_L1F},
	{"DHCP_REQUEST", LIBNET_DHCP_REQUEST},
	{"DHCP_REPLY", LIBNET_DHCP_REPLY},
	{"DHCP_MAGIC", DHCP_MAGIC},
	{"BOOTP_MIN_LEN", LIBNET_BOOTP_MIN_LEN},
	{"DHCP_PAD", LIBNET_DHCP_PAD},
	{"DHCP_SUBNETMASK", LIBNET_DHCP_SUBNETMASK},
	{"DHCP_TIMEOFFSET", LIBNET_DHCP_TIMEOFFSET},
	{"DHCP_ROUTER", LIBNET_DHCP_ROUTER},
	{"DHCP_TIMESERVER", LIBNET_DHCP_TIMESERVER},
	{"DHCP_NAMESERVER", LIBNET_DHCP_NAMESERVER},
	{"DHCP_DNS", LIBNET_DHCP_DNS},
	{"DHCP_LOGSERV", LIBNET_DHCP_LOGSERV},
	{"DHCP_COOKIESERV", LIBNET_DHCP_COOKIESERV},
	{"DHCP_LPRSERV", LIBNET_DHCP_LPRSERV},
	{"DHCP_IMPSERV", LIBNET_DHCP_IMPSERV},
	{"DHCP_RESSERV", LIBNET_DHCP_RESSERV},
	{"DHCP_HOSTNAME", LIBNET_DHCP_HOSTNAME},
	{"DHCP_BOOTFILESIZE", LIBNET_DHCP_BOOTFILESIZE},
	{"DHCP_DUMPFILE", LIBNET_DHCP_DUMPFILE},
	{"DHCP_DOMAINNAME", LIBNET_DHCP_DOMAINNAME},
	{"DHCP_SWAPSERV", LIBNET_DHCP_SWAPSERV},
	{"DHCP_ROOTPATH", LIBNET_DHCP_ROOTPATH},
	{"DHCP_EXTENPATH", LIBNET_DHCP_EXTENPATH},
	{"DHCP_IPFORWARD", LIBNET_DHCP_IPFORWARD},
	{"DHCP_SRCROUTE", LIBNET_DHCP_SRCROUTE},
	{"DHCP_POLICYFILTER", LIBNET_DHCP_POLICYFILTER},
	{"DHCP_MAXASMSIZE", LIBNET_DHCP_MAXASMSIZE},
	{"DHCP_IPTTL", LIBNET_DHCP_IPTTL},
	{"DHCP_MTUTIMEOUT", LIBNET_DHCP_MTUTIMEOUT},
	{"DHCP_MTUTABLE", LIBNET_DHCP_MTUTABLE},
	{"DHCP_MTUSIZE", LIBNET_DHCP_MTUSIZE},
	{"DHCP_LOCALSUBNETS", LIBNET_DHCP_LOCALSUBNETS},
	{"DHCP_BROADCASTADDR", LIBNET_DHCP_BROADCASTADDR},
	{"DHCP_DOMASKDISCOV", LIBNET_DHCP_DOMASKDISCOV},
	{"DHCP_MASKSUPPLY", LIBNET_DHCP_MASKSUPPLY},
	{"DHCP_DOROUTEDISC", LIBNET_DHCP_DOROUTEDISC},
	{"DHCP_ROUTERSOLICIT", LIBNET_DHCP_ROUTERSOLICIT},
	{"DHCP_STATICROUTE", LIBNET_DHCP_STATICROUTE},
	{"DHCP_TRAILERENCAP", LIBNET_DHCP_TRAILERENCAP},
	{"DHCP_ARPTIMEOUT", LIBNET_DHCP_ARPTIMEOUT},
	{"DHCP_ETHERENCAP", LIBNET_DHCP_ETHERENCAP},
	{"DHCP_TCPTTL", LIBNET_DHCP_TCPTTL},
	{"DHCP_TCPKEEPALIVE", LIBNET_DHCP_TCPKEEPALIVE},
	{"DHCP_TCPALIVEGARBAGE", LIBNET_DHCP_TCPALIVEGARBAGE},
	{"DHCP_NISDOMAIN", LIBNET_DHCP_NISDOMAIN},
	{"DHCP_NISSERVERS", LIBNET_DHCP_NISSERVERS},
	{"DHCP_NISTIMESERV", LIBNET_DHCP_NISTIMESERV},
	{"DHCP_VENDSPECIFIC", LIBNET_DHCP_VENDSPECIFIC},
	{"DHCP_NBNS", LIBNET_DHCP_NBNS},
	{"DHCP_NBDD", LIBNET_DHCP_NBDD},
	{"DHCP_NBTCPIP", LIBNET_DHCP_NBTCPIP},
	{"DHCP_NBTCPSCOPE", LIBNET_DHCP_NBTCPSCOPE},
	{"DHCP_XFONT", LIBNET_DHCP_XFONT},
	{"DHCP_XDISPLAYMGR", LIBNET_DHCP_XDISPLAYMGR},
	{"DHCP_DISCOVERADDR", LIBNET_DHCP_DISCOVERADDR},
	{"DHCP_LEASETIME", LIBNET_DHCP_LEASETIME},
	{"DHCP_OPTIONOVERLOAD", LIBNET_DHCP_OPTIONOVERLOAD},
	{"DHCP_MESSAGETYPE", LIBNET_DHCP_MESSAGETYPE},
	{"DHCP_SERVIDENT", LIBNET_DHCP_SERVIDENT},
	{"DHCP_PARAMREQUEST", LIBNET_DHCP_PARAMREQUEST},
	{"DHCP_MESSAGE", LIBNET_DHCP_MESSAGE},
	{"DHCP_MAXMSGSIZE", LIBNET_DHCP_MAXMSGSIZE},
	{"DHCP_RENEWTIME", LIBNET_DHCP_RENEWTIME},
	{"DHCP_REBINDTIME", LIBNET_DHCP_REBINDTIME},
	{"DHCP_CLASSSID", LIBNET_DHCP_CLASSSID},
	{"DHCP_CLIENTID", LIBNET_DHCP_CLIENTID},
	{"DHCP_NISPLUSDOMAIN", LIBNET_DHCP_NISPLUSDOMAIN},
	{"DHCP_NISPLUSSERVERS", LIBNET_DHCP_NISPLUSSERVERS},
	{"DHCP_MOBILEIPAGENT", LIBNET_DHCP_MOBILEIPAGENT},
	{"DHCP_SMTPSERVER", LIBNET_DHCP_SMTPSERVER},
	{"DHCP_POP3SERVER", LIBNET_DHCP_POP3SERVER},
	{"DHCP_NNTPSERVER", LIBNET_DHCP_NNTPSERVER},
	{"DHCP_WWWSERVER", LIBNET_DHCP_WWWSERVER},
	{"DHCP_FINGERSERVER", LIBNET_DHCP_FINGERSERVER},
	{"DHCP_IRCSERVER", LIBNET_DHCP_IRCSERVER},
	{"DHCP_STSERVER", LIBNET_DHCP_STSERVER},
	{"DHCP_STDASERVER", LIBNET_DHCP_STDASERVER},
	{"DHCP_END", LIBNET_DHCP_END},
	{"DHCP_MSGDISCOVER", LIBNET_DHCP_MSGDISCOVER},
	{"DHCP_MSGOFFER", LIBNET_DHCP_MSGOFFER},
	{"DHCP_MSGREQUEST", LIBNET_DHCP_MSGREQUEST},
	{"DHCP_MSGDECLINE", LIBNET_DHCP_MSGDECLINE},
	{"DHCP_MSGACK", LIBNET_DHCP_MSGACK},
	{"DHCP_MSGNACK", LIBNET_DHCP_MSGNACK},
	{"DHCP_MSGRELEASE", LIBNET_DHCP_MSGRELEASE},
	{"DHCP_MSGINFORM", LIBNET_DHCP_MSGINFORM},
	{"DNS_H", LIBNET_DNS_H},
	{"ETHERTYPE_PUP", ETHERTYPE_PUP},
	{"ETHERTYPE_IP", ETHERTYPE_IP},
	{"ETHERTYPE_IPV6", ETHERTYPE_IPV6},
	{"ETHERTYPE_ARP", ETHERTYPE_ARP},
	{"ETHERTYPE_REVARP", ETHERTYPE_REVARP},
	{"ETHERTYPE_VLAN", ETHERTYPE_VLAN},
	{"ETHERTYPE_EAP", ETHERTYPE_EAP},
	{"ETHERTYPE_MPLS", ETHERTYPE_MPLS},
	{"ETHERTYPE_LOOPBACK", ETHERTYPE_LOOPBACK},
	{"FDDI_LLC_FRAME", LIBNET_FDDI_LLC_FRAME},
	{"FDDI_48BIT_ADDR", LIBNET_FDDI_48BIT_ADDR},
	{"FDDI_FC_REQD", LIBNET_FDDI_FC_REQD},
	{"FDDI_TYPE_IP", FDDI_TYPE_IP},
	{"FDDI_TYPE_ARP", FDDI_TYPE_ARP},
	{"FDDI_TYPE_REVARP", FDDI_TYPE_REVARP},
	{"GRE_CSUM", GRE_CSUM},
	{"GRE_ROUTING", GRE_ROUTING},
	{"GRE_KEY", GRE_KEY},
	{"GRE_SEQ", GRE_SEQ},
	{"GRE_STRICT", GRE_STRICT},
	{"GRE_REC", GRE_REC},
	{"GRE_ACK", GRE_ACK},
	{"GRE_FLAGS_MASK", GRE_FLAGS_MASK},
	{"GRE_VERSION_MASK", GRE_VERSION_MASK},
	{"GRE_VERSION_0", GRE_VERSION_0},
	{"GRE_VERSION_1", GRE_VERSION_1},
	{"GRE_SNA", GRE_SNA},
	{"GRE_OSI_NETWORK_LAYER", GRE_OSI_NETWORK_LAYER},
	{"GRE_PUP", GRE_PUP},
	{"GRE_XNS", GRE_XNS},
	{"GRE_IP", GRE_IP},
	{"GRE_CHAOS", GRE_CHAOS},
	{"GRE_RFC_826_ARP", GRE_RFC_826_ARP},
	{"GRE_FRAME_RELAY_ARP", GRE_FRAME_RELAY_ARP},
	{"GRE_VINES", GRE_VINES},
	{"GRE_VINES_ECHO", GRE_VINES_ECHO},
	{"GRE_VINES_LOOPBACK", GRE_VINES_LOOPBACK},
	{"GRE_DECNET", GRE_DECNET},
	{"GRE_TRANSPARENT_ETHERNET_BRIDGING", GRE_TRANSPARENT_ETHERNET_BRIDGING},
	{"GRE_RAW_FRAME_RELAY", GRE_RAW_FRAME_RELAY},
	{"GRE_APOLLO_DOMAIN", GRE_APOLLO_DOMAIN},
	{"GRE_ETHERTALK", GRE_ETHERTALK},
	{"GRE_NOVELL_IPX", GRE_NOVELL_IPX},
	{"GRE_RFC_1144_TCP_IP_COMPRESSION", GRE_RFC_1144_TCP_IP_COMPRESSION},
	{"GRE_IP_AUTONOMOUS_SYSTEMS", GRE_IP_AUTONOMOUS_SYSTEMS},
	{"GRE_SECURE_DATA", GRE_SECURE_DATA},
	{"GRE_PPP", GRE_PPP},
	{"IPTOS_LOWDELAY", IPTOS_LOWDELAY},
	{"IPTOS_THROUGHPUT", IPTOS_THROUGHPUT},
	{"IPTOS_RELIABILITY", IPTOS_RELIABILITY},
	{"IPTOS_LOWCOST", IPTOS_LOWCOST},
	{"IP_RF", IP_RF},
	{"IP_DF", IP_DF},
	{"IP_MF", IP_MF},
	{"IP_OFFMASK", IP_OFFMASK},
	{"IPOPT_EOL", IPOPT_EOL},
	{"IPOPT_NOP", IPOPT_NOP},
	{"IPOPT_RR", IPOPT_RR},
	{"IPOPT_TS", IPOPT_TS},
	{"IPOPT_SECURITY", IPOPT_SECURITY},
	{"IPOPT_LSRR", IPOPT_LSRR},
	{"IPOPT_SATID", IPOPT_SATID},
	{"IPOPT_SSRR", IPOPT_SSRR},
	{"IPV6_NH_FRAGMENT", LIBNET_IPV6_NH_FRAGMENT},
	{"IPV6_NH_ROUTING", LIBNET_IPV6_NH_ROUTING},
	{"IPV6_NH_DESTOPTS", LIBNET_IPV6_NH_DESTOPTS},
	{"IPV6_NH_HBH", LIBNET_IPV6_NH_HBH},
	{"IPPROTO_ICMP6", IPPROTO_ICMP6},
	{"ICMP6_ECHO", ICMP6_ECHO},
	{"ICMP6_ECHOREPLY", ICMP6_ECHOREPLY},
	{"ICMP6_UNREACH", ICMP6_UNREACH},
	{"ICMP6_PKTTOOBIG", ICMP6_PKTTOOBIG},
	{"ICMP6_TIMXCEED", ICMP6_TIMXCEED},
	{"ICMP6_PARAMPROB", ICMP6_PARAMPROB},
	{"ICMP_ECHOREPLY", ICMP_ECHOREPLY},
	{"ICMP_UNREACH", ICMP_UNREACH},
	{"ICMP_SOURCEQUENCH", ICMP_SOURCEQUENCH},
	{"ICMP_REDIRECT", ICMP_REDIRECT},
	{"ICMP_ECHO", ICMP_ECHO},
	{"ICMP_ROUTERADVERT", ICMP_ROUTERADVERT},
	{"ICMP_ROUTERSOLICIT", ICMP_ROUTERSOLICIT},
	{"ICMP_TIMXCEED", ICMP_TIMXCEED},
	{"ICMP_PARAMPROB", ICMP_PARAMPROB},
	{"ICMP_TSTAMP", ICMP_TSTAMP},
	{"ICMP_TSTAMPREPLY", ICMP_TSTAMPREPLY},
	{"ICMP_IREQ", ICMP_IREQ},
	{"ICMP_IREQREPLY", ICMP_IREQREPLY},
	{"ICMP_MASKREQ", ICMP_MASKREQ},
	{"ICMP_MASKREPLY", ICMP_MASKREPLY},
	{"ICMP_UNREACH_NET", ICMP_UNREACH_NET},
	{"ICMP_UNREACH_HOST", ICMP_UNREACH_HOST},
	{"ICMP_UNREACH_PROTOCOL", ICMP_UNREACH_PROTOCOL},
	{"ICMP_UNREACH_PORT", ICMP_UNREACH_PORT},
	{"ICMP_UNREACH_NEEDFRAG", ICMP_UNREACH_NEEDFRAG},
	{"ICMP_UNREACH_SRCFAIL", ICMP_UNREACH_SRCFAIL},
	{"ICMP_UNREACH_NET_UNKNOWN", ICMP_UNREACH_NET_UNKNOWN},
	{"ICMP_UNREACH_HOST_UNKNOWN", ICMP_UNREACH_HOST_UNKNOWN},
	{"ICMP_UNREACH_ISOLATED", ICMP_UNREACH_ISOLATED},
	{"ICMP_UNREACH_NET_PROHIB", ICMP_UNREACH_NET_PROHIB},
	{"ICMP_UNREACH_HOST_PROHIB", ICMP_UNREACH_HOST_PROHIB},
	{"ICMP_UNREACH_TOSNET", ICMP_UNREACH_TOSNET},
	{"ICMP_UNREACH_TOSHOST", ICMP_UNREACH_TOSHOST},
	{"ICMP_UNREACH_FILTER_PROHIB", ICMP_UNREACH_FILTER_PROHIB},
	{"ICMP_UNREACH_HOST_PRECEDENCE", ICMP_UNREACH_HOST_PRECEDENCE},
	{"ICMP_UNREACH_PRECEDENCE_CUTOFF", ICMP_UNREACH_PRECEDENCE_CUTOFF},
	{"ICMP_REDIRECT_NET", ICMP_REDIRECT_NET},
	{"ICMP_REDIRECT_HOST", ICMP_REDIRECT_HOST},
	{"ICMP_REDIRECT_TOSNET", ICMP_REDIRECT_TOSNET},
	{"ICMP_REDIRECT_TOSHOST", ICMP_REDIRECT_TOSHOST},
	{"ICMP_TIMXCEED_INTRANS", ICMP_TIMXCEED_INTRANS},
	{"ICMP_TIMXCEED_REASS", ICMP_TIMXCEED_REASS},
	{"ICMP_PARAMPROB_OPTABSENT", ICMP_PARAMPROB_OPTABSENT},
	{"IGMP_MEMBERSHIP_QUERY", IGMP_MEMBERSHIP_QUERY},
	{"IGMP_V1_MEMBERSHIP_REPORT", IGMP_V1_MEMBERSHIP_REPORT},
	{"IGMP_V2_MEMBERSHIP_REPORT", IGMP_V2_MEMBERSHIP_REPORT},
	{"IGMP_LEAVE_GROUP", IGMP_LEAVE_GROUP},
	{"PROTO_ISL", LIBNET_PROTO_ISL},
	{"IPPROTO_OSPF", IPPROTO_OSPF},
	{"IPPROTO_OSPF_LSA", IPPROTO_OSPF_LSA},
	{"MODX", LIBNET_MODX},
	{"OPT_EBIT", LIBNET_OPT_EBIT},
	{"OPT_MCBIT", LIBNET_OPT_MCBIT},
	{"OPT_NPBIT", LIBNET_OPT_NPBIT},
	{"OPT_EABIT", LIBNET_OPT_EABIT},
	{"OPT_DCBIT", LIBNET_OPT_DCBIT},
	{"MPLS_BOS_ON", LIBNET_MPLS_BOS_ON},
	{"MPLS_BOS_OFF", LIBNET_MPLS_BOS_OFF},
	{"NTP_LI_NW", LIBNET_NTP_LI_NW},
	{"NTP_LI_AS", LIBNET_NTP_LI_AS},
	{"NTP_LI_DS", LIBNET_NTP_LI_DS},
	{"NTP_LI_AC", LIBNET_NTP_LI_AC},
	{"NTP_VN_2", LIBNET_NTP_VN_2},
	{"NTP_VN_3", LIBNET_NTP_VN_3},
	{"NTP_VN_4", LIBNET_NTP_VN_4},
	{"NTP_MODE_R", LIBNET_NTP_MODE_R},
	{"NTP_MODE_A", LIBNET_NTP_MODE_A},
	{"NTP_MODE_P", LIBNET_NTP_MODE_P},
	{"NTP_MODE_C", LIBNET_NTP_MODE_C},
	{"NTP_MODE_S", LIBNET_NTP_MODE_S},
	{"NTP_MODE_B", LIBNET_NTP_MODE_B},
	{"NTP_MODE_RC", LIBNET_NTP_MODE_RC},
	{"NTP_MODE_RP", LIBNET_NTP_MODE_RP},
	{"NTP_STRATUM_UNAVAIL", LIBNET_NTP_STRATUM_UNAVAIL},
	{"NTP_STRATUM_PRIMARY", LIBNET_NTP_STRATUM_PRIMARY},
	{"NTP_REF_LOCAL", LIBNET_NTP_REF_LOCAL},
	{"NTP_REF_PPS", LIBNET_NTP_REF_PPS},
	{"NTP_REF_ACTS", LIBNET_NTP_REF_ACTS},
	{"NTP_REF_USNO", LIBNET_NTP_REF_USNO},
	{"NTP_REF_PTB", LIBNET_NTP_REF_PTB},
	{"NTP_REF_TDF", LIBNET_NTP_REF_TDF},
	{"NTP_REF_DCF", LIBNET_NTP_REF_DCF},
	{"NTP_REF_MSF", LIBNET_NTP_REF_MSF},
	{"NTP_REF_WWV", LIBNET_NTP_REF_WWV},
	{"NTP_REF_WWVB", LIBNET_NTP_REF_WWVB},
	{"NTP_REF_WWVH", LIBNET_NTP_REF_WWVH},
	{"NTP_REF_CHU", LIBNET_NTP_REF_CHU},
	{"NTP_REF_LORC", LIBNET_NTP_REF_LORC},
	{"NTP_REF_OMEG", LIBNET_NTP_REF_OMEG},
	{"NTP_REF_GPS", LIBNET_NTP_REF_GPS},
	{"NTP_REF_GOES", LIBNET_NTP_REF_GOES},
	{"OSPFVERSION", OSPFVERSION},
	{"OSPF_UMD", LIBNET_OSPF_UMD},
	{"OSPF_HELLO", LIBNET_OSPF_HELLO},
	{"OSPF_DBD", LIBNET_OSPF_DBD},
	{"OSPF_LSR", LIBNET_OSPF_LSR},
	{"OSPF_LSU", LIBNET_OSPF_LSU},
	{"OSPF_LSA", LIBNET_OSPF_LSA},
	{"OSPF_AUTH_NULL", LIBNET_OSPF_AUTH_NULL},
	{"OSPF_AUTH_SIMPLE", LIBNET_OSPF_AUTH_SIMPLE},
	{"OSPF_AUTH_MD5", LIBNET_OSPF_AUTH_MD5},
	{"DBD_IBI", LIBNET_DBD_IBI},
	{"DBD_MBIT", LIBNET_DBD_MBIT},
	{"DBD_MSBIT", LIBNET_DBD_MSBIT},
	{"LS_TYPE_RTR", LIBNET_LS_TYPE_RTR},
	{"LS_TYPE_NET", LIBNET_LS_TYPE_NET},
	{"LS_TYPE_IP", LIBNET_LS_TYPE_IP},
	{"LS_TYPE_ASBR", LIBNET_LS_TYPE_ASBR},
	{"LS_TYPE_ASEXT", LIBNET_LS_TYPE_ASEXT},
	{"RTR_FLAGS_W", LIBNET_RTR_FLAGS_W},
	{"RTR_FLAGS_E", LIBNET_RTR_FLAGS_E},
	{"RTR_FLAGS_B", LIBNET_RTR_FLAGS_B},
	{"LINK_ID_NBR_ID", LIBNET_LINK_ID_NBR_ID},
	{"LINK_ID_IP_DES", LIBNET_LINK_ID_IP_DES},
	{"LINK_ID_SUB", LIBNET_LINK_ID_SUB},
	{"RTR_TYPE_PTP", LIBNET_RTR_TYPE_PTP},
	{"RTR_TYPE_TRANS", LIBNET_RTR_TYPE_TRANS},
	{"RTR_TYPE_STUB", LIBNET_RTR_TYPE_STUB},
	{"RTR_TYPE_VRTL", RTR_TYPE_VRTL},
	{"AS_E_BIT_ON", LIBNET_AS_E_BIT_ON},
	{"RIPCMD_REQUEST", RIPCMD_REQUEST},
	{"RIPCMD_RESPONSE", RIPCMD_RESPONSE},
	{"RIPCMD_TRACEON", RIPCMD_TRACEON},
	{"RIPCMD_TRACEOFF", RIPCMD_TRACEOFF},
	{"RIPCMD_POLL", RIPCMD_POLL},
	{"RIPCMD_POLLENTRY", RIPCMD_POLLENTRY},
	{"RIPCMD_MAX", RIPCMD_MAX},
	{"RIPVER_0", RIPVER_0},
	{"RIPVER_1", RIPVER_1},
	{"RIPVER_2", RIPVER_2},
	{"RPC_CALL", LIBNET_RPC_CALL},
	{"RPC_REPLY", LIBNET_RPC_REPLY},
	{"RPC_VERS", LIBNET_RPC_VERS},
	{"RPC_LAST_FRAG", LIBNET_RPC_LAST_FRAG},
	{"PMAP_PROGRAM", LIBNET_PMAP_PROGRAM},
	{"PMAP_PROC_NULL", LIBNET_PMAP_PROC_NULL},
	{"PMAP_PROC_SET", LIBNET_PMAP_PROC_SET},
	{"PMAP_PROC_UNSET", LIBNET_PMAP_PROC_UNSET},
	{"PMAP_PROC_GETADDR", LIBNET_PMAP_PROC_GETADDR},
	{"PMAP_PROC_DUMP", LIBNET_PMAP_PROC_DUMP},
	{"PMAP_PROC_CALLIT", LIBNET_PMAP_PROC_CALLIT},
	{"PMAP_PROC_BCAST", LIBNET_PMAP_PROC_BCAST},
	{"PMAP_PROC_GETTIME", LIBNET_PMAP_PROC_GETTIME},
	{"PMAP_PROC_UADDR2TADDR", LIBNET_PMAP_PROC_UADDR2TADDR},
	{"PMAP_PROC_TADDR2UADDR", LIBNET_PMAP_PROC_TADDR2UADDR},
	{"PMAP_PROC_GETVERSADDR", LIBNET_PMAP_PROC_GETVERSADDR},
	{"PMAP_PROC_INDIRECT", LIBNET_PMAP_PROC_INDIRECT},
	{"PMAP_PROC_GETADDRLIST", LIBNET_PMAP_PROC_GETADDRLIST},
	{"PMAP_PROC_GETSTAT", LIBNET_PMAP_PROC_GETSTAT},
	{"TH_FIN", TH_FIN},
	{"TH_SYN", TH_SYN},
	{"TH_RST", TH_RST},
	{"TH_PUSH", TH_PUSH},
	{"TH_ACK", TH_ACK},
	{"TH_URG", TH_URG},
	{"TH_ECE", TH_ECE},
	{"TH_CWR", TH_CWR},
	{"TOKEN_RING_FRAME", LIBNET_TOKEN_RING_FRAME},
	{"TOKEN_RING_LLC_FRAME", LIBNET_TOKEN_RING_LLC_FRAME},
	{"TOKEN_RING_TYPE_IP", TOKEN_RING_TYPE_IP},
	{"TOKEN_RING_TYPE_ARP", TOKEN_RING_TYPE_ARP},
	{"TOKEN_RING_TYPE_REVARP", TOKEN_RING_TYPE_REVARP},
	{"SEBEK_PROTO_VERSION", SEBEK_PROTO_VERSION},
	{"SEBEK_TYPE_READ", SEBEK_TYPE_READ},
	{"SEBEK_TYPE_WRITE", SEBEK_TYPE_WRITE},
	{"SEBEK_CMD_LENGTH", SEBEK_CMD_LENGTH},
	{"IPPROTO_VRRP", IPPROTO_VRRP},
	{"VRRP_VERSION_01", LIBNET_VRRP_VERSION_01},
	{"VRRP_VERSION_02", LIBNET_VRRP_VERSION_02},
	{"VRRP_TYPE_ADVERT", LIBNET_VRRP_TYPE_ADVERT},
	{"VRRP_AUTH_NONE", LIBNET_VRRP_AUTH_NONE},
	{"VRRP_AUTH_PASSWD", LIBNET_VRRP_AUTH_PASSWD},
	{"VRRP_AUTH_IPAH", LIBNET_VRRP_AUTH_IPAH},

#if LIBNET_RELEASE >= 4
	{"HSRP_H", LIBNET_HSRP_H},
	{"HSRP_VERSION", LIBNET_HSRP_VERSION},
	{"HSRP_TYPE_HELLO", LIBNET_HSRP_TYPE_HELLO},
	{"HSRP_TYPE_COUP", LIBNET_HSRP_TYPE_COUP},
	{"HSRP_TYPE_RESIGN", LIBNET_HSRP_TYPE_RESIGN},
	{"HSRP_STATE_INITIAL", LIBNET_HSRP_STATE_INITIAL},
	{"HSRP_STATE_LEARN", LIBNET_HSRP_STATE_LEARN},
	{"HSRP_STATE_LISTEN", LIBNET_HSRP_STATE_LISTEN},
	{"HSRP_STATE_SPEAK", LIBNET_HSRP_STATE_SPEAK},
	{"HSRP_STATE_STANDBY", LIBNET_HSRP_STATE_STANDBY},
	{"HSRP_STATE_ACTIVE", LIBNET_HSRP_STATE_ACTIVE},
#endif

	{"IPPROTO_IP", IPPROTO_IP},
	{"IPPROTO_HOPOPTS", IPPROTO_HOPOPTS},
	{"IPPROTO_ICMP", IPPROTO_ICMP},
	{"IPPROTO_IGMP", IPPROTO_IGMP},
	{"IPPROTO_GGP", IPPROTO_GGP},
	{"IPPROTO_IPV4", IPPROTO_IPV4},
	{"IPPROTO_IPIP", IPPROTO_IPIP},
	{"IPPROTO_TCP", IPPROTO_TCP},
	{"IPPROTO_ST", IPPROTO_ST},
	{"IPPROTO_EGP", IPPROTO_EGP},
	{"IPPROTO_PIGP", IPPROTO_PIGP},
	{"IPPROTO_RCCMON", IPPROTO_RCCMON},
	{"IPPROTO_NVPII", IPPROTO_NVPII},
	{"IPPROTO_PUP", IPPROTO_PUP},
	{"IPPROTO_ARGUS", IPPROTO_ARGUS},
	{"IPPROTO_EMCON", IPPROTO_EMCON},
	{"IPPROTO_XNET", IPPROTO_XNET},
	{"IPPROTO_CHAOS", IPPROTO_CHAOS},
	{"IPPROTO_UDP", IPPROTO_UDP},
	{"IPPROTO_MUX", IPPROTO_MUX},
	{"IPPROTO_MEAS", IPPROTO_MEAS},
	{"IPPROTO_HMP", IPPROTO_HMP},
	{"IPPROTO_PRM", IPPROTO_PRM},
	{"IPPROTO_IDP", IPPROTO_IDP},
	{"IPPROTO_TRUNK1", IPPROTO_TRUNK1},
	{"IPPROTO_TRUNK2", IPPROTO_TRUNK2},
	{"IPPROTO_LEAF1", IPPROTO_LEAF1},
	{"IPPROTO_LEAF2", IPPROTO_LEAF2},
	{"IPPROTO_RDP", IPPROTO_RDP},
	{"IPPROTO_IRTP", IPPROTO_IRTP},
	{"IPPROTO_TP", IPPROTO_TP},
	{"IPPROTO_BLT", IPPROTO_BLT},
	{"IPPROTO_NSP", IPPROTO_NSP},
	{"IPPROTO_INP", IPPROTO_INP},
	{"IPPROTO_SEP", IPPROTO_SEP},
	{"IPPROTO_3PC", IPPROTO_3PC},
	{"IPPROTO_IDPR", IPPROTO_IDPR},
	{"IPPROTO_XTP", IPPROTO_XTP},
	{"IPPROTO_DDP", IPPROTO_DDP},
	{"IPPROTO_CMTP", IPPROTO_CMTP},
	{"IPPROTO_TPXX", IPPROTO_TPXX},
	{"IPPROTO_IL", IPPROTO_IL},
	{"IPPROTO_IPV6", IPPROTO_IPV6},
	{"IPPROTO_SDRP", IPPROTO_SDRP},
	{"IPPROTO_ROUTING", IPPROTO_ROUTING},
	{"IPPROTO_FRAGMENT", IPPROTO_FRAGMENT},
	{"IPPROTO_IDRP", IPPROTO_IDRP},
	{"IPPROTO_RSVP", IPPROTO_RSVP},
	{"IPPROTO_GRE", IPPROTO_GRE},
	{"IPPROTO_MHRP", IPPROTO_MHRP},
	{"IPPROTO_BHA", IPPROTO_BHA},
	{"IPPROTO_ESP", IPPROTO_ESP},
	{"IPPROTO_AH", IPPROTO_AH},
	{"IPPROTO_INLSP", IPPROTO_INLSP},
	{"IPPROTO_SWIPE", IPPROTO_SWIPE},
	{"IPPROTO_NHRP", IPPROTO_NHRP},
	{"IPPROTO_ICMPV6", IPPROTO_ICMPV6},
	{"IPPROTO_NONE", IPPROTO_NONE},
	{"IPPROTO_DSTOPTS", IPPROTO_DSTOPTS},
	{"IPPROTO_AHIP", IPPROTO_AHIP},
	{"IPPROTO_CFTP", IPPROTO_CFTP},
	{"IPPROTO_HELLO", IPPROTO_HELLO},
	{"IPPROTO_SATEXPAK", IPPROTO_SATEXPAK},
	{"IPPROTO_KRYPTOLAN", IPPROTO_KRYPTOLAN},
	{"IPPROTO_RVD", IPPROTO_RVD},
	{"IPPROTO_IPPC", IPPROTO_IPPC},
	{"IPPROTO_ADFS", IPPROTO_ADFS},
	{"IPPROTO_SATMON", IPPROTO_SATMON},
	{"IPPROTO_VISA", IPPROTO_VISA},
	{"IPPROTO_IPCV", IPPROTO_IPCV},
	{"IPPROTO_CPNX", IPPROTO_CPNX},
	{"IPPROTO_CPHB", IPPROTO_CPHB},
	{"IPPROTO_WSN", IPPROTO_WSN},
	{"IPPROTO_PVP", IPPROTO_PVP},
	{"IPPROTO_BRSATMON", IPPROTO_BRSATMON},
	{"IPPROTO_ND", IPPROTO_ND},
	{"IPPROTO_WBMON", IPPROTO_WBMON},
	{"IPPROTO_WBEXPAK", IPPROTO_WBEXPAK},
	{"IPPROTO_EON", IPPROTO_EON},
	{"IPPROTO_VMTP", IPPROTO_VMTP},
	{"IPPROTO_SVMTP", IPPROTO_SVMTP},
	{"IPPROTO_VINES", IPPROTO_VINES},
	{"IPPROTO_TTP", IPPROTO_TTP},
	{"IPPROTO_IGP", IPPROTO_IGP},
	{"IPPROTO_DGP", IPPROTO_DGP},
	{"IPPROTO_TCF", IPPROTO_TCF},
	{"IPPROTO_IGRP", IPPROTO_IGRP},
	{"IPPROTO_OSPFIGP", IPPROTO_OSPFIGP},
	{"IPPROTO_SRPC", IPPROTO_SRPC},
	{"IPPROTO_LARP", IPPROTO_LARP},
	{"IPPROTO_MTP", IPPROTO_MTP},
	{"IPPROTO_AX25", IPPROTO_AX25},
	{"IPPROTO_IPEIP", IPPROTO_IPEIP},
	{"IPPROTO_MICP", IPPROTO_MICP},
	{"IPPROTO_SCCSP", IPPROTO_SCCSP},
	{"IPPROTO_ETHERIP", IPPROTO_ETHERIP},
	{"IPPROTO_ENCAP", IPPROTO_ENCAP},
	{"IPPROTO_APES", IPPROTO_APES},
	{"IPPROTO_GMTP", IPPROTO_GMTP},
	{"IPPROTO_IPCOMP", IPPROTO_IPCOMP},
	{"IPPROTO_PIM", IPPROTO_PIM},
	{"IPPROTO_PGM", IPPROTO_PGM},
	{"IPPROTO_DIVERT", IPPROTO_DIVERT},
	{"IPPROTO_RAW", IPPROTO_RAW},
	{"IPPROTO_MAX", IPPROTO_MAX},
	{"IPPROTO_DONE", IPPROTO_DONE},
	{"IPPROTO_MAXID", IPPROTO_MAXID},
	{NULL, 0}
};

