1*2ffc1057SHemant Agrawal /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0) 2*2ffc1057SHemant Agrawal * Copyright 2008-2012 Freescale Semiconductor Inc. 3*2ffc1057SHemant Agrawal * Copyright 2017-2019 NXP 4*2ffc1057SHemant Agrawal */ 5*2ffc1057SHemant Agrawal 6*2ffc1057SHemant Agrawal #ifndef __NET_EXT_H 7*2ffc1057SHemant Agrawal #define __NET_EXT_H 8*2ffc1057SHemant Agrawal 9*2ffc1057SHemant Agrawal #include "ncsw_ext.h" 10*2ffc1057SHemant Agrawal 11*2ffc1057SHemant Agrawal /* 12*2ffc1057SHemant Agrawal * @Description This file contains common and general netcomm headers 13*2ffc1057SHemant Agrawal * definitions. 14*2ffc1057SHemant Agrawal */ 15*2ffc1057SHemant Agrawal 16*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_ppp_t; 17*2ffc1057SHemant Agrawal 18*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPP_PID (1) 19*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPP_COMPRESSED (IOC_NET_HF_PPP_PID << 1) 20*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPP_ALL_FIELDS ((IOC_NET_HF_PPP_PID << 2) - 1) 21*2ffc1057SHemant Agrawal 22*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_pppoe_t; 23*2ffc1057SHemant Agrawal 24*2ffc1057SHemant Agrawal #define ioc_net_hf_pppo_e_ver (1) 25*2ffc1057SHemant Agrawal #define ioc_net_hf_pppo_e_type (ioc_net_hf_pppo_e_ver << 1) 26*2ffc1057SHemant Agrawal #define ioc_net_hf_pppo_e_code (ioc_net_hf_pppo_e_ver << 2) 27*2ffc1057SHemant Agrawal #define ioc_net_hf_pppo_e_sid (ioc_net_hf_pppo_e_ver << 3) 28*2ffc1057SHemant Agrawal #define ioc_net_hf_pppo_e_len (ioc_net_hf_pppo_e_ver << 4) 29*2ffc1057SHemant Agrawal #define ioc_net_hf_pppo_e_session (ioc_net_hf_pppo_e_ver << 5) 30*2ffc1057SHemant Agrawal #define ioc_net_hf_pppo_e_pid (ioc_net_hf_pppo_e_ver << 6) 31*2ffc1057SHemant Agrawal #define ioc_net_hf_pppo_e_all_fields ((ioc_net_hf_pppo_e_ver << 7) - 1) 32*2ffc1057SHemant Agrawal 33*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPPMUX_PID (1) 34*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPPMUX_CKSUM (IOC_NET_HF_PPPMUX_PID << 1) 35*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPPMUX_COMPRESSED (IOC_NET_HF_PPPMUX_PID << 2) 36*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPPMUX_ALL_FIELDS ((IOC_NET_HF_PPPMUX_PID << 3) - 1) 37*2ffc1057SHemant Agrawal 38*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPPMUX_SUBFRAME_PFF (1) 39*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPPMUX_SUBFRAME_LXT (IOC_NET_HF_PPPMUX_SUBFRAME_PFF << 1) 40*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPPMUX_SUBFRAME_LEN (IOC_NET_HF_PPPMUX_SUBFRAME_PFF << 2) 41*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPPMUX_SUBFRAME_PID (IOC_NET_HF_PPPMUX_SUBFRAME_PFF << 3) 42*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPPMUX_SUBFRAME_USE_PID \ 43*2ffc1057SHemant Agrawal (IOC_NET_HF_PPPMUX_SUBFRAME_PFF << 4) 44*2ffc1057SHemant Agrawal #define IOC_NET_HF_PPPMUX_SUBFRAME_ALL_FIELDS \ 45*2ffc1057SHemant Agrawal ((IOC_NET_HF_PPPMUX_SUBFRAME_PFF << 5) - 1) 46*2ffc1057SHemant Agrawal 47*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_eth_t; 48*2ffc1057SHemant Agrawal 49*2ffc1057SHemant Agrawal #define IOC_NET_HF_ETH_DA (1) 50*2ffc1057SHemant Agrawal #define IOC_NET_HF_ETH_SA (IOC_NET_HF_ETH_DA << 1) 51*2ffc1057SHemant Agrawal #define IOC_NET_HF_ETH_LENGTH (IOC_NET_HF_ETH_DA << 2) 52*2ffc1057SHemant Agrawal #define IOC_NET_HF_ETH_TYPE (IOC_NET_HF_ETH_DA << 3) 53*2ffc1057SHemant Agrawal #define IOC_NET_HF_ETH_FINAL_CKSUM (IOC_NET_HF_ETH_DA << 4) 54*2ffc1057SHemant Agrawal #define IOC_NET_HF_ETH_PADDING (IOC_NET_HF_ETH_DA << 5) 55*2ffc1057SHemant Agrawal #define IOC_NET_HF_ETH_ALL_FIELDS ((IOC_NET_HF_ETH_DA << 6) - 1) 56*2ffc1057SHemant Agrawal 57*2ffc1057SHemant Agrawal #define IOC_NET_HF_ETH_ADDR_SIZE 6 58*2ffc1057SHemant Agrawal 59*2ffc1057SHemant Agrawal typedef uint16_t ioc_header_field_ip_t; 60*2ffc1057SHemant Agrawal 61*2ffc1057SHemant Agrawal #define IOC_NET_HF_IP_VER (1) 62*2ffc1057SHemant Agrawal #define IOC_NET_HF_IP_DSCP (IOC_NET_HF_IP_VER << 2) 63*2ffc1057SHemant Agrawal #define IOC_NET_HF_IP_ECN (IOC_NET_HF_IP_VER << 3) 64*2ffc1057SHemant Agrawal #define IOC_NET_HF_IP_PROTO (IOC_NET_HF_IP_VER << 4) 65*2ffc1057SHemant Agrawal 66*2ffc1057SHemant Agrawal #define IOC_NET_HF_IP_PROTO_SIZE 1 67*2ffc1057SHemant Agrawal 68*2ffc1057SHemant Agrawal typedef uint16_t ioc_header_field_ipv4_t; 69*2ffc1057SHemant Agrawal 70*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_ver (1) 71*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_hdr_len (ioc_net_hf_ipv_4_ver << 1) 72*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_tos (ioc_net_hf_ipv_4_ver << 2) 73*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_total_len (ioc_net_hf_ipv_4_ver << 3) 74*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_id (ioc_net_hf_ipv_4_ver << 4) 75*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_flag_d (ioc_net_hf_ipv_4_ver << 5) 76*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_flag_m (ioc_net_hf_ipv_4_ver << 6) 77*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_offset (ioc_net_hf_ipv_4_ver << 7) 78*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_ttl (ioc_net_hf_ipv_4_ver << 8) 79*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_proto (ioc_net_hf_ipv_4_ver << 9) 80*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_cksum (ioc_net_hf_ipv_4_ver << 10) 81*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_src_ip (ioc_net_hf_ipv_4_ver << 11) 82*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_dst_ip (ioc_net_hf_ipv_4_ver << 12) 83*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_opts (ioc_net_hf_ipv_4_ver << 13) 84*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_opts_COUNT (ioc_net_hf_ipv_4_ver << 14) 85*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_all_fields ((ioc_net_hf_ipv_4_ver << 15) - 1) 86*2ffc1057SHemant Agrawal 87*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_addr_size 4 88*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_4_proto_SIZE 1 89*2ffc1057SHemant Agrawal 90*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_ipv6_t; 91*2ffc1057SHemant Agrawal 92*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_6_ver (1) 93*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_6_tc (ioc_net_hf_ipv_6_ver << 1) 94*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_6_src_ip (ioc_net_hf_ipv_6_ver << 2) 95*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_6_dst_ip (ioc_net_hf_ipv_6_ver << 3) 96*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_6_next_hdr (ioc_net_hf_ipv_6_ver << 4) 97*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_6_fl (ioc_net_hf_ipv_6_ver << 5) 98*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_6_hop_limit (ioc_net_hf_ipv_6_ver << 6) 99*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_6_all_fields ((ioc_net_hf_ipv_6_ver << 7) - 1) 100*2ffc1057SHemant Agrawal 101*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv6_addr_size 16 102*2ffc1057SHemant Agrawal #define ioc_net_hf_ipv_6_next_hdr_SIZE 1 103*2ffc1057SHemant Agrawal 104*2ffc1057SHemant Agrawal #define IOC_NET_HF_ICMP_TYPE (1) 105*2ffc1057SHemant Agrawal #define IOC_NET_HF_ICMP_CODE (IOC_NET_HF_ICMP_TYPE << 1) 106*2ffc1057SHemant Agrawal #define IOC_NET_HF_ICMP_CKSUM (IOC_NET_HF_ICMP_TYPE << 2) 107*2ffc1057SHemant Agrawal #define IOC_NET_HF_ICMP_ID (IOC_NET_HF_ICMP_TYPE << 3) 108*2ffc1057SHemant Agrawal #define IOC_NET_HF_ICMP_SQ_NUM (IOC_NET_HF_ICMP_TYPE << 4) 109*2ffc1057SHemant Agrawal #define IOC_NET_HF_ICMP_ALL_FIELDS ((IOC_NET_HF_ICMP_TYPE << 5) - 1) 110*2ffc1057SHemant Agrawal 111*2ffc1057SHemant Agrawal #define IOC_NET_HF_ICMP_CODE_SIZE 1 112*2ffc1057SHemant Agrawal #define IOC_NET_HF_ICMP_TYPE_SIZE 1 113*2ffc1057SHemant Agrawal 114*2ffc1057SHemant Agrawal #define IOC_NET_HF_IGMP_VERSION (1) 115*2ffc1057SHemant Agrawal #define IOC_NET_HF_IGMP_TYPE (IOC_NET_HF_IGMP_VERSION << 1) 116*2ffc1057SHemant Agrawal #define IOC_NET_HF_IGMP_CKSUM (IOC_NET_HF_IGMP_VERSION << 2) 117*2ffc1057SHemant Agrawal #define IOC_NET_HF_IGMP_DATA (IOC_NET_HF_IGMP_VERSION << 3) 118*2ffc1057SHemant Agrawal #define IOC_NET_HF_IGMP_ALL_FIELDS ((IOC_NET_HF_IGMP_VERSION << 4) - 1) 119*2ffc1057SHemant Agrawal 120*2ffc1057SHemant Agrawal typedef uint16_t ioc_header_field_tcp_t; 121*2ffc1057SHemant Agrawal 122*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_PORT_SRC (1) 123*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_PORT_DST (IOC_NET_HF_TCP_PORT_SRC << 1) 124*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_SEQ (IOC_NET_HF_TCP_PORT_SRC << 2) 125*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_ACK (IOC_NET_HF_TCP_PORT_SRC << 3) 126*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_OFFSET (IOC_NET_HF_TCP_PORT_SRC << 4) 127*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_FLAGS (IOC_NET_HF_TCP_PORT_SRC << 5) 128*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_WINDOW (IOC_NET_HF_TCP_PORT_SRC << 6) 129*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_CKSUM (IOC_NET_HF_TCP_PORT_SRC << 7) 130*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_URGPTR (IOC_NET_HF_TCP_PORT_SRC << 8) 131*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_OPTS (IOC_NET_HF_TCP_PORT_SRC << 9) 132*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_OPTS_COUNT (IOC_NET_HF_TCP_PORT_SRC << 10) 133*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_ALL_FIELDS ((IOC_NET_HF_TCP_PORT_SRC << 11) - 1) 134*2ffc1057SHemant Agrawal 135*2ffc1057SHemant Agrawal #define IOC_NET_HF_TCP_PORT_SIZE 2 136*2ffc1057SHemant Agrawal 137*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_sctp_t; 138*2ffc1057SHemant Agrawal 139*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_PORT_SRC (1) 140*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_PORT_DST (IOC_NET_HF_SCTP_PORT_SRC << 1) 141*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_VER_TAG (IOC_NET_HF_SCTP_PORT_SRC << 2) 142*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CKSUM (IOC_NET_HF_SCTP_PORT_SRC << 3) 143*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_ALL_FIELDS ((IOC_NET_HF_SCTP_PORT_SRC << 4) - 1) 144*2ffc1057SHemant Agrawal 145*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_PORT_SIZE 2 146*2ffc1057SHemant Agrawal 147*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_dccp_t; 148*2ffc1057SHemant Agrawal 149*2ffc1057SHemant Agrawal #define IOC_NET_HF_DCCP_PORT_SRC (1) 150*2ffc1057SHemant Agrawal #define IOC_NET_HF_DCCP_PORT_DST (IOC_NET_HF_DCCP_PORT_SRC << 1) 151*2ffc1057SHemant Agrawal #define IOC_NET_HF_DCCP_ALL_FIELDS ((IOC_NET_HF_DCCP_PORT_SRC << 2) - 1) 152*2ffc1057SHemant Agrawal 153*2ffc1057SHemant Agrawal #define IOC_NET_HF_DCCP_PORT_SIZE 2 154*2ffc1057SHemant Agrawal 155*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_udp_t; 156*2ffc1057SHemant Agrawal 157*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_PORT_SRC (1) 158*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_PORT_DST (IOC_NET_HF_UDP_PORT_SRC << 1) 159*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_LEN (IOC_NET_HF_UDP_PORT_SRC << 2) 160*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_CKSUM (IOC_NET_HF_UDP_PORT_SRC << 3) 161*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_ALL_FIELDS ((IOC_NET_HF_UDP_PORT_SRC << 4) - 1) 162*2ffc1057SHemant Agrawal 163*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_PORT_SIZE 2 164*2ffc1057SHemant Agrawal 165*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_udp_lite_t; 166*2ffc1057SHemant Agrawal 167*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_LITE_PORT_SRC (1) 168*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_LITE_PORT_DST (IOC_NET_HF_UDP_LITE_PORT_SRC << 1) 169*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_LITE_ALL_FIELDS \ 170*2ffc1057SHemant Agrawal ((IOC_NET_HF_UDP_LITE_PORT_SRC << 2) - 1) 171*2ffc1057SHemant Agrawal 172*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_LITE_PORT_SIZE 2 173*2ffc1057SHemant Agrawal 174*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_udp_encap_esp_t; 175*2ffc1057SHemant Agrawal 176*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_ENCAP_ESP_PORT_SRC (1) 177*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_ENCAP_ESP_PORT_DST \ 178*2ffc1057SHemant Agrawal (IOC_NET_HF_UDP_ENCAP_ESP_PORT_SRC << 1) 179*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_ENCAP_ESP_LEN \ 180*2ffc1057SHemant Agrawal (IOC_NET_HF_UDP_ENCAP_ESP_PORT_SRC << 2) 181*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_ENCAP_ESP_CKSUM \ 182*2ffc1057SHemant Agrawal (IOC_NET_HF_UDP_ENCAP_ESP_PORT_SRC << 3) 183*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_ENCAP_ESP_SPI \ 184*2ffc1057SHemant Agrawal (IOC_NET_HF_UDP_ENCAP_ESP_PORT_SRC << 4) 185*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_ENCAP_ESP_SEQUENCE_NUM \ 186*2ffc1057SHemant Agrawal (IOC_NET_HF_UDP_ENCAP_ESP_PORT_SRC << 5) 187*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_ENCAP_ESP_ALL_FIELDS \ 188*2ffc1057SHemant Agrawal ((IOC_NET_HF_UDP_ENCAP_ESP_PORT_SRC << 6) - 1) 189*2ffc1057SHemant Agrawal 190*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_ENCAP_ESP_PORT_SIZE 2 191*2ffc1057SHemant Agrawal #define IOC_NET_HF_UDP_ENCAP_ESP_SPI_SIZE 4 192*2ffc1057SHemant Agrawal 193*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPHC_CID (1) 194*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPHC_CID_TYPE (IOC_NET_HF_IPHC_CID << 1) 195*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPHC_HCINDEX (IOC_NET_HF_IPHC_CID << 2) 196*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPHC_GEN (IOC_NET_HF_IPHC_CID << 3) 197*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPHC_D_BIT (IOC_NET_HF_IPHC_CID << 4) 198*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPHC_ALL_FIELDS ((IOC_NET_HF_IPHC_CID << 5) - 1) 199*2ffc1057SHemant Agrawal 200*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_TYPE (1) 201*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_FLAGS \ 202*2ffc1057SHemant Agrawal (IOC_NET_HF_SCTP_CHUNK_DATA_TYPE << 1) 203*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_LENGTH \ 204*2ffc1057SHemant Agrawal (IOC_NET_HF_SCTP_CHUNK_DATA_TYPE << 2) 205*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_TSN \ 206*2ffc1057SHemant Agrawal (IOC_NET_HF_SCTP_CHUNK_DATA_TYPE << 3) 207*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_STREAM_ID \ 208*2ffc1057SHemant Agrawal (IOC_NET_HF_SCTP_CHUNK_DATA_TYPE << 4) 209*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_STREAM_SQN \ 210*2ffc1057SHemant Agrawal (IOC_NET_HF_SCTP_CHUNK_DATA_TYPE << 5) 211*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_PAYLOAD_PID \ 212*2ffc1057SHemant Agrawal (IOC_NET_HF_SCTP_CHUNK_DATA_TYPE << 6) 213*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_UNORDERED \ 214*2ffc1057SHemant Agrawal (IOC_NET_HF_SCTP_CHUNK_DATA_TYPE << 7) 215*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_BEGINNING \ 216*2ffc1057SHemant Agrawal (IOC_NET_HF_SCTP_CHUNK_DATA_TYPE << 8) 217*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_END \ 218*2ffc1057SHemant Agrawal (IOC_NET_HF_SCTP_CHUNK_DATA_TYPE << 9) 219*2ffc1057SHemant Agrawal #define IOC_NET_HF_SCTP_CHUNK_DATA_ALL_FIELDS \ 220*2ffc1057SHemant Agrawal ((IOC_NET_HF_SCTP_CHUNK_DATA_TYPE << 10) - 1) 221*2ffc1057SHemant Agrawal 222*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_type_bit (1) 223*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_length_bit (ioc_net_hf_l2tpv_2_type_bit << 1) 224*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_sequence_bit (ioc_net_hf_l2tpv_2_type_bit << 2) 225*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_offset_bit (ioc_net_hf_l2tpv_2_type_bit << 3) 226*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_priority_bit (ioc_net_hf_l2tpv_2_type_bit << 4) 227*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_version (ioc_net_hf_l2tpv_2_type_bit << 5) 228*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_len (ioc_net_hf_l2tpv_2_type_bit << 6) 229*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_tunnel_id (ioc_net_hf_l2tpv_2_type_bit << 7) 230*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_session_id (ioc_net_hf_l2tpv_2_type_bit << 8) 231*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_ns (ioc_net_hf_l2tpv_2_type_bit << 9) 232*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_nr (ioc_net_hf_l2tpv_2_type_bit << 10) 233*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_offset_size (ioc_net_hf_l2tpv_2_type_bit << 11) 234*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_first_byte (ioc_net_hf_l2tpv_2_type_bit << 12) 235*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_2_all_fields \ 236*2ffc1057SHemant Agrawal ((ioc_net_hf_l2tpv_2_type_bit << 13) - 1) 237*2ffc1057SHemant Agrawal 238*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_ctrl_type_bit (1) 239*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_ctrl_length_bit \ 240*2ffc1057SHemant Agrawal (ioc_net_hf_l2tpv_3_ctrl_type_bit << 1) 241*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_ctrl_sequence_bit \ 242*2ffc1057SHemant Agrawal (ioc_net_hf_l2tpv_3_ctrl_type_bit << 2) 243*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_ctrl_version (ioc_net_hf_l2tpv_3_ctrl_type_bit << 3) 244*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_ctrl_length (ioc_net_hf_l2tpv_3_ctrl_type_bit << 4) 245*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_ctrl_control (ioc_net_hf_l2tpv_3_ctrl_type_bit << 5) 246*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_ctrl_sent (ioc_net_hf_l2tpv_3_ctrl_type_bit << 6) 247*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_ctrl_recv (ioc_net_hf_l2tpv_3_ctrl_type_bit << 7) 248*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_ctrl_first_byte \ 249*2ffc1057SHemant Agrawal (ioc_net_hf_l2tpv_3_ctrl_type_bit << 8) 250*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_ctrl_all_fields \ 251*2ffc1057SHemant Agrawal ((ioc_net_hf_l2tpv_3_ctrl_type_bit << 9) - 1) 252*2ffc1057SHemant Agrawal 253*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_sess_type_bit (1) 254*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_sess_version (ioc_net_hf_l2tpv_3_sess_type_bit << 1) 255*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_sess_id (ioc_net_hf_l2tpv_3_sess_type_bit << 2) 256*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_sess_cookie (ioc_net_hf_l2tpv_3_sess_type_bit << 3) 257*2ffc1057SHemant Agrawal #define ioc_net_hf_l2tpv_3_sess_all_fields \ 258*2ffc1057SHemant Agrawal ((ioc_net_hf_l2tpv_3_sess_type_bit << 4) - 1) 259*2ffc1057SHemant Agrawal 260*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_vlan_t; 261*2ffc1057SHemant Agrawal 262*2ffc1057SHemant Agrawal #define IOC_NET_HF_VLAN_VPRI (1) 263*2ffc1057SHemant Agrawal #define IOC_NET_HF_VLAN_CFI (IOC_NET_HF_VLAN_VPRI << 1) 264*2ffc1057SHemant Agrawal #define IOC_NET_HF_VLAN_VID (IOC_NET_HF_VLAN_VPRI << 2) 265*2ffc1057SHemant Agrawal #define IOC_NET_HF_VLAN_LENGTH (IOC_NET_HF_VLAN_VPRI << 3) 266*2ffc1057SHemant Agrawal #define IOC_NET_HF_VLAN_TYPE (IOC_NET_HF_VLAN_VPRI << 4) 267*2ffc1057SHemant Agrawal #define IOC_NET_HF_VLAN_ALL_FIELDS ((IOC_NET_HF_VLAN_VPRI << 5) - 1) 268*2ffc1057SHemant Agrawal 269*2ffc1057SHemant Agrawal #define IOC_NET_HF_VLAN_TCI (IOC_NET_HF_VLAN_VPRI | \ 270*2ffc1057SHemant Agrawal IOC_NET_HF_VLAN_CFI | \ 271*2ffc1057SHemant Agrawal IOC_NET_HF_VLAN_VID) 272*2ffc1057SHemant Agrawal 273*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_llc_t; 274*2ffc1057SHemant Agrawal 275*2ffc1057SHemant Agrawal #define IOC_NET_HF_LLC_DSAP (1) 276*2ffc1057SHemant Agrawal #define IOC_NET_HF_LLC_SSAP (IOC_NET_HF_LLC_DSAP << 1) 277*2ffc1057SHemant Agrawal #define IOC_NET_HF_LLC_CTRL (IOC_NET_HF_LLC_DSAP << 2) 278*2ffc1057SHemant Agrawal #define IOC_NET_HF_LLC_ALL_FIELDS ((IOC_NET_HF_LLC_DSAP << 3) - 1) 279*2ffc1057SHemant Agrawal 280*2ffc1057SHemant Agrawal #define IOC_NET_HF_NLPID_NLPID (1) 281*2ffc1057SHemant Agrawal #define IOC_NET_HF_NLPID_ALL_FIELDS ((IOC_NET_HF_NLPID_NLPID << 1) - 1) 282*2ffc1057SHemant Agrawal 283*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_snap_t; 284*2ffc1057SHemant Agrawal 285*2ffc1057SHemant Agrawal #define IOC_NET_HF_SNAP_OUI (1) 286*2ffc1057SHemant Agrawal #define IOC_NET_HF_SNAP_PID (IOC_NET_HF_SNAP_OUI << 1) 287*2ffc1057SHemant Agrawal #define IOC_NET_HF_SNAP_ALL_FIELDS ((IOC_NET_HF_SNAP_OUI << 2) - 1) 288*2ffc1057SHemant Agrawal 289*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_llc_snap_t; 290*2ffc1057SHemant Agrawal 291*2ffc1057SHemant Agrawal #define IOC_NET_HF_LLC_SNAP_TYPE (1) 292*2ffc1057SHemant Agrawal #define IOC_NET_HF_LLC_SNAP_ALL_FIELDS ((IOC_NET_HF_LLC_SNAP_TYPE << 1) - 1) 293*2ffc1057SHemant Agrawal 294*2ffc1057SHemant Agrawal #define IOC_NET_HF_ARP_HTYPE (1) 295*2ffc1057SHemant Agrawal #define IOC_NET_HF_ARP_PTYPE (IOC_NET_HF_ARP_HTYPE << 1) 296*2ffc1057SHemant Agrawal #define IOC_NET_HF_ARP_HLEN (IOC_NET_HF_ARP_HTYPE << 2) 297*2ffc1057SHemant Agrawal #define IOC_NET_HF_ARP_PLEN (IOC_NET_HF_ARP_HTYPE << 3) 298*2ffc1057SHemant Agrawal #define IOC_NET_HF_ARP_OPER (IOC_NET_HF_ARP_HTYPE << 4) 299*2ffc1057SHemant Agrawal #define IOC_NET_HF_ARP_SHA (IOC_NET_HF_ARP_HTYPE << 5) 300*2ffc1057SHemant Agrawal #define IOC_NET_HF_ARP_SPA (IOC_NET_HF_ARP_HTYPE << 6) 301*2ffc1057SHemant Agrawal #define IOC_NET_HF_ARP_TH (IOC_NET_HF_ARP_HTYPE << 7) 302*2ffc1057SHemant Agrawal #define IOC_NET_HF_ARP_TPA (IOC_NET_HF_ARP_HTYPE << 8) 303*2ffc1057SHemant Agrawal #define IOC_NET_HF_ARP_ALL_FIELDS ((IOC_NET_HF_ARP_HTYPE << 9) - 1) 304*2ffc1057SHemant Agrawal 305*2ffc1057SHemant Agrawal #define IOC_NET_HF_RFC2684_LLC (1) 306*2ffc1057SHemant Agrawal #define IOC_NET_HF_RFC2684_NLPID (IOC_NET_HF_RFC2684_LLC << 1) 307*2ffc1057SHemant Agrawal #define IOC_NET_HF_RFC2684_OUI (IOC_NET_HF_RFC2684_LLC << 2) 308*2ffc1057SHemant Agrawal #define IOC_NET_HF_RFC2684_PID (IOC_NET_HF_RFC2684_LLC << 3) 309*2ffc1057SHemant Agrawal #define IOC_NET_HF_RFC2684_VPN_OUI (IOC_NET_HF_RFC2684_LLC << 4) 310*2ffc1057SHemant Agrawal #define IOC_NET_HF_RFC2684_VPN_IDX (IOC_NET_HF_RFC2684_LLC << 5) 311*2ffc1057SHemant Agrawal #define IOC_NET_HF_RFC2684_ALL_FIELDS ((IOC_NET_HF_RFC2684_LLC << 6) - 1) 312*2ffc1057SHemant Agrawal 313*2ffc1057SHemant Agrawal #define IOC_NET_HF_USER_DEFINED_SRCPORT (1) 314*2ffc1057SHemant Agrawal #define IOC_NET_HF_USER_DEFINED_PCDID (IOC_NET_HF_USER_DEFINED_SRCPORT << 1) 315*2ffc1057SHemant Agrawal #define IOC_NET_HF_USER_DEFINED_ALL_FIELDS \ 316*2ffc1057SHemant Agrawal ((IOC_NET_HF_USER_DEFINED_SRCPORT << 2) - 1) 317*2ffc1057SHemant Agrawal 318*2ffc1057SHemant Agrawal #define IOC_NET_HF_PAYLOAD_BUFFER (1) 319*2ffc1057SHemant Agrawal #define IOC_NET_HF_PAYLOAD_SIZE (IOC_NET_HF_PAYLOAD_BUFFER << 1) 320*2ffc1057SHemant Agrawal #define IOC_NET_HF_MAX_FRM_SIZE (IOC_NET_HF_PAYLOAD_BUFFER << 2) 321*2ffc1057SHemant Agrawal #define IOC_NET_HF_MIN_FRM_SIZE (IOC_NET_HF_PAYLOAD_BUFFER << 3) 322*2ffc1057SHemant Agrawal #define IOC_NET_HF_PAYLOAD_TYPE (IOC_NET_HF_PAYLOAD_BUFFER << 4) 323*2ffc1057SHemant Agrawal #define IOC_NET_HF_FRAME_SIZE (IOC_NET_HF_PAYLOAD_BUFFER << 5) 324*2ffc1057SHemant Agrawal #define IOC_NET_HF_PAYLOAD_ALL_FIELDS ((IOC_NET_HF_PAYLOAD_BUFFER << 6) - 1) 325*2ffc1057SHemant Agrawal 326*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_gre_t; 327*2ffc1057SHemant Agrawal 328*2ffc1057SHemant Agrawal #define IOC_NET_HF_GRE_TYPE (1) 329*2ffc1057SHemant Agrawal #define IOC_NET_HF_GRE_ALL_FIELDS ((IOC_NET_HF_GRE_TYPE << 1) - 1) 330*2ffc1057SHemant Agrawal 331*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_minencap_t; 332*2ffc1057SHemant Agrawal 333*2ffc1057SHemant Agrawal #define IOC_NET_HF_MINENCAP_SRC_IP (1) 334*2ffc1057SHemant Agrawal #define IOC_NET_HF_MINENCAP_DST_IP (IOC_NET_HF_MINENCAP_SRC_IP << 1) 335*2ffc1057SHemant Agrawal #define IOC_NET_HF_MINENCAP_TYPE (IOC_NET_HF_MINENCAP_SRC_IP << 2) 336*2ffc1057SHemant Agrawal #define IOC_NET_HF_MINENCAP_ALL_FIELDS ((IOC_NET_HF_MINENCAP_SRC_IP << 3) - 1) 337*2ffc1057SHemant Agrawal 338*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_ipsec_ah_t; 339*2ffc1057SHemant Agrawal 340*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPSEC_AH_SPI (1) 341*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPSEC_AH_NH (IOC_NET_HF_IPSEC_AH_SPI << 1) 342*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPSEC_AH_ALL_FIELDS ((IOC_NET_HF_IPSEC_AH_SPI << 2) - 1) 343*2ffc1057SHemant Agrawal 344*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_ipsec_esp_t; 345*2ffc1057SHemant Agrawal 346*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPSEC_ESP_SPI (1) 347*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPSEC_ESP_SEQUENCE_NUM (IOC_NET_HF_IPSEC_ESP_SPI << 1) 348*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPSEC_ESP_ALL_FIELDS ((IOC_NET_HF_IPSEC_ESP_SPI << 2) - 1) 349*2ffc1057SHemant Agrawal 350*2ffc1057SHemant Agrawal #define IOC_NET_HF_IPSEC_ESP_SPI_SIZE 4 351*2ffc1057SHemant Agrawal 352*2ffc1057SHemant Agrawal 353*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_mpls_t; 354*2ffc1057SHemant Agrawal 355*2ffc1057SHemant Agrawal #define IOC_NET_HF_MPLS_LABEL_STACK (1) 356*2ffc1057SHemant Agrawal #define IOC_NET_HF_MPLS_LABEL_STACK_ALL_FIELDS \ 357*2ffc1057SHemant Agrawal ((IOC_NET_HF_MPLS_LABEL_STACK << 1) - 1) 358*2ffc1057SHemant Agrawal 359*2ffc1057SHemant Agrawal typedef uint8_t ioc_header_field_macsec_t; 360*2ffc1057SHemant Agrawal 361*2ffc1057SHemant Agrawal #define IOC_NET_HF_MACSEC_SECTAG (1) 362*2ffc1057SHemant Agrawal #define IOC_NET_HF_MACSEC_ALL_FIELDS ((IOC_NET_HF_MACSEC_SECTAG << 1) - 1) 363*2ffc1057SHemant Agrawal 364*2ffc1057SHemant Agrawal typedef enum { 365*2ffc1057SHemant Agrawal HEADER_TYPE_NONE = 0, 366*2ffc1057SHemant Agrawal HEADER_TYPE_PAYLOAD, 367*2ffc1057SHemant Agrawal HEADER_TYPE_ETH, 368*2ffc1057SHemant Agrawal HEADER_TYPE_VLAN, 369*2ffc1057SHemant Agrawal HEADER_TYPE_IPV4, 370*2ffc1057SHemant Agrawal HEADER_TYPE_IPV6, 371*2ffc1057SHemant Agrawal HEADER_TYPE_IP, 372*2ffc1057SHemant Agrawal HEADER_TYPE_TCP, 373*2ffc1057SHemant Agrawal HEADER_TYPE_UDP, 374*2ffc1057SHemant Agrawal HEADER_TYPE_UDP_LITE, 375*2ffc1057SHemant Agrawal HEADER_TYPE_IPHC, 376*2ffc1057SHemant Agrawal HEADER_TYPE_SCTP, 377*2ffc1057SHemant Agrawal HEADER_TYPE_SCTP_CHUNK_DATA, 378*2ffc1057SHemant Agrawal HEADER_TYPE_PPPOE, 379*2ffc1057SHemant Agrawal HEADER_TYPE_PPP, 380*2ffc1057SHemant Agrawal HEADER_TYPE_PPPMUX, 381*2ffc1057SHemant Agrawal HEADER_TYPE_PPPMUX_SUBFRAME, 382*2ffc1057SHemant Agrawal HEADER_TYPE_L2TPV2, 383*2ffc1057SHemant Agrawal HEADER_TYPE_L2TPV3_CTRL, 384*2ffc1057SHemant Agrawal HEADER_TYPE_L2TPV3_SESS, 385*2ffc1057SHemant Agrawal HEADER_TYPE_LLC, 386*2ffc1057SHemant Agrawal HEADER_TYPE_LLC_SNAP, 387*2ffc1057SHemant Agrawal HEADER_TYPE_NLPID, 388*2ffc1057SHemant Agrawal HEADER_TYPE_SNAP, 389*2ffc1057SHemant Agrawal HEADER_TYPE_MPLS, 390*2ffc1057SHemant Agrawal HEADER_TYPE_IPSEC_AH, 391*2ffc1057SHemant Agrawal HEADER_TYPE_IPSEC_ESP, 392*2ffc1057SHemant Agrawal HEADER_TYPE_UDP_ENCAP_ESP, /* RFC 3948 */ 393*2ffc1057SHemant Agrawal HEADER_TYPE_MACSEC, 394*2ffc1057SHemant Agrawal HEADER_TYPE_GRE, 395*2ffc1057SHemant Agrawal HEADER_TYPE_MINENCAP, 396*2ffc1057SHemant Agrawal HEADER_TYPE_DCCP, 397*2ffc1057SHemant Agrawal HEADER_TYPE_ICMP, 398*2ffc1057SHemant Agrawal HEADER_TYPE_IGMP, 399*2ffc1057SHemant Agrawal HEADER_TYPE_ARP, 400*2ffc1057SHemant Agrawal HEADER_TYPE_CAPWAP, 401*2ffc1057SHemant Agrawal HEADER_TYPE_CAPWAP_DTLS, 402*2ffc1057SHemant Agrawal HEADER_TYPE_RFC2684, 403*2ffc1057SHemant Agrawal HEADER_TYPE_USER_DEFINED_L2, 404*2ffc1057SHemant Agrawal HEADER_TYPE_USER_DEFINED_L3, 405*2ffc1057SHemant Agrawal HEADER_TYPE_USER_DEFINED_L4, 406*2ffc1057SHemant Agrawal HEADER_TYPE_USER_DEFINED_SHIM1, 407*2ffc1057SHemant Agrawal HEADER_TYPE_USER_DEFINED_SHIM2, 408*2ffc1057SHemant Agrawal MAX_HEADER_TYPE_COUNT 409*2ffc1057SHemant Agrawal } ioc_net_header_type; 410*2ffc1057SHemant Agrawal 411*2ffc1057SHemant Agrawal #endif /* __NET_EXT_H */ 412