diff mbox

[net] be2net: avoid vxlan offloading on multichannel configs

Message ID 1439584201-8699-1-git-send-email-ivecera@redhat.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Ivan Vecera Aug. 14, 2015, 8:30 p.m. UTC
VxLAN offloading is not functional if the NIC is running in multichannel
mode (UMC, FLEX-10, VNIC...). Enabling this additionally kills whole
connectivity through the NIC and the device needs to be down and up to
restore it. The firmware should take care about it and does not allow
the conversion of interface to tunnel type (be_cmd_manage_iface) or should
support VxLAN offloading if multichannel config is enabled.
I have tested this on the latest available firmware (10.6.144.21).

Result:
[root@sm-04 ~]# ip link set enp5s0f0 up[root@sm-04 ~]# ip addr add 172.30.10.50/24 dev enp5s0f0
[root@sm-04 ~]# ping -c 3 172.30.10.254PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.
64 bytes from 172.30.10.254: icmp_seq=1 ttl=64 time=0.317 ms
64 bytes from 172.30.10.254: icmp_seq=2 ttl=64 time=0.187 ms
64 bytes from 172.30.10.254: icmp_seq=3 ttl=64 time=0.188 ms

 --- 172.30.10.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.187/0.230/0.317/0.063 ms
[root@sm-04 ~]# ip link add link enp5s0f0 vxlan10 type vxlan id 10 remote 172.30.10.60 dstport 4789
[root@sm-04 ~]# ip link set vxlan10 up
[ 7900.442811] be2net 0000:05:00.0: Enabled VxLAN offloads for UDP port 4789
[ 7900.455722] be2net 0000:05:00.1: Enabled VxLAN offloads for UDP port 4789
[ 7900.468635] be2net 0000:05:00.2: Enabled VxLAN offloads for UDP port 4789
[ 7900.481553] be2net 0000:05:00.3: Enabled VxLAN offloads for UDP port 4789
[root@sm-04 ~]# ping -c 3 172.30.10.254
PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.

 --- 172.30.10.254 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms

[root@sm-04 ~]# ip link set vxlan10 down
[ 7959.434093] be2net 0000:05:00.0: Disabled VxLAN offloads for UDP port 4789
[ 7959.444792] be2net 0000:05:00.1: Disabled VxLAN offloads for UDP port 4789
[ 7959.455592] be2net 0000:05:00.2: Disabled VxLAN offloads for UDP port 4789
[ 7959.466416] be2net 0000:05:00.3: Disabled VxLAN offloads for UDP port 4789
[root@sm-04 ~]# ip link del vxlan10
[root@sm-04 ~]# ping -c 3 172.30.10.254
PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.

 --- 172.30.10.254 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms

[root@sm-04 ~]# ip link set enp5s0f0 down
[root@sm-04 ~]# ip link set enp5s0f0 up
[ 8071.019003] be2net 0000:05:00.0 enp5s0f0: Link is Up
[root@sm-04 ~]# ping -c 3 172.30.10.254
PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.
64 bytes from 172.30.10.254: icmp_seq=1 ttl=64 time=0.318 ms
64 bytes from 172.30.10.254: icmp_seq=2 ttl=64 time=0.196 ms
64 bytes from 172.30.10.254: icmp_seq=3 ttl=64 time=0.194 ms

 --- 172.30.10.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.194/0.236/0.318/0.057 ms

Cc: Sathya Perla <sathya.perla@avagotech.com>
Cc: Ajit Khaparde <ajit.khaparde@avagotech.com>
Cc: Padmanabh Ratnakar <padmanabh.ratnakar@avagotech.com>
Cc: Sriharsha Basavapatna <sriharsha.basavapatna@avagotech.com>
Signed-off-by: Ivan Vecera <ivecera@redhat.com>
---
 drivers/net/ethernet/emulex/benet/be_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Ajit Kumar Khaparde Aug. 14, 2015, 8:53 p.m. UTC | #1
> On Aug 14, 2015, at 3:30 PM, Ivan Vecera <ivecera@redhat.com> wrote:
> 
> VxLAN offloading is not functional if the NIC is running in multichannel
> mode (UMC, FLEX-10, VNIC...). Enabling this additionally kills whole
> connectivity through the NIC and the device needs to be down and up to
> restore it. The firmware should take care about it and does not allow
> the conversion of interface to tunnel type (be_cmd_manage_iface) or should
> support VxLAN offloading if multichannel config is enabled.
> I have tested this on the latest available firmware (10.6.144.21).
> 
> Result:
> [root@sm-04 ~]# ip link set enp5s0f0 up[root@sm-04 ~]# ip addr add 172.30.10.50/24 dev enp5s0f0
> [root@sm-04 ~]# ping -c 3 172.30.10.254PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.
> 64 bytes from 172.30.10.254: icmp_seq=1 ttl=64 time=0.317 ms
> 64 bytes from 172.30.10.254: icmp_seq=2 ttl=64 time=0.187 ms
> 64 bytes from 172.30.10.254: icmp_seq=3 ttl=64 time=0.188 ms
> 
> --- 172.30.10.254 ping statistics ---
> 3 packets transmitted, 3 received, 0% packet loss, time 2000ms
> rtt min/avg/max/mdev = 0.187/0.230/0.317/0.063 ms
> [root@sm-04 ~]# ip link add link enp5s0f0 vxlan10 type vxlan id 10 remote 172.30.10.60 dstport 4789
> [root@sm-04 ~]# ip link set vxlan10 up
> [ 7900.442811] be2net 0000:05:00.0: Enabled VxLAN offloads for UDP port 4789
> [ 7900.455722] be2net 0000:05:00.1: Enabled VxLAN offloads for UDP port 4789
> [ 7900.468635] be2net 0000:05:00.2: Enabled VxLAN offloads for UDP port 4789
> [ 7900.481553] be2net 0000:05:00.3: Enabled VxLAN offloads for UDP port 4789
> [root@sm-04 ~]# ping -c 3 172.30.10.254
> PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.
> 
> --- 172.30.10.254 ping statistics ---
> 3 packets transmitted, 0 received, 100% packet loss, time 1999ms
> 
> [root@sm-04 ~]# ip link set vxlan10 down
> [ 7959.434093] be2net 0000:05:00.0: Disabled VxLAN offloads for UDP port 4789
> [ 7959.444792] be2net 0000:05:00.1: Disabled VxLAN offloads for UDP port 4789
> [ 7959.455592] be2net 0000:05:00.2: Disabled VxLAN offloads for UDP port 4789
> [ 7959.466416] be2net 0000:05:00.3: Disabled VxLAN offloads for UDP port 4789
> [root@sm-04 ~]# ip link del vxlan10
> [root@sm-04 ~]# ping -c 3 172.30.10.254
> PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.
> 
> --- 172.30.10.254 ping statistics ---
> 3 packets transmitted, 0 received, 100% packet loss, time 1999ms
> 
> [root@sm-04 ~]# ip link set enp5s0f0 down
> [root@sm-04 ~]# ip link set enp5s0f0 up
> [ 8071.019003] be2net 0000:05:00.0 enp5s0f0: Link is Up
> [root@sm-04 ~]# ping -c 3 172.30.10.254
> PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data.
> 64 bytes from 172.30.10.254: icmp_seq=1 ttl=64 time=0.318 ms
> 64 bytes from 172.30.10.254: icmp_seq=2 ttl=64 time=0.196 ms
> 64 bytes from 172.30.10.254: icmp_seq=3 ttl=64 time=0.194 ms
> 
> --- 172.30.10.254 ping statistics ---
> 3 packets transmitted, 3 received, 0% packet loss, time 2000ms
> rtt min/avg/max/mdev = 0.194/0.236/0.318/0.057 ms
> 
> Cc: Sathya Perla <sathya.perla@avagotech.com>
> Cc: Ajit Khaparde <ajit.khaparde@avagotech.com>
> Cc: Padmanabh Ratnakar <padmanabh.ratnakar@avagotech.com>
> Cc: Sriharsha Basavapatna <sriharsha.basavapatna@avagotech.com>
> Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Acked-by: Ajit Khaparde <ajit.khaparde@avagotech.com>

 
> ---
> drivers/net/ethernet/emulex/benet/be_main.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
> index c28e3bf..6ca693b 100644
> --- a/drivers/net/ethernet/emulex/benet/be_main.c
> +++ b/drivers/net/ethernet/emulex/benet/be_main.c
> @@ -5174,7 +5174,7 @@ static void be_add_vxlan_port(struct net_device *netdev, sa_family_t sa_family,
> 	struct device *dev = &adapter->pdev->dev;
> 	int status;
> 
> -	if (lancer_chip(adapter) || BEx_chip(adapter))
> +	if (lancer_chip(adapter) || BEx_chip(adapter) || be_is_mc(adapter))
> 		return;
> 
> 	if (adapter->flags & BE_FLAGS_VXLAN_OFFLOADS) {
> @@ -5221,7 +5221,7 @@ static void be_del_vxlan_port(struct net_device *netdev, sa_family_t sa_family,
> {
> 	struct be_adapter *adapter = netdev_priv(netdev);
> 
> -	if (lancer_chip(adapter) || BEx_chip(adapter))
> +	if (lancer_chip(adapter) || BEx_chip(adapter) || be_is_mc(adapter))
> 		return;
> 
> 	if (adapter->vxlan_port != port)
> -- 
> 2.4.6
> 

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Aug. 17, 2015, 9:30 p.m. UTC | #2
From: Ivan Vecera <ivecera@redhat.com>
Date: Fri, 14 Aug 2015 22:30:01 +0200

> VxLAN offloading is not functional if the NIC is running in multichannel
> mode (UMC, FLEX-10, VNIC...). Enabling this additionally kills whole
> connectivity through the NIC and the device needs to be down and up to
> restore it. The firmware should take care about it and does not allow
> the conversion of interface to tunnel type (be_cmd_manage_iface) or should
> support VxLAN offloading if multichannel config is enabled.
> I have tested this on the latest available firmware (10.6.144.21).
 ...
> Cc: Sathya Perla <sathya.perla@avagotech.com>
> Cc: Ajit Khaparde <ajit.khaparde@avagotech.com>
> Cc: Padmanabh Ratnakar <padmanabh.ratnakar@avagotech.com>
> Cc: Sriharsha Basavapatna <sriharsha.basavapatna@avagotech.com>
> Signed-off-by: Ivan Vecera <ivecera@redhat.com>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index c28e3bf..6ca693b 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -5174,7 +5174,7 @@  static void be_add_vxlan_port(struct net_device *netdev, sa_family_t sa_family,
 	struct device *dev = &adapter->pdev->dev;
 	int status;
 
-	if (lancer_chip(adapter) || BEx_chip(adapter))
+	if (lancer_chip(adapter) || BEx_chip(adapter) || be_is_mc(adapter))
 		return;
 
 	if (adapter->flags & BE_FLAGS_VXLAN_OFFLOADS) {
@@ -5221,7 +5221,7 @@  static void be_del_vxlan_port(struct net_device *netdev, sa_family_t sa_family,
 {
 	struct be_adapter *adapter = netdev_priv(netdev);
 
-	if (lancer_chip(adapter) || BEx_chip(adapter))
+	if (lancer_chip(adapter) || BEx_chip(adapter) || be_is_mc(adapter))
 		return;
 
 	if (adapter->vxlan_port != port)