#include <string.h>
#include <unistd.h>
+#include "connectivity.h"
#include "coverage.h"
#include "dpif-linux.h"
#include "dynamic-string.h"
#include "packets.h"
#include "poll-loop.h"
#include "rtnetlink-link.h"
+#include "seq.h"
#include "shash.h"
#include "socket-util.h"
#include "sset.h"
struct ovs_mutex mutex;
unsigned int cache_valid;
- unsigned int change_seq;
bool miimon; /* Link status of last poll. */
long long int miimon_interval; /* Miimon Poll rate. Disabled if <= 0. */
unsigned int ifi_flags, unsigned int mask)
OVS_REQUIRES(dev->mutex)
{
- dev->change_seq++;
- if (!dev->change_seq) {
- dev->change_seq++;
- }
+ seq_change(connectivity_seq_get());
if ((dev->ifi_flags ^ ifi_flags) & IFF_RUNNING) {
dev->carrier_resets++;
netdev_linux_common_construct(struct netdev_linux *netdev)
{
ovs_mutex_init(&netdev->mutex);
- netdev->change_seq = 1;
}
/* Creates system and internal devices. */
}
return errno;
} else if (retval != size) {
- VLOG_WARN_RL(&rl, "sent partial Ethernet packet (%zd bytes of "
- "%zu) on %s", retval, size, netdev_get_name(netdev_));
+ VLOG_WARN_RL(&rl, "sent partial Ethernet packet (%"PRIuSIZE"d bytes of "
+ "%"PRIuSIZE") on %s", retval, size, netdev_get_name(netdev_));
return EMSGSIZE;
} else {
return 0;
return error;
}
-static unsigned int
-netdev_linux_change_seq(const struct netdev *netdev_)
-{
- struct netdev_linux *netdev = netdev_linux_cast(netdev_);
- unsigned int change_seq;
-
- ovs_mutex_lock(&netdev->mutex);
- change_seq = netdev->change_seq;
- ovs_mutex_unlock(&netdev->mutex);
-
- return change_seq;
-}
-
#define NETDEV_LINUX_CLASS(NAME, CONSTRUCT, GET_STATS, SET_STATS, \
GET_FEATURES, GET_STATUS) \
{ \
\
netdev_linux_update_flags, \
\
- netdev_linux_change_seq, \
- \
netdev_linux_rx_alloc, \
netdev_linux_rx_construct, \
netdev_linux_rx_destruct, \