xref: /freebsd/sys/contrib/ncsw/inc/net_ext.h (revision c2c014f24c10f90d85126ac5fbd4d8524de32b1c)
1*852ba100SJustin Hibbits /*
2*852ba100SJustin Hibbits  * Copyright 2008-2012 Freescale Semiconductor Inc.
30aeed3e9SJustin Hibbits  *
40aeed3e9SJustin Hibbits  * Redistribution and use in source and binary forms, with or without
50aeed3e9SJustin Hibbits  * modification, are permitted provided that the following conditions are met:
60aeed3e9SJustin Hibbits  *     * Redistributions of source code must retain the above copyright
70aeed3e9SJustin Hibbits  *       notice, this list of conditions and the following disclaimer.
80aeed3e9SJustin Hibbits  *     * Redistributions in binary form must reproduce the above copyright
90aeed3e9SJustin Hibbits  *       notice, this list of conditions and the following disclaimer in the
100aeed3e9SJustin Hibbits  *       documentation and/or other materials provided with the distribution.
110aeed3e9SJustin Hibbits  *     * Neither the name of Freescale Semiconductor nor the
120aeed3e9SJustin Hibbits  *       names of its contributors may be used to endorse or promote products
130aeed3e9SJustin Hibbits  *       derived from this software without specific prior written permission.
140aeed3e9SJustin Hibbits  *
150aeed3e9SJustin Hibbits  *
160aeed3e9SJustin Hibbits  * ALTERNATIVELY, this software may be distributed under the terms of the
170aeed3e9SJustin Hibbits  * GNU General Public License ("GPL") as published by the Free Software
180aeed3e9SJustin Hibbits  * Foundation, either version 2 of that License or (at your option) any
190aeed3e9SJustin Hibbits  * later version.
200aeed3e9SJustin Hibbits  *
210aeed3e9SJustin Hibbits  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
220aeed3e9SJustin Hibbits  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
230aeed3e9SJustin Hibbits  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
240aeed3e9SJustin Hibbits  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
250aeed3e9SJustin Hibbits  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
260aeed3e9SJustin Hibbits  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
270aeed3e9SJustin Hibbits  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
280aeed3e9SJustin Hibbits  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
290aeed3e9SJustin Hibbits  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
300aeed3e9SJustin Hibbits  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
310aeed3e9SJustin Hibbits  */
320aeed3e9SJustin Hibbits 
33*852ba100SJustin Hibbits 
340aeed3e9SJustin Hibbits /**************************************************************************//**
350aeed3e9SJustin Hibbits  @File          net_ext.h
360aeed3e9SJustin Hibbits 
370aeed3e9SJustin Hibbits  @Description   This file contains common and general netcomm headers definitions.
380aeed3e9SJustin Hibbits *//***************************************************************************/
390aeed3e9SJustin Hibbits #ifndef __NET_EXT_H
400aeed3e9SJustin Hibbits #define __NET_EXT_H
410aeed3e9SJustin Hibbits 
420aeed3e9SJustin Hibbits #include "std_ext.h"
430aeed3e9SJustin Hibbits 
440aeed3e9SJustin Hibbits 
450aeed3e9SJustin Hibbits typedef uint8_t headerFieldPpp_t;
460aeed3e9SJustin Hibbits 
470aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPP_PID                        (1)
480aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPP_COMPRESSED                 (NET_HEADER_FIELD_PPP_PID << 1)
490aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPP_ALL_FIELDS                 ((NET_HEADER_FIELD_PPP_PID << 2) - 1)
500aeed3e9SJustin Hibbits 
510aeed3e9SJustin Hibbits 
520aeed3e9SJustin Hibbits typedef uint8_t headerFieldPppoe_t;
530aeed3e9SJustin Hibbits 
540aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPoE_VER                      (1)
550aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPoE_TYPE                     (NET_HEADER_FIELD_PPPoE_VER << 1)
560aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPoE_CODE                     (NET_HEADER_FIELD_PPPoE_VER << 2)
570aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPoE_SID                      (NET_HEADER_FIELD_PPPoE_VER << 3)
580aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPoE_LEN                      (NET_HEADER_FIELD_PPPoE_VER << 4)
590aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPoE_SESSION                  (NET_HEADER_FIELD_PPPoE_VER << 5)
600aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPoE_PID                      (NET_HEADER_FIELD_PPPoE_VER << 6)
610aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPoE_ALL_FIELDS               ((NET_HEADER_FIELD_PPPoE_VER << 7) - 1)
620aeed3e9SJustin Hibbits 
630aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPMUX_PID                     (1)
640aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPMUX_CKSUM                   (NET_HEADER_FIELD_PPPMUX_PID << 1)
650aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPMUX_COMPRESSED              (NET_HEADER_FIELD_PPPMUX_PID << 2)
660aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPMUX_ALL_FIELDS              ((NET_HEADER_FIELD_PPPMUX_PID << 3) - 1)
670aeed3e9SJustin Hibbits 
680aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF            (1)
690aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPMUX_SUBFRAME_LXT            (NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF << 1)
700aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPMUX_SUBFRAME_LEN            (NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF << 2)
710aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPMUX_SUBFRAME_PID            (NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF << 3)
720aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPMUX_SUBFRAME_USE_PID        (NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF << 4)
730aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PPPMUX_SUBFRAME_ALL_FIELDS     ((NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF << 5) - 1)
740aeed3e9SJustin Hibbits 
750aeed3e9SJustin Hibbits 
760aeed3e9SJustin Hibbits typedef uint8_t headerFieldEth_t;
770aeed3e9SJustin Hibbits 
780aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ETH_DA                         (1)
790aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ETH_SA                         (NET_HEADER_FIELD_ETH_DA << 1)
800aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ETH_LENGTH                     (NET_HEADER_FIELD_ETH_DA << 2)
810aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ETH_TYPE                       (NET_HEADER_FIELD_ETH_DA << 3)
820aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ETH_FINAL_CKSUM                (NET_HEADER_FIELD_ETH_DA << 4)
830aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ETH_PADDING                    (NET_HEADER_FIELD_ETH_DA << 5)
840aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ETH_ALL_FIELDS                 ((NET_HEADER_FIELD_ETH_DA << 6) - 1)
850aeed3e9SJustin Hibbits 
86*852ba100SJustin Hibbits #define NET_HEADER_FIELD_ETH_ADDR_SIZE                 6
87*852ba100SJustin Hibbits 
88*852ba100SJustin Hibbits typedef uint16_t headerFieldIp_t;
89*852ba100SJustin Hibbits 
90*852ba100SJustin Hibbits #define NET_HEADER_FIELD_IP_VER                         (1)
91*852ba100SJustin Hibbits #define NET_HEADER_FIELD_IP_DSCP                        (NET_HEADER_FIELD_IP_VER << 2)
92*852ba100SJustin Hibbits #define NET_HEADER_FIELD_IP_ECN                         (NET_HEADER_FIELD_IP_VER << 3)
93*852ba100SJustin Hibbits #define NET_HEADER_FIELD_IP_PROTO                       (NET_HEADER_FIELD_IP_VER << 4)
94*852ba100SJustin Hibbits 
95*852ba100SJustin Hibbits #define NET_HEADER_FIELD_IP_PROTO_SIZE                  1
960aeed3e9SJustin Hibbits 
970aeed3e9SJustin Hibbits typedef uint16_t headerFieldIpv4_t;
980aeed3e9SJustin Hibbits 
990aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_VER                       (1)
1000aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_HDR_LEN                   (NET_HEADER_FIELD_IPv4_VER << 1)
1010aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_TOS                       (NET_HEADER_FIELD_IPv4_VER << 2)
1020aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_TOTAL_LEN                 (NET_HEADER_FIELD_IPv4_VER << 3)
1030aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_ID                        (NET_HEADER_FIELD_IPv4_VER << 4)
1040aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_FLAG_D                    (NET_HEADER_FIELD_IPv4_VER << 5)
1050aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_FLAG_M                    (NET_HEADER_FIELD_IPv4_VER << 6)
1060aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_OFFSET                    (NET_HEADER_FIELD_IPv4_VER << 7)
1070aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_TTL                       (NET_HEADER_FIELD_IPv4_VER << 8)
1080aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_PROTO                     (NET_HEADER_FIELD_IPv4_VER << 9)
1090aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_CKSUM                     (NET_HEADER_FIELD_IPv4_VER << 10)
1100aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_SRC_IP                    (NET_HEADER_FIELD_IPv4_VER << 11)
1110aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_DST_IP                    (NET_HEADER_FIELD_IPv4_VER << 12)
1120aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_OPTS                      (NET_HEADER_FIELD_IPv4_VER << 13)
1130aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_OPTS_COUNT                (NET_HEADER_FIELD_IPv4_VER << 14)
1140aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv4_ALL_FIELDS                ((NET_HEADER_FIELD_IPv4_VER << 15) - 1)
1150aeed3e9SJustin Hibbits 
116*852ba100SJustin Hibbits #define NET_HEADER_FIELD_IPv4_ADDR_SIZE                 4
117*852ba100SJustin Hibbits #define NET_HEADER_FIELD_IPv4_PROTO_SIZE                1
118*852ba100SJustin Hibbits 
1190aeed3e9SJustin Hibbits 
1200aeed3e9SJustin Hibbits typedef uint8_t headerFieldIpv6_t;
1210aeed3e9SJustin Hibbits 
1220aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv6_VER                       (1)
1230aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv6_TC                        (NET_HEADER_FIELD_IPv6_VER << 1)
1240aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv6_SRC_IP                    (NET_HEADER_FIELD_IPv6_VER << 2)
1250aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv6_DST_IP                    (NET_HEADER_FIELD_IPv6_VER << 3)
1260aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv6_NEXT_HDR                  (NET_HEADER_FIELD_IPv6_VER << 4)
1270aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv6_FL                        (NET_HEADER_FIELD_IPv6_VER << 5)
1280aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv6_HOP_LIMIT                 (NET_HEADER_FIELD_IPv6_VER << 6)
1290aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPv6_ALL_FIELDS                ((NET_HEADER_FIELD_IPv6_VER << 7) - 1)
1300aeed3e9SJustin Hibbits 
131*852ba100SJustin Hibbits #define NET_HEADER_FIELD_IPv6_ADDR_SIZE                 16
132*852ba100SJustin Hibbits #define NET_HEADER_FIELD_IPv6_NEXT_HDR_SIZE             1
133*852ba100SJustin Hibbits 
1340aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ICMP_TYPE                      (1)
1350aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ICMP_CODE                      (NET_HEADER_FIELD_ICMP_TYPE << 1)
1360aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ICMP_CKSUM                     (NET_HEADER_FIELD_ICMP_TYPE << 2)
1370aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ICMP_ID                        (NET_HEADER_FIELD_ICMP_TYPE << 3)
1380aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ICMP_SQ_NUM                    (NET_HEADER_FIELD_ICMP_TYPE << 4)
1390aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ICMP_ALL_FIELDS                ((NET_HEADER_FIELD_ICMP_TYPE << 5) - 1)
1400aeed3e9SJustin Hibbits 
141*852ba100SJustin Hibbits #define NET_HEADER_FIELD_ICMP_CODE_SIZE                 1
142*852ba100SJustin Hibbits #define NET_HEADER_FIELD_ICMP_TYPE_SIZE                 1
143*852ba100SJustin Hibbits 
1440aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IGMP_VERSION                   (1)
1450aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IGMP_TYPE                      (NET_HEADER_FIELD_IGMP_VERSION << 1)
1460aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IGMP_CKSUM                     (NET_HEADER_FIELD_IGMP_VERSION << 2)
1470aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IGMP_DATA                      (NET_HEADER_FIELD_IGMP_VERSION << 3)
1480aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IGMP_ALL_FIELDS                ((NET_HEADER_FIELD_IGMP_VERSION << 4) - 1)
1490aeed3e9SJustin Hibbits 
1500aeed3e9SJustin Hibbits 
1510aeed3e9SJustin Hibbits typedef uint16_t headerFieldTcp_t;
1520aeed3e9SJustin Hibbits 
1530aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_PORT_SRC                   (1)
1540aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_PORT_DST                   (NET_HEADER_FIELD_TCP_PORT_SRC << 1)
1550aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_SEQ                        (NET_HEADER_FIELD_TCP_PORT_SRC << 2)
1560aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_ACK                        (NET_HEADER_FIELD_TCP_PORT_SRC << 3)
1570aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_OFFSET                     (NET_HEADER_FIELD_TCP_PORT_SRC << 4)
1580aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_FLAGS                      (NET_HEADER_FIELD_TCP_PORT_SRC << 5)
1590aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_WINDOW                     (NET_HEADER_FIELD_TCP_PORT_SRC << 6)
1600aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_CKSUM                      (NET_HEADER_FIELD_TCP_PORT_SRC << 7)
1610aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_URGPTR                     (NET_HEADER_FIELD_TCP_PORT_SRC << 8)
1620aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_OPTS                       (NET_HEADER_FIELD_TCP_PORT_SRC << 9)
1630aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_OPTS_COUNT                 (NET_HEADER_FIELD_TCP_PORT_SRC << 10)
1640aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_TCP_ALL_FIELDS                 ((NET_HEADER_FIELD_TCP_PORT_SRC << 11) - 1)
1650aeed3e9SJustin Hibbits 
166*852ba100SJustin Hibbits #define NET_HEADER_FIELD_TCP_PORT_SIZE                  2
167*852ba100SJustin Hibbits 
1680aeed3e9SJustin Hibbits 
1690aeed3e9SJustin Hibbits typedef uint8_t headerFieldSctp_t;
1700aeed3e9SJustin Hibbits 
1710aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_PORT_SRC                  (1)
1720aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_PORT_DST                  (NET_HEADER_FIELD_SCTP_PORT_SRC << 1)
1730aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_VER_TAG                   (NET_HEADER_FIELD_SCTP_PORT_SRC << 2)
1740aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CKSUM                     (NET_HEADER_FIELD_SCTP_PORT_SRC << 3)
1750aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_ALL_FIELDS                ((NET_HEADER_FIELD_SCTP_PORT_SRC << 4) - 1)
1760aeed3e9SJustin Hibbits 
177*852ba100SJustin Hibbits #define NET_HEADER_FIELD_SCTP_PORT_SIZE                 2
1780aeed3e9SJustin Hibbits 
1790aeed3e9SJustin Hibbits typedef uint8_t headerFieldDccp_t;
1800aeed3e9SJustin Hibbits 
1810aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_DCCP_PORT_SRC                  (1)
1820aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_DCCP_PORT_DST                  (NET_HEADER_FIELD_DCCP_PORT_SRC << 1)
1830aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_DCCP_ALL_FIELDS                ((NET_HEADER_FIELD_DCCP_PORT_SRC << 2) - 1)
1840aeed3e9SJustin Hibbits 
185*852ba100SJustin Hibbits #define NET_HEADER_FIELD_DCCP_PORT_SIZE                 2
186*852ba100SJustin Hibbits 
1870aeed3e9SJustin Hibbits 
1880aeed3e9SJustin Hibbits typedef uint8_t headerFieldUdp_t;
1890aeed3e9SJustin Hibbits 
1900aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_PORT_SRC                   (1)
1910aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_PORT_DST                   (NET_HEADER_FIELD_UDP_PORT_SRC << 1)
1920aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_LEN                        (NET_HEADER_FIELD_UDP_PORT_SRC << 2)
1930aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_CKSUM                      (NET_HEADER_FIELD_UDP_PORT_SRC << 3)
1940aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_ALL_FIELDS                 ((NET_HEADER_FIELD_UDP_PORT_SRC << 4) - 1)
1950aeed3e9SJustin Hibbits 
196*852ba100SJustin Hibbits #define NET_HEADER_FIELD_UDP_PORT_SIZE                  2
197*852ba100SJustin Hibbits 
198*852ba100SJustin Hibbits typedef uint8_t headerFieldUdpLite_t;
199*852ba100SJustin Hibbits 
200*852ba100SJustin Hibbits #define NET_HEADER_FIELD_UDP_LITE_PORT_SRC              (1)
201*852ba100SJustin Hibbits #define NET_HEADER_FIELD_UDP_LITE_PORT_DST              (NET_HEADER_FIELD_UDP_LITE_PORT_SRC << 1)
202*852ba100SJustin Hibbits #define NET_HEADER_FIELD_UDP_LITE_ALL_FIELDS            ((NET_HEADER_FIELD_UDP_LITE_PORT_SRC << 2) - 1)
203*852ba100SJustin Hibbits 
204*852ba100SJustin Hibbits #define NET_HEADER_FIELD_UDP_LITE_PORT_SIZE             2
205*852ba100SJustin Hibbits 
2060aeed3e9SJustin Hibbits typedef uint8_t headerFieldUdpEncapEsp_t;
2070aeed3e9SJustin Hibbits 
2080aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC         (1)
2090aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_DST         (NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 1)
2100aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_ENCAP_ESP_LEN              (NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 2)
2110aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_ENCAP_ESP_CKSUM            (NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 3)
2120aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_ENCAP_ESP_SPI              (NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 4)
2130aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_ENCAP_ESP_SEQUENCE_NUM     (NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 5)
2140aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_UDP_ENCAP_ESP_ALL_FIELDS       ((NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 6) - 1)
2150aeed3e9SJustin Hibbits 
216*852ba100SJustin Hibbits #define NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SIZE        2
217*852ba100SJustin Hibbits #define NET_HEADER_FIELD_UDP_ENCAP_ESP_SPI_SIZE         4
218*852ba100SJustin Hibbits 
2190aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPHC_CID                       (1)
2200aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPHC_CID_TYPE                  (NET_HEADER_FIELD_IPHC_CID << 1)
2210aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPHC_HCINDEX                   (NET_HEADER_FIELD_IPHC_CID << 2)
2220aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPHC_GEN                       (NET_HEADER_FIELD_IPHC_CID << 3)
2230aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPHC_D_BIT                     (NET_HEADER_FIELD_IPHC_CID << 4)
2240aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPHC_ALL_FIELDS                ((NET_HEADER_FIELD_IPHC_CID << 5) - 1)
2250aeed3e9SJustin Hibbits 
2260aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE           (1)
2270aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_FLAGS          (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 1)
2280aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_LENGTH         (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 2)
2290aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_TSN            (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 3)
2300aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_STREAM_ID      (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 4)
2310aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_STREAM_SQN     (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 5)
2320aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_PAYLOAD_PID    (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 6)
2330aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_UNORDERED      (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 7)
2340aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_BEGGINING      (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 8)
2350aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_END            (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 9)
2360aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SCTP_CHUNK_DATA_ALL_FIELDS     ((NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 10) - 1)
2370aeed3e9SJustin Hibbits 
2380aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_TYPE_BIT                (1)
2390aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_LENGTH_BIT              (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 1)
2400aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_SEQUENCE_BIT            (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 2)
2410aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_OFFSET_BIT              (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 3)
2420aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_PRIORITY_BIT            (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 4)
2430aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_VERSION                 (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 5)
2440aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_LEN                     (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 6)
2450aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_TUNNEL_ID               (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 7)
2460aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_SESSION_ID              (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 8)
2470aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_NS                      (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 9)
2480aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_NR                      (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 10)
2490aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_OFFSET_SIZE             (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 11)
2500aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_FIRST_BYTE              (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 12)
2510aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv2_ALL_FIELDS              ((NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 13) - 1)
2520aeed3e9SJustin Hibbits 
2530aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT           (1)
2540aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_CTRL_LENGTH_BIT         (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 1)
2550aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_CTRL_SEQUENCE_BIT       (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 2)
2560aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_CTRL_VERSION            (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 3)
2570aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_CTRL_LENGTH             (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 4)
2580aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_CTRL_CONTROL            (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 5)
2590aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_CTRL_SENT               (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 6)
2600aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_CTRL_RECV               (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 7)
2610aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_CTRL_FIRST_BYTE         (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 8)
2620aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_CTRL_ALL_FIELDS         ((NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 9) - 1)
2630aeed3e9SJustin Hibbits 
2640aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_SESS_TYPE_BIT           (1)
2650aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_SESS_VERSION            (NET_HEADER_FIELD_L2TPv3_SESS_TYPE_BIT << 1)
2660aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_SESS_ID                 (NET_HEADER_FIELD_L2TPv3_SESS_TYPE_BIT << 2)
2670aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_SESS_COOKIE             (NET_HEADER_FIELD_L2TPv3_SESS_TYPE_BIT << 3)
2680aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_L2TPv3_SESS_ALL_FIELDS         ((NET_HEADER_FIELD_L2TPv3_SESS_TYPE_BIT << 4) - 1)
2690aeed3e9SJustin Hibbits 
2700aeed3e9SJustin Hibbits 
2710aeed3e9SJustin Hibbits typedef uint8_t headerFieldVlan_t;
2720aeed3e9SJustin Hibbits 
2730aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_VLAN_VPRI                      (1)
2740aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_VLAN_CFI                       (NET_HEADER_FIELD_VLAN_VPRI << 1)
2750aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_VLAN_VID                       (NET_HEADER_FIELD_VLAN_VPRI << 2)
2760aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_VLAN_LENGTH                    (NET_HEADER_FIELD_VLAN_VPRI << 3)
2770aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_VLAN_TYPE                      (NET_HEADER_FIELD_VLAN_VPRI << 4)
2780aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_VLAN_ALL_FIELDS                ((NET_HEADER_FIELD_VLAN_VPRI << 5) - 1)
2790aeed3e9SJustin Hibbits 
2800aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_VLAN_TCI                       (NET_HEADER_FIELD_VLAN_VPRI | \
2810aeed3e9SJustin Hibbits                                                          NET_HEADER_FIELD_VLAN_CFI | \
2820aeed3e9SJustin Hibbits                                                          NET_HEADER_FIELD_VLAN_VID)
2830aeed3e9SJustin Hibbits 
2840aeed3e9SJustin Hibbits 
2850aeed3e9SJustin Hibbits typedef uint8_t headerFieldLlc_t;
2860aeed3e9SJustin Hibbits 
2870aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_LLC_DSAP                       (1)
2880aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_LLC_SSAP                       (NET_HEADER_FIELD_LLC_DSAP << 1)
2890aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_LLC_CTRL                       (NET_HEADER_FIELD_LLC_DSAP << 2)
2900aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_LLC_ALL_FIELDS                 ((NET_HEADER_FIELD_LLC_DSAP << 3) - 1)
2910aeed3e9SJustin Hibbits 
2920aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_NLPID_NLPID                    (1)
2930aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_NLPID_ALL_FIELDS               ((NET_HEADER_FIELD_NLPID_NLPID << 1) - 1)
2940aeed3e9SJustin Hibbits 
2950aeed3e9SJustin Hibbits 
2960aeed3e9SJustin Hibbits typedef uint8_t headerFieldSnap_t;
2970aeed3e9SJustin Hibbits 
2980aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SNAP_OUI                       (1)
2990aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SNAP_PID                       (NET_HEADER_FIELD_SNAP_OUI << 1)
3000aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_SNAP_ALL_FIELDS                ((NET_HEADER_FIELD_SNAP_OUI << 2) - 1)
3010aeed3e9SJustin Hibbits 
3020aeed3e9SJustin Hibbits 
3030aeed3e9SJustin Hibbits typedef uint8_t headerFieldLlcSnap_t;
3040aeed3e9SJustin Hibbits 
3050aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_LLC_SNAP_TYPE                  (1)
3060aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_LLC_SNAP_ALL_FIELDS            ((NET_HEADER_FIELD_LLC_SNAP_TYPE << 1) - 1)
3070aeed3e9SJustin Hibbits 
3080aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ARP_HTYPE                      (1)
3090aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ARP_PTYPE                      (NET_HEADER_FIELD_ARP_HTYPE << 1)
3100aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ARP_HLEN                       (NET_HEADER_FIELD_ARP_HTYPE << 2)
3110aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ARP_PLEN                       (NET_HEADER_FIELD_ARP_HTYPE << 3)
3120aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ARP_OPER                       (NET_HEADER_FIELD_ARP_HTYPE << 4)
3130aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ARP_SHA                        (NET_HEADER_FIELD_ARP_HTYPE << 5)
3140aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ARP_SPA                        (NET_HEADER_FIELD_ARP_HTYPE << 6)
3150aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ARP_THA                        (NET_HEADER_FIELD_ARP_HTYPE << 7)
3160aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ARP_TPA                        (NET_HEADER_FIELD_ARP_HTYPE << 8)
3170aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_ARP_ALL_FIELDS                 ((NET_HEADER_FIELD_ARP_HTYPE << 9) - 1)
3180aeed3e9SJustin Hibbits 
3190aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_RFC2684_LLC                    (1)
3200aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_RFC2684_NLPID                  (NET_HEADER_FIELD_RFC2684_LLC << 1)
3210aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_RFC2684_OUI                    (NET_HEADER_FIELD_RFC2684_LLC << 2)
3220aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_RFC2684_PID                    (NET_HEADER_FIELD_RFC2684_LLC << 3)
3230aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_RFC2684_VPN_OUI                (NET_HEADER_FIELD_RFC2684_LLC << 4)
3240aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_RFC2684_VPN_IDX                (NET_HEADER_FIELD_RFC2684_LLC << 5)
3250aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_RFC2684_ALL_FIELDS             ((NET_HEADER_FIELD_RFC2684_LLC << 6) - 1)
3260aeed3e9SJustin Hibbits 
3270aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_USER_DEFINED_SRCPORT           (1)
3280aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_USER_DEFINED_PCDID             (NET_HEADER_FIELD_USER_DEFINED_SRCPORT << 1)
3290aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_USER_DEFINED_ALL_FIELDS        ((NET_HEADER_FIELD_USER_DEFINED_SRCPORT << 2) - 1)
3300aeed3e9SJustin Hibbits 
3310aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PAYLOAD_BUFFER                 (1)
3320aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PAYLOAD_SIZE                   (NET_HEADER_FIELD_PAYLOAD_BUFFER << 1)
3330aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_MAX_FRM_SIZE                   (NET_HEADER_FIELD_PAYLOAD_BUFFER << 2)
3340aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_MIN_FRM_SIZE                   (NET_HEADER_FIELD_PAYLOAD_BUFFER << 3)
3350aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PAYLOAD_TYPE                   (NET_HEADER_FIELD_PAYLOAD_BUFFER << 4)
3360aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_FRAME_SIZE                     (NET_HEADER_FIELD_PAYLOAD_BUFFER << 5)
3370aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_PAYLOAD_ALL_FIELDS             ((NET_HEADER_FIELD_PAYLOAD_BUFFER << 6) - 1)
3380aeed3e9SJustin Hibbits 
3390aeed3e9SJustin Hibbits 
3400aeed3e9SJustin Hibbits typedef uint8_t headerFieldGre_t;
3410aeed3e9SJustin Hibbits 
3420aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_GRE_TYPE                       (1)
3430aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_GRE_ALL_FIELDS                 ((NET_HEADER_FIELD_GRE_TYPE << 1) - 1)
3440aeed3e9SJustin Hibbits 
3450aeed3e9SJustin Hibbits 
3460aeed3e9SJustin Hibbits typedef uint8_t headerFieldMinencap_t;
3470aeed3e9SJustin Hibbits 
3480aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_MINENCAP_SRC_IP                (1)
3490aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_MINENCAP_DST_IP                (NET_HEADER_FIELD_MINENCAP_SRC_IP << 1)
3500aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_MINENCAP_TYPE                  (NET_HEADER_FIELD_MINENCAP_SRC_IP << 2)
3510aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_MINENCAP_ALL_FIELDS            ((NET_HEADER_FIELD_MINENCAP_SRC_IP << 3) - 1)
3520aeed3e9SJustin Hibbits 
3530aeed3e9SJustin Hibbits 
3540aeed3e9SJustin Hibbits typedef uint8_t headerFieldIpsecAh_t;
3550aeed3e9SJustin Hibbits 
3560aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPSEC_AH_SPI                   (1)
3570aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPSEC_AH_NH                    (NET_HEADER_FIELD_IPSEC_AH_SPI << 1)
3580aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPSEC_AH_ALL_FIELDS            ((NET_HEADER_FIELD_IPSEC_AH_SPI << 2) - 1)
3590aeed3e9SJustin Hibbits 
3600aeed3e9SJustin Hibbits 
3610aeed3e9SJustin Hibbits typedef uint8_t headerFieldIpsecEsp_t;
3620aeed3e9SJustin Hibbits 
3630aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPSEC_ESP_SPI                  (1)
3640aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPSEC_ESP_SEQUENCE_NUM         (NET_HEADER_FIELD_IPSEC_ESP_SPI << 1)
3650aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_IPSEC_ESP_ALL_FIELDS           ((NET_HEADER_FIELD_IPSEC_ESP_SPI << 2) - 1)
3660aeed3e9SJustin Hibbits 
367*852ba100SJustin Hibbits #define NET_HEADER_FIELD_IPSEC_ESP_SPI_SIZE             4
368*852ba100SJustin Hibbits 
3690aeed3e9SJustin Hibbits 
3700aeed3e9SJustin Hibbits typedef uint8_t headerFieldMpls_t;
3710aeed3e9SJustin Hibbits 
3720aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_MPLS_LABEL_STACK               (1)
3730aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_MPLS_LABEL_STACK_ALL_FIELDS    ((NET_HEADER_FIELD_MPLS_LABEL_STACK << 1) - 1)
3740aeed3e9SJustin Hibbits 
3750aeed3e9SJustin Hibbits 
3760aeed3e9SJustin Hibbits typedef uint8_t headerFieldMacsec_t;
3770aeed3e9SJustin Hibbits 
3780aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_MACSEC_SECTAG                  (1)
3790aeed3e9SJustin Hibbits #define NET_HEADER_FIELD_MACSEC_ALL_FIELDS              ((NET_HEADER_FIELD_MACSEC_SECTAG << 1) - 1)
3800aeed3e9SJustin Hibbits 
3810aeed3e9SJustin Hibbits 
3820aeed3e9SJustin Hibbits typedef enum {
3830aeed3e9SJustin Hibbits     HEADER_TYPE_NONE = 0,
3840aeed3e9SJustin Hibbits     HEADER_TYPE_PAYLOAD,
3850aeed3e9SJustin Hibbits     HEADER_TYPE_ETH,
3860aeed3e9SJustin Hibbits     HEADER_TYPE_VLAN,
3870aeed3e9SJustin Hibbits     HEADER_TYPE_IPv4,
3880aeed3e9SJustin Hibbits     HEADER_TYPE_IPv6,
389*852ba100SJustin Hibbits     HEADER_TYPE_IP,
3900aeed3e9SJustin Hibbits     HEADER_TYPE_TCP,
3910aeed3e9SJustin Hibbits     HEADER_TYPE_UDP,
392*852ba100SJustin Hibbits     HEADER_TYPE_UDP_LITE,
3930aeed3e9SJustin Hibbits     HEADER_TYPE_IPHC,
3940aeed3e9SJustin Hibbits     HEADER_TYPE_SCTP,
3950aeed3e9SJustin Hibbits     HEADER_TYPE_SCTP_CHUNK_DATA,
3960aeed3e9SJustin Hibbits     HEADER_TYPE_PPPoE,
3970aeed3e9SJustin Hibbits     HEADER_TYPE_PPP,
3980aeed3e9SJustin Hibbits     HEADER_TYPE_PPPMUX,
3990aeed3e9SJustin Hibbits     HEADER_TYPE_PPPMUX_SUBFRAME,
4000aeed3e9SJustin Hibbits     HEADER_TYPE_L2TPv2,
4010aeed3e9SJustin Hibbits     HEADER_TYPE_L2TPv3_CTRL,
4020aeed3e9SJustin Hibbits     HEADER_TYPE_L2TPv3_SESS,
4030aeed3e9SJustin Hibbits     HEADER_TYPE_LLC,
4040aeed3e9SJustin Hibbits     HEADER_TYPE_LLC_SNAP,
4050aeed3e9SJustin Hibbits     HEADER_TYPE_NLPID,
4060aeed3e9SJustin Hibbits     HEADER_TYPE_SNAP,
4070aeed3e9SJustin Hibbits     HEADER_TYPE_MPLS,
4080aeed3e9SJustin Hibbits     HEADER_TYPE_IPSEC_AH,
4090aeed3e9SJustin Hibbits     HEADER_TYPE_IPSEC_ESP,
4100aeed3e9SJustin Hibbits     HEADER_TYPE_UDP_ENCAP_ESP, /* RFC 3948 */
4110aeed3e9SJustin Hibbits     HEADER_TYPE_MACSEC,
4120aeed3e9SJustin Hibbits     HEADER_TYPE_GRE,
4130aeed3e9SJustin Hibbits     HEADER_TYPE_MINENCAP,
4140aeed3e9SJustin Hibbits     HEADER_TYPE_DCCP,
4150aeed3e9SJustin Hibbits     HEADER_TYPE_ICMP,
4160aeed3e9SJustin Hibbits     HEADER_TYPE_IGMP,
4170aeed3e9SJustin Hibbits     HEADER_TYPE_ARP,
4180aeed3e9SJustin Hibbits     HEADER_TYPE_CAPWAP,
4190aeed3e9SJustin Hibbits     HEADER_TYPE_CAPWAP_DTLS,
4200aeed3e9SJustin Hibbits     HEADER_TYPE_RFC2684,
4210aeed3e9SJustin Hibbits     HEADER_TYPE_USER_DEFINED_L2,
4220aeed3e9SJustin Hibbits     HEADER_TYPE_USER_DEFINED_L3,
4230aeed3e9SJustin Hibbits     HEADER_TYPE_USER_DEFINED_L4,
4240aeed3e9SJustin Hibbits     HEADER_TYPE_USER_DEFINED_SHIM1,
4250aeed3e9SJustin Hibbits     HEADER_TYPE_USER_DEFINED_SHIM2,
4260aeed3e9SJustin Hibbits     MAX_HEADER_TYPE_COUNT
4270aeed3e9SJustin Hibbits } e_NetHeaderType;
4280aeed3e9SJustin Hibbits 
4290aeed3e9SJustin Hibbits 
4300aeed3e9SJustin Hibbits #endif /* __NET_EXT_H */
431