[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-users] Jumbo frame support for Xen



Hi,

I had to use bridge interfaces with mtu other than 9000, so I started to
google for a solution. Then I found this thread:
http://web.archiveorange.com/archive/v/ZvO4j2ymSAvyo8GNrwhY

But, It didn't work, as the original author says.
I tried to find an easier way, to setup this, so as I found out: If you
configure a vif's mtu, the logical solution is to use the same mtu as the
bridge interface -> So I wrote a smaller, nicer, and... a working patch.

The "trick" is that, I don't use the xen's bridge creation scripts, I
preconfigure my bridge interfaces from my Debian configuration, far before
the xen things would start.
bridge entry from my /etc/network/interfaces:
auto br201
iface br201 inet static
        address 10.0.3.5
        netmask 255.255.0.0
        network 10.0.0.0
        broadcast 10.0.255.255
        mtu 9000
        bridge_ports bond0.201
        bridge_fd 0
        bridge_maxwait 0

This iface config pre-creates the vlan if on my bonding if, creates the
bridge, add the bond.vlan into my bridge interface, and every mtu is OK,
until xen starts...
Then, with my patched xen scripts,... work again, still, whatever you want:
It's just work! ;-)

Use it wise, and for your own risk!

The patch:

diff -urN /etc/xen/scripts.orig/vif-bridge /etc/xen/scripts/vif-bridge
--- /etc/xen/scripts.orig/vif-bridge    2011-04-14 15:24:51.000000000 +0200
+++ /etc/xen/scripts/vif-bridge 2011-10-12 18:13:13.873102049 +0200
@@ -82,6 +82,7 @@
 case "$command" in
     online)
        setup_bridge_port "$vif"
+       set_vif_mtu "$vif" "$(get_if_mtu $bridge)"
        add_to_bridge "$bridge" "$vif"
         ;;
 
diff -urN /etc/xen/scripts.orig/xen-network-common.sh 
/etc/xen/scripts/xen-network-common.sh
--- /etc/xen/scripts.orig/xen-network-common.sh 2010-06-21 15:46:02.000000000 
+0200
+++ /etc/xen/scripts/xen-network-common.sh      2011-10-12 18:07:00.456909410 
+0200
@@ -116,3 +116,19 @@
     ip link set ${dev} up
 }
 
+get_if_mtu () {
+    local dev=$1
+    local line
+    ip link show $dev | \
+       ( read line
+       line="${line##*mtu }"
+       line="${line%% *}"
+       echo $line
+       cat >/dev/null )
+}
+
+set_vif_mtu () {
+    local vif=$1
+    local mtu=$2
+    ip link set "$vif" mtu "$mtu"
+}

Cheers!

Attachment: xen-bridge-fix-mtu.patch.gz
Description: Binary data

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.