+ if (!ULP_BITMAP_ISSET(params->hdr_bitmap.bits,
+ BNXT_ULP_HDR_BIT_O_ETH) &&
+ !ULP_BITMAP_ISSET(params->hdr_bitmap.bits,
+ BNXT_ULP_HDR_BIT_I_ETH)) {
+ /* Since F2 flow does not include eth item, when parser detects
+ * IPv4/IPv6 item list and it belongs to the outer header; i.e.,
+ * o_ipv4/o_ipv6, check if O_ETH and I_ETH is set. If not set,
+ * then add offset sizeof(o_eth/oo_vlan/oi_vlan) to the index.
+ * This will allow the parser post processor to update the
+ * t_dmac in hdr_field[o_eth.dmac]
+ */
+ idx += (BNXT_ULP_PROTO_HDR_ETH_NUM +
+ BNXT_ULP_PROTO_HDR_VLAN_NUM);
+ params->field_idx = idx;
+ }
+