#endif
#include "rtbsd.h"
+#include "connectivity.h"
#include "coverage.h"
#include "dynamic-string.h"
#include "fatal-signal.h"
#include "ovs-thread.h"
#include "packets.h"
#include "poll-loop.h"
-#include "socket-util.h"
+#include "seq.h"
#include "shash.h"
+#include "socket-util.h"
#include "svec.h"
#include "util.h"
#include "vlog.h"
struct ovs_mutex mutex;
unsigned int cache_valid;
- unsigned int change_seq;
int ifindex;
uint8_t etheraddr[ETH_ADDR_LEN];
rtbsd_notifier_wait();
}
-static void
-netdev_bsd_changed(struct netdev_bsd *dev)
-{
- dev->change_seq++;
- if (!dev->change_seq) {
- dev->change_seq++;
- }
-}
-
/* Invalidate cache in case of interface status change. */
static void
netdev_bsd_cache_cb(const struct rtbsd_change *change,
if (is_netdev_bsd_class(netdev_class)) {
dev = netdev_bsd_cast(base_dev);
dev->cache_valid = 0;
- netdev_bsd_changed(dev);
+ seq_change(connectivity_seq_get());
}
netdev_close(base_dev);
}
struct netdev *netdev = node->data;
dev = netdev_bsd_cast(netdev);
dev->cache_valid = 0;
- netdev_bsd_changed(dev);
+ seq_change(connectivity_seq_get());
netdev_close(netdev);
}
shash_destroy(&device_shash);
}
ovs_mutex_init(&netdev->mutex);
- netdev->change_seq = 1;
netdev->tap_fd = -1;
netdev->kernel_name = xstrdup(netdev_->name);
* to retrieve the name of the tap device. */
ovs_mutex_init(&netdev->mutex);
netdev->tap_fd = open("/dev/tap", O_RDWR);
- netdev->change_seq = 1;
if (netdev->tap_fd < 0) {
error = errno;
VLOG_WARN("opening \"/dev/tap\" failed: %s", ovs_strerror(error));
ovs_mutex_lock(&netdev->mutex);
error = netdev_bsd_open_pcap(netdev_get_kernel_name(netdev_),
&rx->pcap_handle, &rx->fd);
- if (!error) {
- netdev_bsd_changed(netdev);
- }
ovs_mutex_unlock(&netdev->mutex);
}
if (!error) {
netdev->cache_valid |= VALID_ETHERADDR;
memcpy(netdev->etheraddr, mac, ETH_ADDR_LEN);
- netdev_bsd_changed(netdev);
+ seq_change(connectivity_seq_get());
}
}
ovs_mutex_unlock(&netdev->mutex);
netdev->netmask = mask;
}
}
- netdev_bsd_changed(netdev);
+ seq_change(connectivity_seq_get());
}
ovs_mutex_unlock(&netdev->mutex);
new_flags = (old_flags & ~nd_to_iff_flags(off)) | nd_to_iff_flags(on);
if (new_flags != old_flags) {
error = set_flags(netdev_get_kernel_name(netdev_), new_flags);
- netdev_bsd_changed(netdev);
+ seq_change(connectivity_seq_get());
}
}
return error;
}
-static unsigned int
-netdev_bsd_change_seq(const struct netdev *netdev)
-{
- return netdev_bsd_cast(netdev)->change_seq;
-}
-
const struct netdev_class netdev_bsd_class = {
"system",
netdev_bsd_update_flags,
- netdev_bsd_change_seq,
-
netdev_bsd_rx_alloc,
netdev_bsd_rx_construct,
netdev_bsd_rx_destruct,
netdev_bsd_update_flags,
- netdev_bsd_change_seq,
-
netdev_bsd_rx_alloc,
netdev_bsd_rx_construct,
netdev_bsd_rx_destruct,