projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ofp-util: Rename struct flow_mod to struct ofputil_flow_mod.
[openvswitch]
/
lib
/
dpif-netdev.c
diff --git
a/lib/dpif-netdev.c
b/lib/dpif-netdev.c
index d48d7ae1f030568656608a9426316a6e1746a659..9f281c26632ebebb6d35c8c0fd2421b45b67d3f0 100644
(file)
--- a/
lib/dpif-netdev.c
+++ b/
lib/dpif-netdev.c
@@
-302,6
+302,7
@@
dpif_netdev_get_stats(const struct dpif *dpif, struct odp_stats *stats)
{
struct dp_netdev *dp = get_dp_netdev(dpif);
memset(stats, 0, sizeof *stats);
{
struct dp_netdev *dp = get_dp_netdev(dpif);
memset(stats, 0, sizeof *stats);
+ stats->n_flows = hmap_count(&dp->flow_table);
stats->n_frags = dp->n_frags;
stats->n_hit = dp->n_hit;
stats->n_missed = dp->n_missed;
stats->n_frags = dp->n_frags;
stats->n_hit = dp->n_hit;
stats->n_missed = dp->n_missed;
@@
-330,7
+331,6
@@
do_add_port(struct dp_netdev *dp, const char *devname, const char *type,
uint16_t port_no)
{
struct dp_netdev_port *port;
uint16_t port_no)
{
struct dp_netdev_port *port;
- struct netdev_options netdev_options;
struct netdev *netdev;
bool internal;
int mtu;
struct netdev *netdev;
bool internal;
int mtu;
@@
-347,22
+347,27
@@
do_add_port(struct dp_netdev *dp, const char *devname, const char *type,
}
/* Open and validate network device. */
}
/* 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) {
if (dp->class == &dpif_dummy_class) {
-
netdev_options.
type = "dummy";
+ type = "dummy";
} else if (internal) {
} else if (internal) {
-
netdev_options.
type = "tap";
+ type = "tap";
}
}
- error = netdev_open(
&netdev_options
, &netdev);
+ error = netdev_open(
devname, type
, &netdev);
if (error) {
return error;
}
/* XXX reject loopback devices */
/* XXX reject non-Ethernet devices */
if (error) {
return error;
}
/* 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);
error = netdev_turn_flags_on(netdev, NETDEV_PROMISC, false);
if (error) {
netdev_close(netdev);