X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fdpif-netdev.c;h=fa6b5492e90b318a62eb621955809023a7fb8871;hb=7b6b0ef47e398a2fbda48fd385f9781b2df8bebb;hp=14b919275d2f9d190175a5a39f533fec68b540aa;hpb=8cea3c07718d55c6eea288be87b3ea9e4d3b88cd;p=sliver-openvswitch.git diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 14b919275..fa6b5492e 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -350,7 +350,6 @@ do_add_port(struct dp_netdev *dp, const char *devname, const char *type, /* Open and validate network device. */ memset(&netdev_options, 0, sizeof netdev_options); netdev_options.name = devname; - netdev_options.ethertype = NETDEV_ETH_TYPE_ANY; if (dp->class == &dpif_dummy_class) { netdev_options.type = "dummy"; } else if (internal) { @@ -364,6 +363,14 @@ do_add_port(struct dp_netdev *dp, const char *devname, const char *type, /* XXX reject loopback devices */ /* XXX reject non-Ethernet devices */ + error = netdev_listen(netdev); + if (error) { + VLOG_ERR("%s: cannot receive packets on this network device (%s)", + devname, strerror(errno)); + netdev_close(netdev); + return error; + } + error = netdev_turn_flags_on(netdev, NETDEV_PROMISC, false); if (error) { netdev_close(netdev);