net/bnxt: fix packet type
authorOlivier Matz <olivier.matz@6wind.com>
Thu, 8 Feb 2018 08:24:17 +0000 (09:24 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 8 Feb 2018 17:42:14 +0000 (18:42 +0100)
commitd80016310bb2eb280112293e28665ca9f9dd89ed
treeb2650094859d20b75fbc0572a2b19ae2b21ebe22
parenta6411929a56dce97770ed95ff14855649160e2bc
net/bnxt: fix packet type

The hw flags are not read correctly: the defines
RX_PKT_CMPL_FLAGS_ITYPE_* are not bits but values, so the should not be
tested with if (value & X) but with if ((value & MASK) == X).
This was resulting in a wrong packet type.

For instance, an IPv4/ICMP packet was returning a value of 7 for
the layer 4, which is undefined.

This patch rework the way packet types are processed, to ensure
that only valid packet types will be advertised.

Fixes: 3d2a6644eb05 ("net/bnxt: support getting ptypes")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_rxr.c