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