DPDK patches and discussions
 help / color / mirror / Atom feed
From: John Daley <johndale@cisco.com>
To: ferruh.yigit@intel.com
Cc: dev@dpdk.org, Hyong Youb Kim <hyonkim@cisco.com>, stable@dpdk.org
Subject: [dpdk-dev] [PATCH] net/enic: fix L4 Rx ptype comparison
Date: Wed, 10 Jan 2018 01:17:04 -0800	[thread overview]
Message-ID: <20180110091712.32198-4-johndale@cisco.com> (raw)
In-Reply-To: <20180110091712.32198-1-johndale@cisco.com>

From: Hyong Youb Kim <hyonkim@cisco.com>

For non-UDP/TCP packets, enic may wrongly set PKT_RX_L4_CKSUM_BAD in
ol_flags. The comparison that checks if a packet is UDP or TCP assumes
that RTE_PTYPE_L4 values are bit flags, but they are not. For example,
the following evaluates to true because NONFRAG is 0x600 and UDP is
0x200, and causes the current code to think the packet is UDP.

!!(RTE_PTYPE_L4_NONFRAG & RTE_PTYPE_L4_UDP)

So, fix this by comparing the packet type against UDP and TCP
individually.

Fixes: 453d15059b58 ("net/enic: use new Rx checksum flags")
Cc: stable@dpdk.org

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
---
 drivers/net/enic/enic_rxtx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/enic/enic_rxtx.c b/drivers/net/enic/enic_rxtx.c
index a3663d516..831c90a1c 100644
--- a/drivers/net/enic/enic_rxtx.c
+++ b/drivers/net/enic/enic_rxtx.c
@@ -285,7 +285,8 @@ enic_cq_rx_to_pkt_flags(struct cq_desc *cqd, struct rte_mbuf *mbuf)
 			else
 				pkt_flags |= PKT_RX_IP_CKSUM_BAD;
 
-			if (l4_flags & (RTE_PTYPE_L4_UDP | RTE_PTYPE_L4_TCP)) {
+			if (l4_flags == RTE_PTYPE_L4_UDP ||
+			    l4_flags == RTE_PTYPE_L4_TCP) {
 				if (enic_cq_rx_desc_tcp_udp_csum_ok(cqrd))
 					pkt_flags |= PKT_RX_L4_CKSUM_GOOD;
 				else
-- 
2.12.0

  parent reply	other threads:[~2018-01-10  9:17 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-10  9:17 [dpdk-dev] [PATCH] maintainers: update for enic John Daley
2018-01-10  9:17 ` [dpdk-dev] [PATCH] doc: minor updates to the enic guide John Daley
2018-01-10  9:17 ` [dpdk-dev] [PATCH] net/enic: use the new ethdev offloads API John Daley
2018-01-10  9:17 ` John Daley [this message]
2018-01-10  9:17 ` [dpdk-dev] [PATCH] net/enic: do not set checksum unkonwn offload flag John Daley
2018-01-10  9:17 ` [dpdk-dev] [PATCH] net/enic: remove remaining header-split code John Daley
2018-01-10  9:17 ` [dpdk-dev] [PATCH] net/enic: remove a couple unnecessary statements John Daley
2018-01-10  9:17 ` [dpdk-dev] [PATCH] net/enic: refill only the address of the RQ descriptor John Daley
2018-01-10  9:17 ` [dpdk-dev] [PATCH] net/enic: use dynamic log types John Daley
2018-01-10  9:17 ` [dpdk-dev] [PATCH] net/enic: use BSD-3-Clause John Daley
2018-01-10  9:17 ` [dpdk-dev] [PATCH] net/enic: use TSO flags John Daley
2018-01-10  9:17 ` [dpdk-dev] [PATCH] net/enic: remove a conditional from the Tx path John Daley
2018-01-11 13:32 ` [dpdk-dev] [PATCH] maintainers: update for enic Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180110091712.32198-4-johndale@cisco.com \
    --to=johndale@cisco.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=hyonkim@cisco.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).