[PATCH][SRU Artful] net: thunderx: Fix TCP/UDP checksum offload for IPv6 pkts

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH][SRU Artful] net: thunderx: Fix TCP/UDP checksum offload for IPv6 pkts

dann frazier-4
BugLink: https://bugs.launchpad.net/bugs/1736593

Don't offload IP header checksum to NIC.

This fixes a previous patch which enabled checksum offloading
for both IPv4 and IPv6 packets.  So L3 checksum offload was
getting enabled for IPv6 pkts.  And HW is dropping these pkts
as it assumes the pkt is IPv4 when IP csum offload is set
in the SQ descriptor.

Fixes:  3a9024f52c2e ("net: thunderx: Enable TSO and checksum offloads for ipv6")
Signed-off-by: Sunil Goutham <[hidden email]>
Signed-off-by: Aleksey Makarov <[hidden email]>
Reviewed-by: Eric Dumazet <[hidden email]>
Signed-off-by: David S. Miller <[hidden email]>
(cherry picked from commit fa6d7cb5d76cf0467c61420fc9238045aedfd379)
Signed-off-by: dann frazier <[hidden email]>
---
 drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
index d4496e9afcdf..8b2c31e2a2b0 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
@@ -1355,7 +1355,6 @@ nicvf_sq_add_hdr_subdesc(struct nicvf *nic, struct snd_queue *sq, int qentry,
 
  /* Offload checksum calculation to HW */
  if (skb->ip_summed == CHECKSUM_PARTIAL) {
- hdr->csum_l3 = 1; /* Enable IP csum calculation */
  hdr->l3_offset = skb_network_offset(skb);
  hdr->l4_offset = skb_transport_offset(skb);
 
--
2.15.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH][SRU Artful] net: thunderx: Fix TCP/UDP checksum offload for IPv6 pkts

dann frazier-4
Probably obvious, but now that bionic has diverged from artful, please
apply to the bionic tree as well.

On Tue, Dec 5, 2017 at 8:56 PM, dann frazier <[hidden email]> wrote:

> BugLink: https://bugs.launchpad.net/bugs/1736593
>
> Don't offload IP header checksum to NIC.
>
> This fixes a previous patch which enabled checksum offloading
> for both IPv4 and IPv6 packets.  So L3 checksum offload was
> getting enabled for IPv6 pkts.  And HW is dropping these pkts
> as it assumes the pkt is IPv4 when IP csum offload is set
> in the SQ descriptor.
>
> Fixes:  3a9024f52c2e ("net: thunderx: Enable TSO and checksum offloads for ipv6")
> Signed-off-by: Sunil Goutham <[hidden email]>
> Signed-off-by: Aleksey Makarov <[hidden email]>
> Reviewed-by: Eric Dumazet <[hidden email]>
> Signed-off-by: David S. Miller <[hidden email]>
> (cherry picked from commit fa6d7cb5d76cf0467c61420fc9238045aedfd379)
> Signed-off-by: dann frazier <[hidden email]>
> ---
>  drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
> index d4496e9afcdf..8b2c31e2a2b0 100644
> --- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
> +++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
> @@ -1355,7 +1355,6 @@ nicvf_sq_add_hdr_subdesc(struct nicvf *nic, struct snd_queue *sq, int qentry,
>
>         /* Offload checksum calculation to HW */
>         if (skb->ip_summed == CHECKSUM_PARTIAL) {
> -               hdr->csum_l3 = 1; /* Enable IP csum calculation */
>                 hdr->l3_offset = skb_network_offset(skb);
>                 hdr->l4_offset = skb_transport_offset(skb);
>
> --
> 2.15.1
>
>
> --
> kernel-team mailing list
> [hidden email]
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH][SRU Artful] net: thunderx: Fix TCP/UDP checksum offload for IPv6 pkts

dann frazier-4
In reply to this post by dann frazier-4
Please NAK - I've sent a new version w/ an additional fix.

On Tue, Dec 5, 2017 at 8:56 PM, dann frazier <[hidden email]> wrote:

> BugLink: https://bugs.launchpad.net/bugs/1736593
>
> Don't offload IP header checksum to NIC.
>
> This fixes a previous patch which enabled checksum offloading
> for both IPv4 and IPv6 packets.  So L3 checksum offload was
> getting enabled for IPv6 pkts.  And HW is dropping these pkts
> as it assumes the pkt is IPv4 when IP csum offload is set
> in the SQ descriptor.
>
> Fixes:  3a9024f52c2e ("net: thunderx: Enable TSO and checksum offloads for ipv6")
> Signed-off-by: Sunil Goutham <[hidden email]>
> Signed-off-by: Aleksey Makarov <[hidden email]>
> Reviewed-by: Eric Dumazet <[hidden email]>
> Signed-off-by: David S. Miller <[hidden email]>
> (cherry picked from commit fa6d7cb5d76cf0467c61420fc9238045aedfd379)
> Signed-off-by: dann frazier <[hidden email]>
> ---
>  drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
> index d4496e9afcdf..8b2c31e2a2b0 100644
> --- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
> +++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
> @@ -1355,7 +1355,6 @@ nicvf_sq_add_hdr_subdesc(struct nicvf *nic, struct snd_queue *sq, int qentry,
>
>         /* Offload checksum calculation to HW */
>         if (skb->ip_summed == CHECKSUM_PARTIAL) {
> -               hdr->csum_l3 = 1; /* Enable IP csum calculation */
>                 hdr->l3_offset = skb_network_offset(skb);
>                 hdr->l4_offset = skb_transport_offset(skb);
>
> --
> 2.15.1
>
>
> --
> kernel-team mailing list
> [hidden email]
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team