DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] net/sfc: fix mark support in EF100 native Rx datapath
@ 2021-04-28 14:17 Andrew Rybchenko
  2021-04-30 16:07 ` Ferruh Yigit
  0 siblings, 1 reply; 2+ messages in thread
From: Andrew Rybchenko @ 2021-04-28 14:17 UTC (permalink / raw)
  To: dev; +Cc: Andy Moreton, Ivan Malov

Decouple user mark from user flag. Usage of mark does not require to
use flag as well. Flag is not actually supported yet.

Fixes: 1aacc3d388d3 ("net/sfc: support user mark and flag Rx for EF100")
Cc: stabledpdk.org

Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
Reviewed-by: Ivan Malov <ivan.malov@oktetlabs.ru>
---
 drivers/net/sfc/sfc_ef100_rx.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/net/sfc/sfc_ef100_rx.c b/drivers/net/sfc/sfc_ef100_rx.c
index 07b37ff47f..8cde24c585 100644
--- a/drivers/net/sfc/sfc_ef100_rx.c
+++ b/drivers/net/sfc/sfc_ef100_rx.c
@@ -46,6 +46,9 @@
 	((_ndesc) - 1 /* head must not step on tail */ - \
 	 1 /* Rx error */ - 1 /* flush */)
 
+/** Invalid user mark value when the mark should be treated as unset */
+#define SFC_EF100_USER_MARK_INVALID	0
+
 struct sfc_ef100_rx_sw_desc {
 	struct rte_mbuf			*mbuf;
 };
@@ -365,7 +368,6 @@ static const efx_rx_prefix_layout_t sfc_ef100_rx_prefix_layout = {
 
 		SFC_EF100_RX_PREFIX_FIELD(LENGTH, B_FALSE),
 		SFC_EF100_RX_PREFIX_FIELD(RSS_HASH_VALID, B_FALSE),
-		SFC_EF100_RX_PREFIX_FIELD(USER_FLAG, B_FALSE),
 		SFC_EF100_RX_PREFIX_FIELD(CLASS, B_FALSE),
 		SFC_EF100_RX_PREFIX_FIELD(RSS_HASH, B_FALSE),
 		SFC_EF100_RX_PREFIX_FIELD(USER_MARK, B_FALSE),
@@ -404,12 +406,16 @@ sfc_ef100_rx_prefix_to_offloads(const struct sfc_ef100_rxq *rxq,
 					      ESF_GZ_RX_PREFIX_RSS_HASH);
 	}
 
-	if ((rxq->flags & SFC_EF100_RXQ_USER_MARK) &&
-	    EFX_TEST_OWORD_BIT(rx_prefix[0], ESF_GZ_RX_PREFIX_USER_FLAG_LBN)) {
-		ol_flags |= PKT_RX_FDIR_ID;
+	if (rxq->flags & SFC_EF100_RXQ_USER_MARK) {
+		uint32_t user_mark;
+
 		/* EFX_OWORD_FIELD converts little-endian to CPU */
-		m->hash.fdir.hi = EFX_OWORD_FIELD(rx_prefix[0],
-						  ESF_GZ_RX_PREFIX_USER_MARK);
+		user_mark = EFX_OWORD_FIELD(rx_prefix[0],
+					    ESF_GZ_RX_PREFIX_USER_MARK);
+		if (user_mark != SFC_EF100_USER_MARK_INVALID) {
+			ol_flags |= PKT_RX_FDIR_ID;
+			m->hash.fdir.hi = user_mark;
+		}
 	}
 
 	m->ol_flags = ol_flags;
@@ -794,8 +800,7 @@ sfc_ef100_rx_qstart(struct sfc_dp_rxq *dp_rxq, unsigned int evq_read_ptr,
 		rxq->flags &= ~SFC_EF100_RXQ_RSS_HASH;
 
 	if ((unsup_rx_prefix_fields &
-	     ((1U << EFX_RX_PREFIX_FIELD_USER_FLAG) |
-	      (1U << EFX_RX_PREFIX_FIELD_USER_MARK))) == 0)
+	     (1U << EFX_RX_PREFIX_FIELD_USER_MARK)) == 0)
 		rxq->flags |= SFC_EF100_RXQ_USER_MARK;
 	else
 		rxq->flags &= ~SFC_EF100_RXQ_USER_MARK;
-- 
2.30.2


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [dpdk-dev] [PATCH] net/sfc: fix mark support in EF100 native Rx datapath
  2021-04-28 14:17 [dpdk-dev] [PATCH] net/sfc: fix mark support in EF100 native Rx datapath Andrew Rybchenko
@ 2021-04-30 16:07 ` Ferruh Yigit
  0 siblings, 0 replies; 2+ messages in thread
From: Ferruh Yigit @ 2021-04-30 16:07 UTC (permalink / raw)
  To: Andrew Rybchenko, dev; +Cc: Andy Moreton, Ivan Malov

On 4/28/2021 3:17 PM, Andrew Rybchenko wrote:
> Decouple user mark from user flag. Usage of mark does not require to
> use flag as well. Flag is not actually supported yet.
> 
> Fixes: 1aacc3d388d3 ("net/sfc: support user mark and flag Rx for EF100")
> Cc: stabledpdk.org

    Cc: stable@dpdk.org

> 
> Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
> Reviewed-by: Ivan Malov <ivan.malov@oktetlabs.ru>

Applied to dpdk-next-net/main, thanks.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-04-30 16:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-28 14:17 [dpdk-dev] [PATCH] net/sfc: fix mark support in EF100 native Rx datapath Andrew Rybchenko
2021-04-30 16:07 ` Ferruh Yigit

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).