net/mlx5: fix mark id retrieval
Mark ID in the completion queue entry is 24 bits, the remaining 8 bits are reserved and may be nonzero. Do not take them into account when looking for marked packets. Fixes: ea3bc3b1df94 ("net/mlx5: support mark flow action") Cc: stable@dpdk.org Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
This commit is contained in:
parent
005870b4d3
commit
c604f61978
@ -138,6 +138,13 @@
|
||||
/* Inner L4 checksum offload (Tunneled packets only). */
|
||||
#define MLX5_ETH_WQE_L4_INNER_CSUM (1u << 5)
|
||||
|
||||
/* Is flow mark valid. */
|
||||
#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
|
||||
#define MLX5_FLOW_MARK_IS_VALID(val) ((val) & 0xffffff00)
|
||||
#else
|
||||
#define MLX5_FLOW_MARK_IS_VALID(val) ((val) & 0xffffff)
|
||||
#endif
|
||||
|
||||
/* INVALID is used by packets matching no flow rules. */
|
||||
#define MLX5_FLOW_MARK_INVALID 0
|
||||
|
||||
|
@ -2030,8 +2030,8 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
|
||||
pkt->hash.rss = rss_hash_res;
|
||||
pkt->ol_flags = PKT_RX_RSS_HASH;
|
||||
}
|
||||
if (rxq->mark && (cqe->sop_drop_qpn !=
|
||||
htonl(MLX5_FLOW_MARK_INVALID))) {
|
||||
if (rxq->mark &&
|
||||
MLX5_FLOW_MARK_IS_VALID(cqe->sop_drop_qpn)) {
|
||||
pkt->ol_flags |= PKT_RX_FDIR;
|
||||
if (cqe->sop_drop_qpn !=
|
||||
htonl(MLX5_FLOW_MARK_DEFAULT)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user