netdev: Add support for "patch" type
authorJustin Pettit <jpettit@nicira.com>
Wed, 14 Apr 2010 04:24:37 +0000 (21:24 -0700)
committerJustin Pettit <jpettit@nicira.com>
Thu, 15 Apr 2010 10:50:28 +0000 (03:50 -0700)
commit8aed4223e0933c0602c1e624b07094d7f7afb23d
tree8b8588caac0397ee7ae7fdf9e850f1ea9900c7ff
parent4dcf0d73c247c538807dbb642437aaf33589822b
netdev: Add support for "patch" type

This commit introduces a new netdev type called "patch".  A patch is a
pair of interfaces, in which frames sent through one of the devices
pop out of the other.  This is useful for linking together datapaths.

A patch's only argument on creation is "peer", which specifies the other
side of the patch.  A patch must be created in pairs, so a second netdev
must be created with the "name" and "peer" values reversed.

The current implementation is built using veth devices.  Further, it's
limited to the veth devices which support configuration through sysfs.
This limits the ability to use a "patch" on 2.6.18 kernels using the
veth device we include (read: flavors of XenServer 5.5).  In the not too
distant future, the implementation will be modified to use the new
kernel port abstraction introduced by Jesse Gross's forthcoming GRE
work.  At that point, patch devices will work on any Linux platform
supported by OVS.
lib/netdev-linux.c
lib/netdev-provider.h
lib/netdev.c
vswitchd/vswitch.xml