mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 14:25:26 +00:00
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 <ethan@nicira.com>
This commit is contained in:
@@ -180,11 +180,17 @@ dpif_netdev_enumerate(struct sset *all_dps)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
dpif_netdev_class_is_dummy(const struct dpif_class *class)
|
||||||
|
{
|
||||||
|
return class != &dpif_netdev_class;
|
||||||
|
}
|
||||||
|
|
||||||
static const char *
|
static const char *
|
||||||
dpif_netdev_port_open_type(const struct dpif_class *class, const char *type)
|
dpif_netdev_port_open_type(const struct dpif_class *class, const char *type)
|
||||||
{
|
{
|
||||||
return strcmp(type, "internal") ? type
|
return strcmp(type, "internal") ? type
|
||||||
: class != &dpif_netdev_class ? "dummy"
|
: dpif_netdev_class_is_dummy(class) ? "dummy"
|
||||||
: "tap";
|
: "tap";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -385,7 +391,8 @@ do_add_port(struct dp_netdev *dp, const char *devname, const char *type,
|
|||||||
/* XXX reject non-Ethernet devices */
|
/* XXX reject non-Ethernet devices */
|
||||||
|
|
||||||
error = netdev_listen(netdev);
|
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)",
|
VLOG_ERR("%s: cannot receive packets on this network device (%s)",
|
||||||
devname, strerror(errno));
|
devname, strerror(errno));
|
||||||
netdev_close(netdev);
|
netdev_close(netdev);
|
||||||
|
Reference in New Issue
Block a user