Thread (63 messages) 63 messages, 15 authors, 2016-10-30

RE: [PATCH net-next 5/6] net: use core MTU range checking in virt drivers

From: Haiyang Zhang via Virtualization <hidden>
Date: 2016-10-19 15:42:38
Also in: lkml, virtualization

quoted hunk ↗ jump to hunk
-----Original Message-----
From: Jarod Wilson [mailto:jarod@redhat.com]
Sent: Tuesday, October 18, 2016 10:34 PM
To: linux-kernel@vger.kernel.org
Cc: Jarod Wilson <redacted>; netdev@vger.kernel.org;
virtualization@lists.linux-foundation.org; KY Srinivasan
[off-list ref]; Haiyang Zhang [off-list ref]; Michael S.
Tsirkin [off-list ref]; Shrikrishna Khare [off-list ref]; VMware,
Inc. [off-list ref]
Subject: [PATCH net-next 5/6] net: use core MTU range checking in virt
drivers

hyperv_net:
- set min/max_mtu

virtio_net:
- set min/max_mtu
- remove virtnet_change_mtu

vmxnet3:
- set min/max_mtu

CC: netdev@vger.kernel.org
CC: virtualization@lists.linux-foundation.org
CC: "K. Y. Srinivasan" <kys@microsoft.com>
CC: Haiyang Zhang <haiyangz@microsoft.com>
CC: "Michael S. Tsirkin" <mst@redhat.com>
CC: Shrikrishna Khare <redacted>
CC: "VMware, Inc." <redacted>
Signed-off-by: Jarod Wilson <redacted>
---
 drivers/net/hyperv/hyperv_net.h   |  4 ++--
 drivers/net/hyperv/netvsc_drv.c   | 14 +++++++-------
 drivers/net/virtio_net.c          | 23 ++++++++++-------------
 drivers/net/vmxnet3/vmxnet3_drv.c |  7 ++++---
 4 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/drivers/net/hyperv/hyperv_net.h
b/drivers/net/hyperv/hyperv_net.h
index f4fbcb5..3958ada 100644
--- a/drivers/net/hyperv/hyperv_net.h
+++ b/drivers/net/hyperv/hyperv_net.h
@@ -606,8 +606,8 @@ struct nvsp_message {
 } __packed;


-#define NETVSC_MTU 65536
-#define NETVSC_MTU_MIN 68
+#define NETVSC_MTU 65535
Why change it to 65535? For Hyperv host, this should be 65536.

quoted hunk ↗ jump to hunk
@@ -1343,6 +1336,13 @@ static int netvsc_probe(struct hv_device *dev,

 	netif_carrier_off(net);

+	/* MTU range: 68 - 1500 or 65521 */
+	net->min_mtu = NETVSC_MTU_MIN;
+	if (nvdev->nvsp_version >= NVSP_PROTOCOL_VERSION_2)
+		net->max_mtu = NETVSC_MTU - ETH_HLEN;
+	else
+		net->max_mtu = ETH_DATA_LEN;
+
 	netvsc_init_settings(net);

 	net_device_ctx = netdev_priv(net);
nvdev->nvsp_version is not set until after rndis_filter_device_add()
is successfully completed.
You need to move this part to the place just before this line:
 ret = register_netdev(net);

Thanks,
- Haiyang
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help