Date: Fri, 1 Mar 2019 15:50:35 +0000 From: "aleksandr.fedorov_itglobal.com (Aleksandr Fedorov)" <phabric-noreply@FreeBSD.org> To: Phabricator <phabric-noreply@FreeBSD.org> Cc: freebsd-net@freebsd.org Subject: [Differential] D19422: if_vxlan(4) Allow set MTU more than 1500 bytes. Message-ID: <differential-rev-PHID-DREV-bvtxxu4jwhzdkwqxxgd7-req@reviews.freebsd.org>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
aleksandr.fedorov_itglobal.com created this revision.
aleksandr.fedorov_itglobal.com added reviewers: bryanv, hrs, network.
Herald added a subscriber: ae.
REVISION SUMMARY
It seems, there are no reason to prevent setting MTU more than 1500 bytes.
MTU greater than 1500 gives a significant increase in throughput.
TEST PLAN
iperf3 tests between two machines using vxlan over 10Gbit network with various MTU.
**Test 1. vxlan MTU -1500, physical network MTU - 9000**
# iperf3 -c 192.168.248.1
Connecting to host 192.168.248.1, port 5201
[ 5] local 192.168.248.2 port 1050 connected to 192.168.248.1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 175 MBytes 1.46 Gbits/sec 0 1.27 MBytes
[ 5] 1.00-2.01 sec 194 MBytes 1.63 Gbits/sec 0 1.27 MBytes
[ 5] 2.01-3.00 sec 195 MBytes 1.64 Gbits/sec 0 1.27 MBytes
[ 5] 3.00-4.01 sec 196 MBytes 1.64 Gbits/sec 0 1.27 MBytes
[ 5] 4.01-5.00 sec 195 MBytes 1.64 Gbits/sec 0 1.27 MBytes
[ 5] 5.00-6.00 sec 195 MBytes 1.63 Gbits/sec 0 1.27 MBytes
[ 5] 6.00-7.00 sec 196 MBytes 1.64 Gbits/sec 0 1.27 MBytes
[ 5] 7.00-8.00 sec 194 MBytes 1.64 Gbits/sec 0 1.27 MBytes
[ 5] 8.00-9.00 sec 191 MBytes 1.60 Gbits/sec 493 968 KBytes
[ 5] 9.00-10.00 sec 193 MBytes 1.62 Gbits/sec 0 1.15 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.88 GBytes 1.61 Gbits/sec 493 sender
[ 5] 0.00-10.00 sec 1.88 GBytes 1.61 Gbits/sec receiver
iperf Done.
**Test 2. vxlan MTU -8900, physical network MTU - 9000**
# iperf3 -c 192.168.248.1
Connecting to host 192.168.248.1, port 5201
[ 5] local 192.168.248.2 port 1052 connected to 192.168.248.1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 585 MBytes 4.90 Gbits/sec 0 1.28 MBytes
[ 5] 1.00-2.00 sec 655 MBytes 5.50 Gbits/sec 0 1.28 MBytes
[ 5] 2.00-3.00 sec 656 MBytes 5.50 Gbits/sec 0 1.28 MBytes
[ 5] 3.00-4.00 sec 655 MBytes 5.50 Gbits/sec 0 1.28 MBytes
[ 5] 4.00-5.00 sec 656 MBytes 5.50 Gbits/sec 0 1.28 MBytes
[ 5] 5.00-6.00 sec 655 MBytes 5.50 Gbits/sec 0 1.28 MBytes
[ 5] 6.00-7.00 sec 656 MBytes 5.50 Gbits/sec 0 1.28 MBytes
[ 5] 7.00-8.00 sec 658 MBytes 5.51 Gbits/sec 0 1.28 MBytes
[ 5] 8.00-9.00 sec 655 MBytes 5.50 Gbits/sec 0 1.28 MBytes
[ 5] 9.00-10.00 sec 655 MBytes 5.50 Gbits/sec 0 1.28 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 6.33 GBytes 5.44 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 6.33 GBytes 5.44 Gbits/sec receiver
iperf Done.
**Test 3. vxlan MTU -8900, physical network MTU - 1500**
# iperf3 -c 192.168.248.1
Connecting to host 192.168.248.1, port 5201
[ 5] local 192.168.248.2 port 1055 connected to 192.168.248.1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 301 MBytes 2.52 Gbits/sec 0 1.28 MBytes
[ 5] 1.00-2.00 sec 335 MBytes 2.81 Gbits/sec 0 1.28 MBytes
[ 5] 2.00-3.00 sec 336 MBytes 2.82 Gbits/sec 0 1.28 MBytes
[ 5] 3.00-4.00 sec 336 MBytes 2.82 Gbits/sec 0 1.28 MBytes
[ 5] 4.00-5.00 sec 335 MBytes 2.81 Gbits/sec 0 1.28 MBytes
[ 5] 5.00-6.00 sec 336 MBytes 2.82 Gbits/sec 0 1.28 MBytes
[ 5] 6.00-7.00 sec 336 MBytes 2.82 Gbits/sec 0 1.28 MBytes
[ 5] 7.00-8.00 sec 335 MBytes 2.81 Gbits/sec 0 1.28 MBytes
[ 5] 8.00-9.00 sec 336 MBytes 2.82 Gbits/sec 0 1.28 MBytes
[ 5] 9.00-10.00 sec 336 MBytes 2.82 Gbits/sec 0 1.28 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 3.25 GBytes 2.79 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 3.25 GBytes 2.79 Gbits/sec receiver
iperf Done.
REVISION DETAIL
https://reviews.freebsd.org/D19422
AFFECTED FILES
sys/net/if_vxlan.c
EMAIL PREFERENCES
https://reviews.freebsd.org/settings/panel/emailpreferences/
To: aleksandr.fedorov_itglobal.com, bryanv, hrs, #network
Cc: ae, freebsd-net-list, krzysztof.galazka_intel.com
[-- Attachment #2 --]
diff --git a/sys/net/if_vxlan.c b/sys/net/if_vxlan.c
--- a/sys/net/if_vxlan.c
+++ b/sys/net/if_vxlan.c
@@ -2248,10 +2248,11 @@
ifr = (struct ifreq *) data;
ifd = (struct ifdrv *) data;
+ error = 0;
+
switch (cmd) {
case SIOCADDMULTI:
case SIOCDELMULTI:
- error = 0;
break;
case SIOCGDRVSPEC:
@@ -2268,6 +2269,14 @@
error = ifmedia_ioctl(ifp, ifr, &sc->vxl_media, cmd);
break;
+ case SIOCSIFMTU:
+ if (ifr->ifr_mtu < ETHERMIN || ifr->ifr_mtu > ETHERMTU_JUMBO) {
+ error = EINVAL;
+ } else {
+ ifp->if_mtu = ifr->ifr_mtu;
+ }
+ break;
+
default:
error = ether_ioctl(ifp, cmd, data);
break;
@@ -2748,8 +2757,8 @@
ifp->if_ioctl = vxlan_ioctl;
ifp->if_transmit = vxlan_transmit;
ifp->if_qflush = vxlan_qflush;
- ifp->if_capabilities |= IFCAP_LINKSTATE;
- ifp->if_capenable |= IFCAP_LINKSTATE;
+ ifp->if_capabilities |= IFCAP_LINKSTATE | IFCAP_JUMBO_MTU;
+ ifp->if_capenable |= IFCAP_LINKSTATE | IFCAP_JUMBO_MTU;
ifmedia_init(&sc->vxl_media, 0, vxlan_media_change, vxlan_media_status);
ifmedia_add(&sc->vxl_media, IFM_ETHER | IFM_AUTO, 0, NULL);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?differential-rev-PHID-DREV-bvtxxu4jwhzdkwqxxgd7-req>
