[ovs-git] Open vSwitch: datapath: Consider tunnels to have no MTU, fixing jumbo frame support. (master)

dev at openvswitch.org dev at openvswitch.org
Fri Feb 4 17:55:32 UTC 2011

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".

The branch, master has been updated
       via  f915f1a8ca180828983ef22cf2fd21b8f010b972 (commit)
      from  bfa68a2b1fc49a8755748548836e92a5bae7bcb3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit f915f1a8ca180828983ef22cf2fd21b8f010b972
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=f915f1a8ca180828983ef22cf2fd21b8f010b972
Author: Ben Pfaff <blp at nicira.com>
datapath: Consider tunnels to have no MTU, fixing jumbo frame support.
Until now, tunnel vports have had a specific MTU, in the same way that
ordinary network devices have an MTU, but treating them this way does not
always make sense.  For example, consider a datapath that has three ports:
the local port, a GRE tunnel to another host, and a physical port.  If
the physical port is configured with a jumbo MTU, it should be possible to
send jumbo packets across the tunnel: the tunnel can do fragmentation or
the physical port traversed by the tunnel might have a jumbo MTU.

However, until now, tunnels always had a 1500-byte MTU by default.  It
could be adjusted using ODP_VPORT_MTU_SET, but nothing actually did this.
One alternative would be to make ovs-vswitchd able to set the vport's MTU.
This commit, however, takes a different approach, of dropping the concept
of MTU entirely for tunnel vports.  This also solves the problem described
above, without making any additional work for anyone.

I tested that, without this change, I could not send 1600-byte "pings"
between two machines whose NICs had 2000-byte MTUs that were connected to
vswitches that were in turn connected over GRE tunnels with the default
1500-byte MTU.  With this change, it worked OK, regardless of the MTU of
the network traversed by the GRE tunnel.

This patch also makes "patch" ports MTU-less.

It might make sense to remove vport_set_mtu() and the associated callback
now, since ordinary network devices are the only vports that support it

Signed-off-by: Ben Pfaff <blp at nicira.com>
Suggested-by: Jesse Gross <jesse at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>
Bug #3728.


Summary of changes:
 datapath/datapath.c                     |    7 ++++++-
 datapath/tunnel.c                       |   25 -------------------------
 datapath/tunnel.h                       |    4 ----
 datapath/vport-capwap.c                 |    2 --
 datapath/vport-gre.c                    |    2 --
 datapath/vport-patch.c                  |   29 -----------------------------
 datapath/vport.c                        |   10 ++++++----
 datapath/vport.h                        |    3 ++-
 include/openvswitch/datapath-protocol.h |    3 ++-
 lib/dhcp-client.c                       |    6 ++----
 lib/dpif-linux.c                        |    4 +++-
 lib/dpif-netdev.c                       |    2 +-
 lib/netdev-linux.c                      |   13 ++++++++++++-
 lib/netdev-provider.h                   |    7 +++++--
 lib/netdev.c                            |    7 ++++---
 vswitchd/bridge.c                       |    2 +-
 vswitchd/vswitch.xml                    |    4 ++++
 17 files changed, 48 insertions(+), 82 deletions(-)

Open vSwitch

More information about the git mailing list