From add90f6f205a65c2569bb240683c0a70cc249c6b Mon Sep 17 00:00:00 2001 From: Ethan Jackson Date: Tue, 8 Jan 2013 14:37:23 -0800 Subject: [PATCH] dpif-netdev: Allow stub interfaces on the dummy datapath. Future patches will need to add netdevs to the dummy datapath which can't actually send or receive packets. Signed-off-by: Ethan Jackson --- lib/dpif-netdev.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 1d924c401..2cf226562 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -180,11 +180,17 @@ dpif_netdev_enumerate(struct sset *all_dps) return 0; } +static bool +dpif_netdev_class_is_dummy(const struct dpif_class *class) +{ + return class != &dpif_netdev_class; +} + static const char * dpif_netdev_port_open_type(const struct dpif_class *class, const char *type) { return strcmp(type, "internal") ? type - : class != &dpif_netdev_class ? "dummy" + : dpif_netdev_class_is_dummy(class) ? "dummy" : "tap"; } @@ -385,7 +391,8 @@ do_add_port(struct dp_netdev *dp, const char *devname, const char *type, /* XXX reject non-Ethernet devices */ error = netdev_listen(netdev); - if (error) { + if (error + && !(error == EOPNOTSUPP && dpif_netdev_class_is_dummy(dp->class))) { VLOG_ERR("%s: cannot receive packets on this network device (%s)", devname, strerror(errno)); netdev_close(netdev); -- 2.43.0