[1/2] doc: clarify L3 Tx checksum prerequisite

Message ID 20181005044606.27026-1-jerin.jacob@caviumnetworks.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series [1/2] doc: clarify L3 Tx checksum prerequisite |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Jerin Jacob Oct. 5, 2018, 4:46 a.m. UTC
  Based on PKT_TX_IP_CKSUM definition the user needs
to fill l2_len and l3_len mbuf fields before issuing
HW Tx checksum request.

Fixes: dad1ec72a377 ("doc: document NIC features")
Cc: stable@dpdk.org

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---

See PKT_TX_IP_CKSUM at
https://git.dpdk.org/dpdk/tree/lib/librte_mbuf/rte_mbuf.h#n283

---
 doc/guides/nics/features.rst | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Andrew Rybchenko Oct. 5, 2018, 6:44 a.m. UTC | #1
On 10/5/18 7:46 AM, Jerin Jacob wrote:
> Based on PKT_TX_IP_CKSUM definition the user needs
> to fill l2_len and l3_len mbuf fields before issuing
> HW Tx checksum request.
>
> Fixes: dad1ec72a377 ("doc: document NIC features")
> Cc: stable@dpdk.org
>
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>

plus one question below

> ---
>
> See PKT_TX_IP_CKSUM at
> https://git.dpdk.org/dpdk/tree/lib/librte_mbuf/rte_mbuf.h#n283
>
> ---
>   doc/guides/nics/features.rst | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
> index b085bda86..e726a6bb8 100644
> --- a/doc/guides/nics/features.rst
> +++ b/doc/guides/nics/features.rst
> @@ -562,6 +562,7 @@ Supports L3 checksum offload.
>   * **[uses]     rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_IPV4_CKSUM``.
>   * **[uses]     mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``,
>     ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``.

Shouldn't PKT_TX_IPV6 be removed above since L3 checksum offload is not 
applicable for IPv6?

> +* **[uses]     mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``.
>   * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_IP_CKSUM_UNKNOWN`` |
>     ``PKT_RX_IP_CKSUM_BAD`` | ``PKT_RX_IP_CKSUM_GOOD`` |
>     ``PKT_RX_IP_CKSUM_NONE``.
  
Jerin Jacob Oct. 5, 2018, 7:06 a.m. UTC | #2
-----Original Message-----
> Date: Fri, 5 Oct 2018 09:44:43 +0300
> From: Andrew Rybchenko <arybchenko@solarflare.com>
> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>, John McNamara
>  <john.mcnamara@intel.com>, Marko Kovacevic <marko.kovacevic@intel.com>
> CC: dev@dpdk.org, thomas@monjalon.net, ferruh.yigit@intel.com,
>  olivier.matz@6wind.com, stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 1/2] doc: clarify L3 Tx checksum prerequisite
> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
>  Thunderbird/60.0
> 
> External Email
> 
> On 10/5/18 7:46 AM, Jerin Jacob wrote:
> 
> Based on PKT_TX_IP_CKSUM definition the user needs
> to fill l2_len and l3_len mbuf fields before issuing
> HW Tx checksum request.
> 
> Fixes: dad1ec72a377 ("doc: document NIC features")
> Cc: stable@dpdk.org<mailto:stable@dpdk.org>
> 
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com><mailto:jerin.jacob@caviumnetworks.com>
> 
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com><mailto:arybchenko@solarflare.com>
> 
> plus one question below
> 
> 
> ---
> 
> See PKT_TX_IP_CKSUM at
> https://git.dpdk.org/dpdk/tree/lib/librte_mbuf/rte_mbuf.h#n283
> 
> ---
> doc/guides/nics/features.rst | 1 +
> 1 file changed, 1 insertion(+)
> 
> diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
> index b085bda86..e726a6bb8 100644
> --- a/doc/guides/nics/features.rst
> +++ b/doc/guides/nics/features.rst
> @@ -562,6 +562,7 @@ Supports L3 checksum offload.
> * **[uses]     rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_IPV4_CKSUM``.
> * **[uses]     mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``,
>   ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``.
> 
> Shouldn't PKT_TX_IPV6 be removed above since L3 checksum offload is not applicable for IPv6?

I think, some HW(What I am aware of) need to provide following[1] info in Tx
descriptors for checksum. IPV6 may be used by the HW in case, packet is
tunneled to see where inner start etc(thought it has outer_l3_len)(not strictly from outer checksum
perspective)

[1]
- IPV4
- IPV4 with csum
- IPV6


> 
> 
> 
> +* **[uses]     mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``.
> * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_IP_CKSUM_UNKNOWN`` |
>   ``PKT_RX_IP_CKSUM_BAD`` | ``PKT_RX_IP_CKSUM_GOOD`` |
>   ``PKT_RX_IP_CKSUM_NONE``.
> 
>
  
Ferruh Yigit Oct. 5, 2018, 7:56 p.m. UTC | #3
On 10/5/2018 5:46 AM, Jerin Jacob wrote:
> Based on PKT_TX_IP_CKSUM definition the user needs
> to fill l2_len and l3_len mbuf fields before issuing
> HW Tx checksum request.
> 
> Fixes: dad1ec72a377 ("doc: document NIC features")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> ---
> 
> See PKT_TX_IP_CKSUM at
> https://git.dpdk.org/dpdk/tree/lib/librte_mbuf/rte_mbuf.h#n283
> 
> ---
>  doc/guides/nics/features.rst | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
> index b085bda86..e726a6bb8 100644
> --- a/doc/guides/nics/features.rst
> +++ b/doc/guides/nics/features.rst
> @@ -562,6 +562,7 @@ Supports L3 checksum offload.
>  * **[uses]     rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_IPV4_CKSUM``.
>  * **[uses]     mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``,
>    ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``.
> +* **[uses]     mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``.

Thanks this was missing.

``mbuf.l2_len``, ``mbuf.l3_len`` are required for TX CKSUM offload, in
documentation there is no distinction for Rx or Tx, do you think does it worth
to clarify PMD `uses` these values for Tx cksum offload only?


>  * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_IP_CKSUM_UNKNOWN`` |
>    ``PKT_RX_IP_CKSUM_BAD`` | ``PKT_RX_IP_CKSUM_GOOD`` |
>    ``PKT_RX_IP_CKSUM_NONE``.
>
  
Jerin Jacob Oct. 6, 2018, 8:05 a.m. UTC | #4
-----Original Message-----
> Date: Fri, 5 Oct 2018 20:56:47 +0100
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>, John McNamara
>  <john.mcnamara@intel.com>, Marko Kovacevic <marko.kovacevic@intel.com>
> CC: dev@dpdk.org, thomas@monjalon.net, arybchenko@solarflare.com,
>  olivier.matz@6wind.com, stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 1/2] doc: clarify L3 Tx checksum prerequisite
> User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
>  Thunderbird/52.9.1
> 
> External Email
> 
> On 10/5/2018 5:46 AM, Jerin Jacob wrote:
> > Based on PKT_TX_IP_CKSUM definition the user needs
> > to fill l2_len and l3_len mbuf fields before issuing
> > HW Tx checksum request.
> >
> > Fixes: dad1ec72a377 ("doc: document NIC features")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > ---
> >
> > See PKT_TX_IP_CKSUM at
> > https://git.dpdk.org/dpdk/tree/lib/librte_mbuf/rte_mbuf.h#n283
> >
> > ---
> >  doc/guides/nics/features.rst | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
> > index b085bda86..e726a6bb8 100644
> > --- a/doc/guides/nics/features.rst
> > +++ b/doc/guides/nics/features.rst
> > @@ -562,6 +562,7 @@ Supports L3 checksum offload.
> >  * **[uses]     rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_IPV4_CKSUM``.
> >  * **[uses]     mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``,
> >    ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``.
> > +* **[uses]     mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``.
> 
> Thanks this was missing.
> 
> ``mbuf.l2_len``, ``mbuf.l3_len`` are required for TX CKSUM offload, in
> documentation there is no distinction for Rx or Tx, do you think does it worth
> to clarify PMD `uses` these values for Tx cksum offload only?

IMO, there will not be any confusion as mbuf.l2_len comes under
uint64_t tx_offload in struct rte_mbuf.



> 
> 
> >  * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_IP_CKSUM_UNKNOWN`` |
> >    ``PKT_RX_IP_CKSUM_BAD`` | ``PKT_RX_IP_CKSUM_GOOD`` |
> >    ``PKT_RX_IP_CKSUM_NONE``.
> >
>
  
Ferruh Yigit Oct. 9, 2018, 10:19 a.m. UTC | #5
On 10/5/2018 7:44 AM, Andrew Rybchenko wrote:
> On 10/5/18 7:46 AM, Jerin Jacob wrote:
>> Based on PKT_TX_IP_CKSUM definition the user needs
>> to fill l2_len and l3_len mbuf fields before issuing
>> HW Tx checksum request.
>>
>> Fixes: dad1ec72a377 ("doc: document NIC features")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> 
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>

Series applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index b085bda86..e726a6bb8 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -562,6 +562,7 @@  Supports L3 checksum offload.
 * **[uses]     rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_IPV4_CKSUM``.
 * **[uses]     mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``,
   ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``.
+* **[uses]     mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``.
 * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_IP_CKSUM_UNKNOWN`` |
   ``PKT_RX_IP_CKSUM_BAD`` | ``PKT_RX_IP_CKSUM_GOOD`` |
   ``PKT_RX_IP_CKSUM_NONE``.