summaryrefslogtreecommitdiff
path: root/lib/netdev.c
diff options
context:
space:
mode:
authorJustin Pettit <jpettit@nicira.com>2010-04-13 21:24:37 -0700
committerJustin Pettit <jpettit@nicira.com>2010-04-15 03:50:28 -0700
commit8aed4223e0933c0602c1e624b07094d7f7afb23d (patch)
tree8b8588caac0397ee7ae7fdf9e850f1ea9900c7ff /lib/netdev.c
parent4dcf0d73c247c538807dbb642437aaf33589822b (diff)
downloadopenvswitch-8aed4223e0933c0602c1e624b07094d7f7afb23d.tar.gz
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.
Diffstat (limited to 'lib/netdev.c')
-rw-r--r--lib/netdev.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/netdev.c b/lib/netdev.c
index 99b5d243a..af2382d3a 100644
--- a/lib/netdev.c
+++ b/lib/netdev.c
@@ -45,6 +45,7 @@ static const struct netdev_class *base_netdev_classes[] = {
&netdev_linux_class,
&netdev_tap_class,
&netdev_gre_class,
+ &netdev_patch_class,
};
static struct shash netdev_classes = SHASH_INITIALIZER(&netdev_classes);