net/vmxnet3: set packet type for fragmented packet

The packet type is set even if it is a fragmented packet.

Tested, using testpmd, for different hardware versions on ESXi 7.0
Update 2.

Signed-off-by: Pankaj Gupta <pagupta@vmware.com>
Reviewed-by: Jochen Behrens <jbehrens@vmware.com>
This commit is contained in:
Pankaj Gupta 2022-05-24 17:40:27 -07:00 committed by Andrew Rybchenko
parent ce6b0b80d1
commit 1c313c0e24

View File

@ -759,6 +759,23 @@ vmxnet3_rx_offload(struct vmxnet3_hw *hw, const Vmxnet3_RxCompDesc *rcd,
/* Check packet type, checksum errors, etc. */ /* Check packet type, checksum errors, etc. */
if (rcd->cnc) { if (rcd->cnc) {
ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_UNKNOWN; ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_UNKNOWN;
if (rcd->v4) {
packet_type |= RTE_PTYPE_L3_IPV4_EXT_UNKNOWN;
if (rcd->tcp)
packet_type |= RTE_PTYPE_L4_TCP;
else if (rcd->udp)
packet_type |= RTE_PTYPE_L4_UDP;
} else if (rcd->v6) {
packet_type |= RTE_PTYPE_L3_IPV6_EXT_UNKNOWN;
if (rcd->tcp)
packet_type |= RTE_PTYPE_L4_TCP;
else if (rcd->udp)
packet_type |= RTE_PTYPE_L4_UDP;
} else {
packet_type |= RTE_PTYPE_UNKNOWN;
}
} else { } else {
if (rcd->v4) { if (rcd->v4) {
packet_type |= RTE_PTYPE_L3_IPV4_EXT_UNKNOWN; packet_type |= RTE_PTYPE_L3_IPV4_EXT_UNKNOWN;