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

_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to