DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] net/i40e: fix forward outer IPv6 VXLAN packets
@ 2021-11-02  7:08 Jie Wang
  2021-11-05  3:18 ` Xing, Beilei
  2021-11-05  3:37 ` [dpdk-dev] [PATCH v2] " Jie Wang
  0 siblings, 2 replies; 7+ messages in thread
From: Jie Wang @ 2021-11-02  7:08 UTC (permalink / raw)
  To: dev
  Cc: yuying.zhang, xiaoyun.li, stevex.yang, beilei.xing, qi.z.zhang,
	Jie Wang, stable

Testpmd forwards packets in checksum mode that it need to calculate
the checksum of each layer's protocol. Then it will fill flags and
header length into mbuf.

In process_outer_cksums, HW calculates the outer checksum if
tx_offloads contains outer UDP checksum otherwise SW calculates
the outer checksum.

When tx_offloads contains outer UDP checksum or outer IPv4 checksum,
mbuf will be filled with correct header length.

This patch added outer UDP checksum in tx_offload_capa and
I40E_TX_OFFLOAD_MASK, when we set csum hw outer-udp on that the
engine can forward outer IPv6 VXLAN packets.

Fixes: 399421100e08 ("net/i40e: fix missing mbuf fast free offload")
Cc: stable@dpdk.org

Signed-off-by: Jie Wang <jie1x.wang@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 1 +
 drivers/net/i40e/i40e_rxtx.c   | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 62e374d19e..faf6391350 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -3746,6 +3746,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO |
 		RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO |
 		RTE_ETH_TX_OFFLOAD_MULTI_SEGS |
+		RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM |
 		dev_info->tx_queue_offload_capa;
 	dev_info->dev_capa =
 		RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 6ccb598677..41fe3bf481 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -65,6 +65,7 @@
 		RTE_MBUF_F_TX_QINQ |       \
 		RTE_MBUF_F_TX_VLAN |	\
 		RTE_MBUF_F_TX_TUNNEL_MASK |	\
+		RTE_MBUF_F_TX_OUTER_UDP_CKSUM |	\
 		I40E_TX_IEEE1588_TMST)
 
 #define I40E_TX_OFFLOAD_NOTSUP_MASK \
-- 
2.25.1


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

* Re: [dpdk-dev] [PATCH] net/i40e: fix forward outer IPv6 VXLAN packets
  2021-11-02  7:08 [dpdk-dev] [PATCH] net/i40e: fix forward outer IPv6 VXLAN packets Jie Wang
@ 2021-11-05  3:18 ` Xing, Beilei
  2021-11-05  3:37 ` [dpdk-dev] [PATCH v2] " Jie Wang
  1 sibling, 0 replies; 7+ messages in thread
From: Xing, Beilei @ 2021-11-05  3:18 UTC (permalink / raw)
  To: Wang, Jie1X, dev
  Cc: Zhang, Yuying, Li, Xiaoyun, Yang, SteveX, Zhang, Qi Z, stable



> -----Original Message-----
> From: Wang, Jie1X <jie1x.wang@intel.com>
> Sent: Tuesday, November 2, 2021 3:08 PM
> To: dev@dpdk.org
> Cc: Zhang, Yuying <yuying.zhang@intel.com>; Li, Xiaoyun
> <xiaoyun.li@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Xing, Beilei
> <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; Wang, Jie1X
> <jie1x.wang@intel.com>; stable@dpdk.org
> Subject: [PATCH] net/i40e: fix forward outer IPv6 VXLAN packets
> 
> Testpmd forwards packets in checksum mode that it need to calculate the
> checksum of each layer's protocol. Then it will fill flags and header length into
> mbuf.
> 
> In process_outer_cksums, HW calculates the outer checksum if tx_offloads
> contains outer UDP checksum otherwise SW calculates the outer checksum.
> 
> When tx_offloads contains outer UDP checksum or outer IPv4 checksum,
> mbuf will be filled with correct header length.
> 
> This patch added outer UDP checksum in tx_offload_capa and
> I40E_TX_OFFLOAD_MASK, when we set csum hw outer-udp on that the
> engine can forward outer IPv6 VXLAN packets.
> 
> Fixes: 399421100e08 ("net/i40e: fix missing mbuf fast free offload")
Seems it's not the right fix line. Could you check if it should be 7497d3e2f777 ("net/i40e: convert to new Tx offloads API").

> Cc: stable@dpdk.org
> 
> Signed-off-by: Jie Wang <jie1x.wang@intel.com>
> ---
>  drivers/net/i40e/i40e_ethdev.c | 1 +
>  drivers/net/i40e/i40e_rxtx.c   | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 62e374d19e..faf6391350 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -3746,6 +3746,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>  		RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO |
>  		RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO |
>  		RTE_ETH_TX_OFFLOAD_MULTI_SEGS |
> +		RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM |
>  		dev_info->tx_queue_offload_capa;
>  	dev_info->dev_capa =
>  		RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | diff --git
> a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index
> 6ccb598677..41fe3bf481 100644
> --- a/drivers/net/i40e/i40e_rxtx.c
> +++ b/drivers/net/i40e/i40e_rxtx.c
> @@ -65,6 +65,7 @@
>  		RTE_MBUF_F_TX_QINQ |       \
>  		RTE_MBUF_F_TX_VLAN |	\
>  		RTE_MBUF_F_TX_TUNNEL_MASK |	\
> +		RTE_MBUF_F_TX_OUTER_UDP_CKSUM |	\
>  		I40E_TX_IEEE1588_TMST)
> 
>  #define I40E_TX_OFFLOAD_NOTSUP_MASK \
> --
> 2.25.1


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

* [dpdk-dev] [PATCH v2] net/i40e: fix forward outer IPv6 VXLAN packets
  2021-11-02  7:08 [dpdk-dev] [PATCH] net/i40e: fix forward outer IPv6 VXLAN packets Jie Wang
  2021-11-05  3:18 ` Xing, Beilei
@ 2021-11-05  3:37 ` Jie Wang
  2021-11-05  3:48   ` Xing, Beilei
  2024-03-29  8:16   ` [dpdk-dev] " David Marchand
  1 sibling, 2 replies; 7+ messages in thread
From: Jie Wang @ 2021-11-05  3:37 UTC (permalink / raw)
  To: dev
  Cc: yuying.zhang, xiaoyun.li, stevex.yang, beilei.xing, qi.z.zhang,
	Jie Wang, stable

Testpmd forwards packets in checksum mode that it need to calculate
the checksum of each layer's protocol. Then it will fill flags and
header length into mbuf.

In process_outer_cksums, HW calculates the outer checksum if
tx_offloads contains outer UDP checksum otherwise SW calculates
the outer checksum.

When tx_offloads contains outer UDP checksum or outer IPv4 checksum,
mbuf will be filled with correct header length.

This patch added outer UDP checksum in tx_offload_capa and
I40E_TX_OFFLOAD_MASK, when we set csum hw outer-udp on that the
engine can forward outer IPv6 VXLAN packets.

Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")
Cc: stable@dpdk.org

Signed-off-by: Jie Wang <jie1x.wang@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 1 +
 drivers/net/i40e/i40e_rxtx.c   | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 9ea5f303ff..344cbd25d3 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -3746,6 +3746,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO |
 		RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO |
 		RTE_ETH_TX_OFFLOAD_MULTI_SEGS |
+		RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM |
 		dev_info->tx_queue_offload_capa;
 	dev_info->dev_capa =
 		RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 6ccb598677..41fe3bf481 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -65,6 +65,7 @@
 		RTE_MBUF_F_TX_QINQ |       \
 		RTE_MBUF_F_TX_VLAN |	\
 		RTE_MBUF_F_TX_TUNNEL_MASK |	\
+		RTE_MBUF_F_TX_OUTER_UDP_CKSUM |	\
 		I40E_TX_IEEE1588_TMST)
 
 #define I40E_TX_OFFLOAD_NOTSUP_MASK \
-- 
2.25.1


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

* Re: [dpdk-dev] [PATCH v2] net/i40e: fix forward outer IPv6 VXLAN packets
  2021-11-05  3:37 ` [dpdk-dev] [PATCH v2] " Jie Wang
@ 2021-11-05  3:48   ` Xing, Beilei
  2021-11-11 18:25     ` [dpdk-stable] " Ferruh Yigit
  2024-03-29  8:16   ` [dpdk-dev] " David Marchand
  1 sibling, 1 reply; 7+ messages in thread
From: Xing, Beilei @ 2021-11-05  3:48 UTC (permalink / raw)
  To: Wang, Jie1X, dev
  Cc: Zhang, Yuying, Li, Xiaoyun, Yang, SteveX, Zhang, Qi Z, stable



> -----Original Message-----
> From: Wang, Jie1X <jie1x.wang@intel.com>
> Sent: Friday, November 5, 2021 11:37 AM
> To: dev@dpdk.org
> Cc: Zhang, Yuying <yuying.zhang@intel.com>; Li, Xiaoyun
> <xiaoyun.li@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Xing, Beilei
> <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; Wang, Jie1X
> <jie1x.wang@intel.com>; stable@dpdk.org
> Subject: [PATCH v2] net/i40e: fix forward outer IPv6 VXLAN packets
> 
> Testpmd forwards packets in checksum mode that it need to calculate the
> checksum of each layer's protocol. Then it will fill flags and header length into
> mbuf.
> 
> In process_outer_cksums, HW calculates the outer checksum if tx_offloads
> contains outer UDP checksum otherwise SW calculates the outer checksum.
> 
> When tx_offloads contains outer UDP checksum or outer IPv4 checksum,
> mbuf will be filled with correct header length.
> 
> This patch added outer UDP checksum in tx_offload_capa and
> I40E_TX_OFFLOAD_MASK, when we set csum hw outer-udp on that the
> engine can forward outer IPv6 VXLAN packets.
> 
> Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Jie Wang <jie1x.wang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>

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

* Re: [dpdk-stable] [PATCH v2] net/i40e: fix forward outer IPv6 VXLAN packets
  2021-11-05  3:48   ` Xing, Beilei
@ 2021-11-11 18:25     ` Ferruh Yigit
  0 siblings, 0 replies; 7+ messages in thread
From: Ferruh Yigit @ 2021-11-11 18:25 UTC (permalink / raw)
  To: Xing, Beilei, Wang, Jie1X, dev
  Cc: Zhang, Yuying, Li, Xiaoyun, Yang, SteveX, Zhang, Qi Z, stable

On 11/5/2021 3:48 AM, Xing, Beilei wrote:
> 
> 
>> -----Original Message-----
>> From: Wang, Jie1X <jie1x.wang@intel.com>
>> Sent: Friday, November 5, 2021 11:37 AM
>> To: dev@dpdk.org
>> Cc: Zhang, Yuying <yuying.zhang@intel.com>; Li, Xiaoyun
>> <xiaoyun.li@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Xing, Beilei
>> <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; Wang, Jie1X
>> <jie1x.wang@intel.com>; stable@dpdk.org
>> Subject: [PATCH v2] net/i40e: fix forward outer IPv6 VXLAN packets
>>
>> Testpmd forwards packets in checksum mode that it need to calculate the
>> checksum of each layer's protocol. Then it will fill flags and header length into
>> mbuf.
>>
>> In process_outer_cksums, HW calculates the outer checksum if tx_offloads
>> contains outer UDP checksum otherwise SW calculates the outer checksum.
>>
>> When tx_offloads contains outer UDP checksum or outer IPv4 checksum,
>> mbuf will be filled with correct header length.
>>
>> This patch added outer UDP checksum in tx_offload_capa and
>> I40E_TX_OFFLOAD_MASK, when we set csum hw outer-udp on that the
>> engine can forward outer IPv6 VXLAN packets.
>>
>> Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Jie Wang <jie1x.wang@intel.com>
> Acked-by: Beilei Xing <beilei.xing@intel.com>
> 

For record,
This patch has been merged to next-net-intel, and pulled to next-net from there.


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

* Re: [dpdk-dev] [PATCH v2] net/i40e: fix forward outer IPv6 VXLAN packets
  2021-11-05  3:37 ` [dpdk-dev] [PATCH v2] " Jie Wang
  2021-11-05  3:48   ` Xing, Beilei
@ 2024-03-29  8:16   ` David Marchand
  1 sibling, 0 replies; 7+ messages in thread
From: David Marchand @ 2024-03-29  8:16 UTC (permalink / raw)
  To: Bruce Richardson, Mcnamara, John
  Cc: dev, yuying.zhang, xiaoyun.li, stevex.yang, beilei.xing,
	qi.z.zhang, Jie Wang, stable, Kevin Traynor, Vladimir Medvedkin

Hello Bruce, John,

On Fri, Nov 5, 2021 at 4:39 AM Jie Wang <jie1x.wang@intel.com> wrote:
>
> Testpmd forwards packets in checksum mode that it need to calculate
> the checksum of each layer's protocol. Then it will fill flags and
> header length into mbuf.
>
> In process_outer_cksums, HW calculates the outer checksum if
> tx_offloads contains outer UDP checksum otherwise SW calculates
> the outer checksum.
>
> When tx_offloads contains outer UDP checksum or outer IPv4 checksum,
> mbuf will be filled with correct header length.
>
> This patch added outer UDP checksum in tx_offload_capa and
> I40E_TX_OFFLOAD_MASK, when we set csum hw outer-udp on that the
> engine can forward outer IPv6 VXLAN packets.
>
> Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")
> Cc: stable@dpdk.org
>
> Signed-off-by: Jie Wang <jie1x.wang@intel.com>

- There is a bz opened by a OVS user trying to offload geneve checksum.
https://bugs.dpdk.org/show_bug.cgi?id=1406

Reading the X7xx datasheet, parsing i40e_parse_tunneling_params() and
looking at the packets reported by the user, I understand that outer
udp checksum is actually *not* supported by net/i40e.
And so the change from this mail thread should be reverted as the
driver falsely claims support for this feature.


- I found some bits about X722 (5535087e6c56 ("i40e/base: add outer
UDP checksum for X722")) supporting this feature, but I did not find a
definition in the datasheet.
Besides, this I40E_TXD_CTX_QW0_L4T_CS_MASK is not used in the net/i40e tx path.


We need Intel to clear state what is supported or not, and send fixes
accordingly.

Thanks.

-- 
David Marchand


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

* [dpdk-dev] [PATCH] net/i40e: fix forward outer IPv6 VXLAN packets
@ 2021-11-02  7:03 Jie Wang
  0 siblings, 0 replies; 7+ messages in thread
From: Jie Wang @ 2021-11-02  7:03 UTC (permalink / raw)
  To: dev
  Cc: yuying.zhang, xiaoyun.li, stevex.yang, beilei.xing, qi.z.zhang,
	Jie Wang, statble

Testpmd forwards packets in checksum mode that it need to calculate
the checksum of each layer's protocol. Then it will fill flags and
header length into mbuf.

In process_outer_cksums, HW calculates the outer checksum if
tx_offloads contains outer UDP checksum otherwise SW calculates
the outer checksum.

When tx_offloads contains outer UDP checksum or outer IPv4 checksum,
mbuf will be filled with correct header length.

This patch added outer UDP checksum in tx_offload_capa and
I40E_TX_OFFLOAD_MASK, when we set csum hw outer-udp on that the
engine can forward outer IPv6 VXLAN packets.

Fixes: 399421100e08 ("net/i40e: fix missing mbuf fast free offload")
Cc: statble@dpdk.org

Signed-off-by: Jie Wang <jie1x.wang@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 1 +
 drivers/net/i40e/i40e_rxtx.c   | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 62e374d19e..faf6391350 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -3746,6 +3746,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO |
 		RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO |
 		RTE_ETH_TX_OFFLOAD_MULTI_SEGS |
+		RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM |
 		dev_info->tx_queue_offload_capa;
 	dev_info->dev_capa =
 		RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 6ccb598677..41fe3bf481 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -65,6 +65,7 @@
 		RTE_MBUF_F_TX_QINQ |       \
 		RTE_MBUF_F_TX_VLAN |	\
 		RTE_MBUF_F_TX_TUNNEL_MASK |	\
+		RTE_MBUF_F_TX_OUTER_UDP_CKSUM |	\
 		I40E_TX_IEEE1588_TMST)
 
 #define I40E_TX_OFFLOAD_NOTSUP_MASK \
-- 
2.25.1


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

end of thread, other threads:[~2024-03-29  8:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-02  7:08 [dpdk-dev] [PATCH] net/i40e: fix forward outer IPv6 VXLAN packets Jie Wang
2021-11-05  3:18 ` Xing, Beilei
2021-11-05  3:37 ` [dpdk-dev] [PATCH v2] " Jie Wang
2021-11-05  3:48   ` Xing, Beilei
2021-11-11 18:25     ` [dpdk-stable] " Ferruh Yigit
2024-03-29  8:16   ` [dpdk-dev] " David Marchand
  -- strict thread matches above, loose matches on Subject: below --
2021-11-02  7:03 [dpdk-dev] [PATCH] " Jie Wang

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