[pve-devel] [PATCH qemu-server] add virtio host_mtu feature.

Alexandre Derumier aderumier at odiso.com
Fri Apr 17 07:47:20 CEST 2020


This add a new "mtu" param to vm nic,
and force the mtu in the guest for virtio nic only.

Special value: 1 = set the same value than the bridge
---
 PVE/QemuServer.pm | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 6445508..9baa6ff 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -884,6 +884,12 @@ my $net_fmt = {
 	description => 'Whether this interface should be disconnected (like pulling the plug).',
 	optional => 1,
     },
+    mtu => {
+	type => 'integer',
+	minimum => 1, maximum => 65520,
+	description => 'Force mtu (virtio only). 1 = bridge mtu value',
+	optional => 1,
+    },
 };
 
 my $netdesc = {
@@ -1593,6 +1599,19 @@ sub print_netdevice_full {
     }
     $tmpstr .= ",bootindex=$net->{bootindex}" if $net->{bootindex} ;
 
+    if($net->{model} eq 'virtio' && $net->{mtu} && $net->{bridge}) {
+
+	my $mtu = $net->{mtu};
+	my $bridge_mtu = PVE::Network::read_bridge_mtu($net->{bridge});
+
+	if($mtu == 1) {
+	     $mtu = $bridge_mtu;
+        } else {
+	     die "mtu $mtu is bigger than bridge mtu $bridge_mtu" if $mtu > $bridge_mtu;
+	}
+	$tmpstr .= ",host_mtu=$mtu";
+    }
+
     if ($use_old_bios_files) {
 	my $romfile;
 	if ($device eq 'virtio-net-pci') {
-- 
2.20.1




More information about the pve-devel mailing list