X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fnetdev-vport.c;h=9e92a882878caee5dfd02d07ce93d3c158dd1038;hb=0ef165ecb57943e17a8ee8270df68ffb8d032e29;hp=76aa148ccb597c7f63f652a0435f85541ef98311;hpb=863838160e892f625a050e0234ed638af26f106d;p=sliver-openvswitch.git diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c index 76aa148cc..9e92a8828 100644 --- a/lib/netdev-vport.c +++ b/lib/netdev-vport.c @@ -52,7 +52,6 @@ struct netdev_vport { /* Protects all members below. */ struct ovs_mutex mutex; - unsigned int change_seq; uint8_t etheraddr[ETH_ADDR_LEN]; struct netdev_stats stats; @@ -71,8 +70,6 @@ struct vport_class { static int netdev_vport_construct(struct netdev *); static int get_patch_config(const struct netdev *netdev, struct smap *args); static int get_tunnel_config(const struct netdev *, struct smap *args); -static void netdev_vport_poll_notify(struct netdev_vport *netdev) - OVS_REQUIRES(netdev->mutex); static bool is_vport_class(const struct netdev_class *class) @@ -108,6 +105,14 @@ netdev_vport_is_patch(const struct netdev *netdev) return class->get_config == get_patch_config; } +bool +netdev_vport_is_layer3(const struct netdev *dev) +{ + const char *type = netdev_get_type(dev); + + return (!strcmp("lisp", type)); +} + static bool netdev_vport_needs_dst_port(const struct netdev *dev) { @@ -171,8 +176,7 @@ netdev_vport_construct(struct netdev *netdev_) { struct netdev_vport *netdev = netdev_vport_cast(netdev_); - ovs_mutex_init(&netdev->mutex, PTHREAD_MUTEX_NORMAL); - netdev->change_seq = 1; + ovs_mutex_init(&netdev->mutex); eth_addr_random(netdev->etheraddr); route_table_register(); @@ -205,8 +209,8 @@ netdev_vport_set_etheraddr(struct netdev *netdev_, ovs_mutex_lock(&netdev->mutex); memcpy(netdev->etheraddr, mac, ETH_ADDR_LEN); - netdev_vport_poll_notify(netdev); ovs_mutex_unlock(&netdev->mutex); + netdev_change_seq_changed(netdev_); return 0; } @@ -264,12 +268,6 @@ netdev_vport_update_flags(struct netdev *netdev OVS_UNUSED, return 0; } -static unsigned int -netdev_vport_change_seq(const struct netdev *netdev) -{ - return netdev_vport_cast(netdev)->change_seq; -} - static void netdev_vport_run(void) { @@ -282,17 +280,6 @@ netdev_vport_wait(void) route_table_wait(); } -/* Helper functions. */ - -static void -netdev_vport_poll_notify(struct netdev_vport *ndv) -{ - ndv->change_seq++; - if (!ndv->change_seq) { - ndv->change_seq++; - } -} - /* Code specific to tunnel types. */ static ovs_be64 @@ -444,6 +431,7 @@ set_tunnel_config(struct netdev *dev_, const struct smap *args) static struct ovs_mutex mutex = OVS_MUTEX_INITIALIZER; static pid_t pid = 0; +#ifndef _WIN32 ovs_mutex_lock(&mutex); if (pid <= 0) { char *file_name = xasprintf("%s/%s", ovs_rundir(), @@ -452,6 +440,7 @@ set_tunnel_config(struct netdev *dev_, const struct smap *args) free(file_name); } ovs_mutex_unlock(&mutex); +#endif if (pid < 0) { VLOG_ERR("%s: IPsec requires the ovs-monitor-ipsec daemon", @@ -495,7 +484,7 @@ set_tunnel_config(struct netdev *dev_, const struct smap *args) ovs_mutex_lock(&dev->mutex); dev->tnl_cfg = tnl_cfg; - netdev_vport_poll_notify(dev); + netdev_change_seq_changed(dev_); ovs_mutex_unlock(&dev->mutex); return 0; @@ -603,7 +592,7 @@ netdev_vport_patch_peer(const struct netdev *netdev_) void netdev_vport_inc_rx(const struct netdev *netdev, - const struct dpif_flow_stats *stats) + const struct dpif_flow_stats *stats) { if (is_vport_class(netdev_get_class(netdev))) { struct netdev_vport *dev = netdev_vport_cast(netdev); @@ -669,7 +658,7 @@ set_patch_config(struct netdev *dev_, const struct smap *args) ovs_mutex_lock(&dev->mutex); free(dev->peer); dev->peer = xstrdup(peer); - netdev_vport_poll_notify(dev); + netdev_change_seq_changed(dev_); ovs_mutex_unlock(&dev->mutex); return 0; @@ -727,7 +716,9 @@ get_stats(const struct netdev *netdev, struct netdev_stats *stats) NULL, /* set_queue */ \ NULL, /* delete_queue */ \ NULL, /* get_queue_stats */ \ - NULL, /* dump_queues */ \ + NULL, /* queue_dump_start */ \ + NULL, /* queue_dump_next */ \ + NULL, /* queue_dump_done */ \ NULL, /* dump_queue_stats */ \ \ NULL, /* get_in4 */ \ @@ -740,8 +731,6 @@ get_stats(const struct netdev *netdev, struct netdev_stats *stats) \ netdev_vport_update_flags, \ \ - netdev_vport_change_seq, \ - \ NULL, /* rx_alloc */ \ NULL, /* rx_construct */ \ NULL, /* rx_destruct */ \