netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/2] vxlan, bnx2x offload
@ 2013-04-28 18:16 Dmitry Kravkov
  2013-04-28 18:16 ` [PATCH net-next 1/2] vxlan: do not set SKB_GSO_UDP Dmitry Kravkov
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Dmitry Kravkov @ 2013-04-28 18:16 UTC (permalink / raw)
  To: eilong, davem, netdev; +Cc: pshelar, dmitry


Hi Dave,

The series fixes GSO flags in vxlan xmit code and
adds appropriate code for bnx2x driver to utilize
fw support for UDP tunneling protocols offload.

Netperf's results below show improvement in throughput
between two vxlan interfaces:
before:
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 9.0.0.2 (9.0.0.2) port 0 AF_INET
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

 87380  16384  16384    10.20     228.73   

after:
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 9.0.0.2 (9.0.0.2) port 0 AF_INET
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

 87380  16384  16384    10.00    3314.75   


Thanks,
Dmitry

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

* [PATCH net-next 1/2] vxlan: do not set SKB_GSO_UDP
  2013-04-28 18:16 [PATCH net-next 0/2] vxlan, bnx2x offload Dmitry Kravkov
@ 2013-04-28 18:16 ` Dmitry Kravkov
  2013-04-29 16:35   ` Pravin Shelar
  2013-04-28 18:16 ` [PATCH net-next 2/2] bnx2x: allow handling tunnel over udp offload Dmitry Kravkov
  2013-04-29 19:28 ` [PATCH net-next 0/2] vxlan, bnx2x offload David Miller
  2 siblings, 1 reply; 5+ messages in thread
From: Dmitry Kravkov @ 2013-04-28 18:16 UTC (permalink / raw)
  To: eilong, davem, netdev; +Cc: pshelar, dmitry

Since SKB_GSO_* flags are set by appropriate gso_segment callback
in TCP/UDP layer.

CC: Pravin B Shelar <pshelar@nicira.com> 
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
 drivers/net/vxlan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index a7fd9a0..b92c6a0 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -913,7 +913,7 @@ static int handle_offloads(struct sk_buff *skb)
 		if (unlikely(err))
 			return err;
 
-		skb_shinfo(skb)->gso_type |= (SKB_GSO_UDP_TUNNEL | SKB_GSO_UDP);
+		skb_shinfo(skb)->gso_type |= SKB_GSO_UDP_TUNNEL;
 	} else if (skb->ip_summed != CHECKSUM_PARTIAL)
 		skb->ip_summed = CHECKSUM_NONE;
 
-- 
1.8.1.4

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

* [PATCH net-next 2/2] bnx2x: allow handling tunnel over udp offload
  2013-04-28 18:16 [PATCH net-next 0/2] vxlan, bnx2x offload Dmitry Kravkov
  2013-04-28 18:16 ` [PATCH net-next 1/2] vxlan: do not set SKB_GSO_UDP Dmitry Kravkov
@ 2013-04-28 18:16 ` Dmitry Kravkov
  2013-04-29 19:28 ` [PATCH net-next 0/2] vxlan, bnx2x offload David Miller
  2 siblings, 0 replies; 5+ messages in thread
From: Dmitry Kravkov @ 2013-04-28 18:16 UTC (permalink / raw)
  To: eilong, davem, netdev; +Cc: pshelar, dmitry

CC: Pravin B Shelar <pshelar@nicira.com> 
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c  | 5 +++++
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index fd20a4f..466b512 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -3530,6 +3530,11 @@ static void bnx2x_update_pbds_gso_enc(struct sk_buff *skb,
 			ETH_TX_PARSE_2ND_BD_IP_HDR_LEN_OUTER_W_SHIFT) |
 		((skb->protocol == cpu_to_be16(ETH_P_8021Q)) <<
 			ETH_TX_PARSE_2ND_BD_LLC_SNAP_EN_SHIFT);
+
+	if (ip_hdr(skb)->protocol == IPPROTO_UDP) {
+		SET_FLAG(*global_data, ETH_TX_PARSE_2ND_BD_TUNNEL_UDP_EXIST, 1);
+		pbd2->tunnel_udp_hdr_start_w = skb_transport_offset(skb) >> 1;
+	}
 }
 
 /* called with netif_tx_lock
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 927f83a..91a0434 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -12043,11 +12043,11 @@ static int bnx2x_init_dev(struct bnx2x *bp, struct pci_dev *pdev,
 		NETIF_F_RXCSUM | NETIF_F_LRO | NETIF_F_GRO |
 		NETIF_F_RXHASH | NETIF_F_HW_VLAN_CTAG_TX;
 	if (!CHIP_IS_E1x(bp)) {
-		dev->hw_features |= NETIF_F_GSO_GRE;
+		dev->hw_features |= NETIF_F_GSO_GRE | NETIF_F_GSO_UDP_TUNNEL;
 		dev->hw_enc_features =
 			NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_SG |
 			NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6 |
-			NETIF_F_GSO_GRE;
+			NETIF_F_GSO_GRE | NETIF_F_GSO_UDP_TUNNEL;
 	}
 
 	dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
-- 
1.8.1.4

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

* Re: [PATCH net-next 1/2] vxlan: do not set SKB_GSO_UDP
  2013-04-28 18:16 ` [PATCH net-next 1/2] vxlan: do not set SKB_GSO_UDP Dmitry Kravkov
@ 2013-04-29 16:35   ` Pravin Shelar
  0 siblings, 0 replies; 5+ messages in thread
From: Pravin Shelar @ 2013-04-29 16:35 UTC (permalink / raw)
  To: Dmitry Kravkov; +Cc: eilong, davem, netdev

On Sun, Apr 28, 2013 at 11:16 AM, Dmitry Kravkov <dmitry@broadcom.com> wrote:
> Since SKB_GSO_* flags are set by appropriate gso_segment callback
> in TCP/UDP layer.
>
> CC: Pravin B Shelar <pshelar@nicira.com>
> Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
> Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
> ---

udp flag was set since we are using udp offload handler for vxlan gso.
But I think it forces to have udp offload for tunnel offloading.
Therefore the change looks right.

Acked-by: Pravin B Shelar <pshelar@nicira.com>

>  drivers/net/vxlan.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
> index a7fd9a0..b92c6a0 100644
> --- a/drivers/net/vxlan.c
> +++ b/drivers/net/vxlan.c
> @@ -913,7 +913,7 @@ static int handle_offloads(struct sk_buff *skb)
>                 if (unlikely(err))
>                         return err;
>
> -               skb_shinfo(skb)->gso_type |= (SKB_GSO_UDP_TUNNEL | SKB_GSO_UDP);
> +               skb_shinfo(skb)->gso_type |= SKB_GSO_UDP_TUNNEL;
>         } else if (skb->ip_summed != CHECKSUM_PARTIAL)
>                 skb->ip_summed = CHECKSUM_NONE;
>
> --
> 1.8.1.4
>
>

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

* Re: [PATCH net-next 0/2] vxlan, bnx2x offload
  2013-04-28 18:16 [PATCH net-next 0/2] vxlan, bnx2x offload Dmitry Kravkov
  2013-04-28 18:16 ` [PATCH net-next 1/2] vxlan: do not set SKB_GSO_UDP Dmitry Kravkov
  2013-04-28 18:16 ` [PATCH net-next 2/2] bnx2x: allow handling tunnel over udp offload Dmitry Kravkov
@ 2013-04-29 19:28 ` David Miller
  2 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2013-04-29 19:28 UTC (permalink / raw)
  To: dmitry; +Cc: eilong, netdev, pshelar

From: "Dmitry Kravkov" <dmitry@broadcom.com>
Date: Sun, 28 Apr 2013 21:16:00 +0300

> The series fixes GSO flags in vxlan xmit code and
> adds appropriate code for bnx2x driver to utilize
> fw support for UDP tunneling protocols offload.

Series applied, thanks.

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

end of thread, other threads:[~2013-04-29 19:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-28 18:16 [PATCH net-next 0/2] vxlan, bnx2x offload Dmitry Kravkov
2013-04-28 18:16 ` [PATCH net-next 1/2] vxlan: do not set SKB_GSO_UDP Dmitry Kravkov
2013-04-29 16:35   ` Pravin Shelar
2013-04-28 18:16 ` [PATCH net-next 2/2] bnx2x: allow handling tunnel over udp offload Dmitry Kravkov
2013-04-29 19:28 ` [PATCH net-next 0/2] vxlan, bnx2x offload David Miller

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