- /*
- * RX_L4_CLASS is 3 bits wide on Huntington and Medford, but is only
- * 2 bits wide on Medford2. Check it is safe to use the Medford2 field
- * and values for all EF10 controllers.
- */
- RTE_BUILD_BUG_ON(ESF_FZ_RX_L4_CLASS_LBN != ESF_DE_RX_L4_CLASS_LBN);
- switch (EFX_QWORD_FIELD(rx_ev, ESF_FZ_RX_L4_CLASS)) {
- case ESE_FZ_L4_CLASS_TCP:
- RTE_BUILD_BUG_ON(ESE_FZ_L4_CLASS_TCP != ESE_DE_L4_CLASS_TCP);
- l4_ptype = (tun_ptype == 0) ? RTE_PTYPE_L4_TCP :
- RTE_PTYPE_INNER_L4_TCP;
- ol_flags |=
- (EFX_TEST_QWORD_BIT(rx_ev, l4_csum_err_bit)) ?
- PKT_RX_L4_CKSUM_BAD : PKT_RX_L4_CKSUM_GOOD;
- break;
- case ESE_FZ_L4_CLASS_UDP:
- RTE_BUILD_BUG_ON(ESE_FZ_L4_CLASS_UDP != ESE_DE_L4_CLASS_UDP);
- l4_ptype = (tun_ptype == 0) ? RTE_PTYPE_L4_UDP :
- RTE_PTYPE_INNER_L4_UDP;
- ol_flags |=
- (EFX_TEST_QWORD_BIT(rx_ev, l4_csum_err_bit)) ?
- PKT_RX_L4_CKSUM_BAD : PKT_RX_L4_CKSUM_GOOD;
- break;
- case ESE_FZ_L4_CLASS_UNKNOWN:
- RTE_BUILD_BUG_ON(ESE_FZ_L4_CLASS_UNKNOWN !=
- ESE_DE_L4_CLASS_UNKNOWN);
- break;
- default:
- /* Unexpected Layer 4 class */
- SFC_ASSERT(false);