1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2014-2023 Broadcom 3 * All rights reserved. 4 */ 5 6 #include "ulp_template_db_enum.h" 7 #include "ulp_template_struct.h" 8 #include "ulp_rte_parser.h" 9 10 /* 11 * This structure has to be indexed based on the rte_flow_action_type that is 12 * part of DPDK. The below array is list of parsing functions for each of the 13 * flow actions that are supported. 14 */ 15 struct bnxt_ulp_rte_act_info ulp_act_info[] = { 16 [RTE_FLOW_ACTION_TYPE_END] = { 17 .act_type = BNXT_ULP_ACT_TYPE_END, 18 .proto_act_func = NULL 19 }, 20 [RTE_FLOW_ACTION_TYPE_VOID] = { 21 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 22 .proto_act_func = ulp_rte_void_act_handler 23 }, 24 [RTE_FLOW_ACTION_TYPE_PASSTHRU] = { 25 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 26 .proto_act_func = NULL 27 }, 28 [RTE_FLOW_ACTION_TYPE_JUMP] = { 29 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 30 .proto_act_func = ulp_rte_jump_act_handler 31 }, 32 [RTE_FLOW_ACTION_TYPE_MARK] = { 33 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 34 .proto_act_func = ulp_rte_mark_act_handler 35 }, 36 [RTE_FLOW_ACTION_TYPE_FLAG] = { 37 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 38 .proto_act_func = NULL 39 }, 40 [RTE_FLOW_ACTION_TYPE_QUEUE] = { 41 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 42 .proto_act_func = ulp_rte_queue_act_handler 43 }, 44 [RTE_FLOW_ACTION_TYPE_DROP] = { 45 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 46 .proto_act_func = ulp_rte_drop_act_handler 47 }, 48 [RTE_FLOW_ACTION_TYPE_COUNT] = { 49 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 50 .proto_act_func = ulp_rte_count_act_handler 51 }, 52 [RTE_FLOW_ACTION_TYPE_RSS] = { 53 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 54 .proto_act_func = ulp_rte_rss_act_handler 55 }, 56 [RTE_FLOW_ACTION_TYPE_PF] = { 57 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 58 .proto_act_func = ulp_rte_pf_act_handler 59 }, 60 [RTE_FLOW_ACTION_TYPE_VF] = { 61 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 62 .proto_act_func = ulp_rte_vf_act_handler 63 }, 64 [RTE_FLOW_ACTION_TYPE_PORT_ID] = { 65 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 66 .proto_act_func = ulp_rte_port_act_handler 67 }, 68 [RTE_FLOW_ACTION_TYPE_METER] = { 69 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 70 .proto_act_func = ulp_rte_meter_act_handler 71 }, 72 [RTE_FLOW_ACTION_TYPE_SECURITY] = { 73 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 74 .proto_act_func = NULL 75 }, 76 [RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL] = { 77 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 78 .proto_act_func = NULL 79 }, 80 [RTE_FLOW_ACTION_TYPE_OF_POP_VLAN] = { 81 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 82 .proto_act_func = ulp_rte_of_pop_vlan_act_handler 83 }, 84 [RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN] = { 85 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 86 .proto_act_func = ulp_rte_of_push_vlan_act_handler 87 }, 88 [RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID] = { 89 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 90 .proto_act_func = ulp_rte_of_set_vlan_vid_act_handler 91 }, 92 [RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP] = { 93 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 94 .proto_act_func = ulp_rte_of_set_vlan_pcp_act_handler 95 }, 96 [RTE_FLOW_ACTION_TYPE_OF_POP_MPLS] = { 97 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 98 .proto_act_func = NULL 99 }, 100 [RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS] = { 101 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 102 .proto_act_func = NULL 103 }, 104 [RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP] = { 105 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 106 .proto_act_func = ulp_rte_vxlan_encap_act_handler 107 }, 108 [RTE_FLOW_ACTION_TYPE_VXLAN_DECAP] = { 109 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 110 .proto_act_func = ulp_rte_vxlan_decap_act_handler 111 }, 112 [RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP] = { 113 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 114 .proto_act_func = NULL 115 }, 116 [RTE_FLOW_ACTION_TYPE_NVGRE_DECAP] = { 117 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 118 .proto_act_func = NULL 119 }, 120 [RTE_FLOW_ACTION_TYPE_RAW_ENCAP] = { 121 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 122 .proto_act_func = NULL 123 }, 124 [RTE_FLOW_ACTION_TYPE_RAW_DECAP] = { 125 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 126 .proto_act_func = NULL 127 }, 128 [RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC] = { 129 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 130 .proto_act_func = ulp_rte_set_ipv4_src_act_handler 131 }, 132 [RTE_FLOW_ACTION_TYPE_SET_IPV4_DST] = { 133 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 134 .proto_act_func = ulp_rte_set_ipv4_dst_act_handler 135 }, 136 [RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC] = { 137 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 138 .proto_act_func = ulp_rte_set_ipv6_src_act_handler 139 }, 140 [RTE_FLOW_ACTION_TYPE_SET_IPV6_DST] = { 141 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 142 .proto_act_func = ulp_rte_set_ipv6_dst_act_handler 143 }, 144 [RTE_FLOW_ACTION_TYPE_SET_TP_SRC] = { 145 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 146 .proto_act_func = ulp_rte_set_tp_src_act_handler 147 }, 148 [RTE_FLOW_ACTION_TYPE_SET_TP_DST] = { 149 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 150 .proto_act_func = ulp_rte_set_tp_dst_act_handler 151 }, 152 [RTE_FLOW_ACTION_TYPE_MAC_SWAP] = { 153 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 154 .proto_act_func = NULL 155 }, 156 [RTE_FLOW_ACTION_TYPE_DEC_TTL] = { 157 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 158 .proto_act_func = ulp_rte_dec_ttl_act_handler 159 }, 160 [RTE_FLOW_ACTION_TYPE_SET_TTL] = { 161 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 162 .proto_act_func = ulp_rte_set_ttl_act_handler 163 }, 164 [RTE_FLOW_ACTION_TYPE_SET_MAC_SRC] = { 165 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 166 .proto_act_func = ulp_rte_set_mac_src_act_handler 167 }, 168 [RTE_FLOW_ACTION_TYPE_SET_MAC_DST] = { 169 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 170 .proto_act_func = ulp_rte_set_mac_dst_act_handler 171 }, 172 [RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ] = { 173 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 174 .proto_act_func = NULL 175 }, 176 [RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ] = { 177 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 178 .proto_act_func = NULL 179 }, 180 [RTE_FLOW_ACTION_TYPE_INC_TCP_ACK] = { 181 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 182 .proto_act_func = NULL 183 }, 184 [RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK] = { 185 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 186 .proto_act_func = NULL 187 }, 188 [RTE_FLOW_ACTION_TYPE_SAMPLE] = { 189 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 190 .proto_act_func = ulp_rte_sample_act_handler 191 }, 192 [RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR] = { 193 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 194 .proto_act_func = ulp_rte_port_act_handler 195 }, 196 [RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT] = { 197 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 198 .proto_act_func = ulp_rte_port_act_handler 199 }, 200 [RTE_FLOW_ACTION_TYPE_INDIRECT] = { 201 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 202 .proto_act_func = ulp_rte_action_hdlr_handler 203 }, 204 [RTE_FLOW_ACTION_TYPE_INDIRECT + 1] = { 205 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 206 .proto_act_func = NULL 207 } 208 }; 209 210 struct bnxt_ulp_rte_act_info ulp_vendor_act_info[] = { 211 [BNXT_RTE_FLOW_ACTION_TYPE_END - BNXT_RTE_FLOW_ACTION_TYPE_END] = { 212 .act_type = BNXT_ULP_ACT_TYPE_END, 213 .proto_act_func = NULL 214 }, 215 [BNXT_RTE_FLOW_ACTION_TYPE_VXLAN_DECAP - BNXT_RTE_FLOW_ACTION_TYPE_END] = { 216 .act_type = BNXT_ULP_ACT_TYPE_SUPPORTED, 217 .proto_act_func = ulp_vendor_vxlan_decap_act_handler 218 }, 219 [BNXT_RTE_FLOW_ACTION_TYPE_LAST - BNXT_RTE_FLOW_ACTION_TYPE_END] = { 220 .act_type = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED, 221 .proto_act_func = NULL 222 } 223 }; 224 225 /* 226 * This table has to be indexed based on the rte_flow_item_type that is part of 227 * DPDK. The below array is list of parsing functions for each of the flow items 228 * that are supported. 229 */ 230 struct bnxt_ulp_rte_hdr_info ulp_hdr_info[] = { 231 [RTE_FLOW_ITEM_TYPE_END] = { 232 .hdr_type = BNXT_ULP_HDR_TYPE_END, 233 .proto_hdr_func = NULL 234 }, 235 [RTE_FLOW_ITEM_TYPE_VOID] = { 236 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 237 .proto_hdr_func = ulp_rte_void_hdr_handler 238 }, 239 [RTE_FLOW_ITEM_TYPE_INVERT] = { 240 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 241 .proto_hdr_func = NULL 242 }, 243 [RTE_FLOW_ITEM_TYPE_ANY] = { 244 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 245 .proto_hdr_func = ulp_rte_item_any_handler 246 }, 247 [RTE_FLOW_ITEM_TYPE_PORT_ID] = { 248 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 249 .proto_hdr_func = ulp_rte_port_hdr_handler 250 }, 251 [RTE_FLOW_ITEM_TYPE_RAW] = { 252 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 253 .proto_hdr_func = NULL 254 }, 255 [RTE_FLOW_ITEM_TYPE_ETH] = { 256 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 257 .proto_hdr_func = ulp_rte_eth_hdr_handler 258 }, 259 [RTE_FLOW_ITEM_TYPE_VLAN] = { 260 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 261 .proto_hdr_func = ulp_rte_vlan_hdr_handler 262 }, 263 [RTE_FLOW_ITEM_TYPE_IPV4] = { 264 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 265 .proto_hdr_func = ulp_rte_ipv4_hdr_handler 266 }, 267 [RTE_FLOW_ITEM_TYPE_IPV6] = { 268 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 269 .proto_hdr_func = ulp_rte_ipv6_hdr_handler 270 }, 271 [RTE_FLOW_ITEM_TYPE_ICMP] = { 272 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 273 .proto_hdr_func = ulp_rte_icmp_hdr_handler 274 }, 275 [RTE_FLOW_ITEM_TYPE_UDP] = { 276 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 277 .proto_hdr_func = ulp_rte_udp_hdr_handler 278 }, 279 [RTE_FLOW_ITEM_TYPE_TCP] = { 280 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 281 .proto_hdr_func = ulp_rte_tcp_hdr_handler 282 }, 283 [RTE_FLOW_ITEM_TYPE_SCTP] = { 284 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 285 .proto_hdr_func = NULL 286 }, 287 [RTE_FLOW_ITEM_TYPE_VXLAN] = { 288 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 289 .proto_hdr_func = ulp_rte_vxlan_hdr_handler 290 }, 291 [RTE_FLOW_ITEM_TYPE_E_TAG] = { 292 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 293 .proto_hdr_func = NULL 294 }, 295 [RTE_FLOW_ITEM_TYPE_NVGRE] = { 296 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 297 .proto_hdr_func = NULL 298 }, 299 [RTE_FLOW_ITEM_TYPE_MPLS] = { 300 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 301 .proto_hdr_func = NULL 302 }, 303 [RTE_FLOW_ITEM_TYPE_GRE] = { 304 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 305 .proto_hdr_func = ulp_rte_gre_hdr_handler 306 }, 307 [RTE_FLOW_ITEM_TYPE_FUZZY] = { 308 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 309 .proto_hdr_func = NULL 310 }, 311 [RTE_FLOW_ITEM_TYPE_GTP] = { 312 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 313 .proto_hdr_func = NULL 314 }, 315 [RTE_FLOW_ITEM_TYPE_GTPC] = { 316 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 317 .proto_hdr_func = NULL 318 }, 319 [RTE_FLOW_ITEM_TYPE_GTPU] = { 320 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 321 .proto_hdr_func = NULL 322 }, 323 [RTE_FLOW_ITEM_TYPE_ESP] = { 324 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 325 .proto_hdr_func = NULL 326 }, 327 [RTE_FLOW_ITEM_TYPE_GENEVE] = { 328 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 329 .proto_hdr_func = ulp_rte_geneve_hdr_handler 330 }, 331 [RTE_FLOW_ITEM_TYPE_VXLAN_GPE] = { 332 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 333 .proto_hdr_func = ulp_rte_vxlan_gpe_hdr_handler 334 }, 335 [RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4] = { 336 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 337 .proto_hdr_func = NULL 338 }, 339 [RTE_FLOW_ITEM_TYPE_IPV6_EXT] = { 340 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 341 .proto_hdr_func = NULL 342 }, 343 [RTE_FLOW_ITEM_TYPE_ICMP6] = { 344 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 345 .proto_hdr_func = ulp_rte_icmp6_hdr_handler 346 }, 347 [RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS] = { 348 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 349 .proto_hdr_func = NULL 350 }, 351 [RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA] = { 352 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 353 .proto_hdr_func = NULL 354 }, 355 [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT] = { 356 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 357 .proto_hdr_func = NULL 358 }, 359 [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH] = { 360 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 361 .proto_hdr_func = NULL 362 }, 363 [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH] = { 364 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 365 .proto_hdr_func = NULL 366 }, 367 [RTE_FLOW_ITEM_TYPE_MARK] = { 368 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 369 .proto_hdr_func = NULL 370 }, 371 [RTE_FLOW_ITEM_TYPE_META] = { 372 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 373 .proto_hdr_func = NULL 374 }, 375 [RTE_FLOW_ITEM_TYPE_GRE_KEY] = { 376 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 377 .proto_hdr_func = NULL 378 }, 379 [RTE_FLOW_ITEM_TYPE_GTP_PSC] = { 380 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 381 .proto_hdr_func = NULL 382 }, 383 [RTE_FLOW_ITEM_TYPE_PPPOES] = { 384 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 385 .proto_hdr_func = NULL 386 }, 387 [RTE_FLOW_ITEM_TYPE_PPPOED] = { 388 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 389 .proto_hdr_func = NULL 390 }, 391 [RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID] = { 392 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 393 .proto_hdr_func = NULL 394 }, 395 [RTE_FLOW_ITEM_TYPE_NSH] = { 396 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 397 .proto_hdr_func = NULL 398 }, 399 [RTE_FLOW_ITEM_TYPE_IGMP] = { 400 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 401 .proto_hdr_func = NULL 402 }, 403 [RTE_FLOW_ITEM_TYPE_AH] = { 404 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 405 .proto_hdr_func = NULL 406 }, 407 [RTE_FLOW_ITEM_TYPE_HIGIG2] = { 408 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 409 .proto_hdr_func = NULL 410 }, 411 [RTE_FLOW_ITEM_TYPE_ECPRI] = { 412 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 413 .proto_hdr_func = ulp_rte_ecpri_hdr_handler 414 }, 415 [RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR] = { 416 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 417 .proto_hdr_func = ulp_rte_ecpri_hdr_handler 418 }, 419 [RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT] = { 420 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 421 .proto_hdr_func = ulp_rte_port_hdr_handler 422 } 423 }; 424 425 struct bnxt_ulp_rte_hdr_info ulp_vendor_hdr_info[] = { 426 [BNXT_RTE_FLOW_ITEM_TYPE_END - BNXT_RTE_FLOW_ITEM_TYPE_END] = { 427 .hdr_type = BNXT_ULP_HDR_TYPE_END, 428 .proto_hdr_func = NULL 429 }, 430 [BNXT_RTE_FLOW_ITEM_TYPE_VXLAN_DECAP - BNXT_RTE_FLOW_ITEM_TYPE_END] = { 431 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED, 432 .proto_hdr_func = ulp_rte_vendor_vxlan_decap_hdr_handler 433 }, 434 [BNXT_RTE_FLOW_ITEM_TYPE_LAST - BNXT_RTE_FLOW_ITEM_TYPE_END] = { 435 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED, 436 .proto_hdr_func = NULL 437 }, 438 439 }; 440