struct netdev_dev_bsd {
struct netdev_dev netdev_dev;
unsigned int cache_valid;
+ unsigned int change_seq;
int ifindex;
uint8_t etheraddr[ETH_ADDR_LEN];
int error;
error = cache_notifier_ref();
- if (!error) {
+ if (error) {
return error;
}
netdev_dev = xzalloc(sizeof *netdev_dev);
+ netdev_dev->change_seq = 1;
netdev_dev_init(&netdev_dev->netdev_dev, name, class);
*netdev_devp = &netdev_dev->netdev_dev;
struct ifreq ifr;
error = cache_notifier_ref();
- if (!error) {
+ if (error) {
goto error;
}
return error;
}
+static unsigned int
+netdev_bsd_change_seq(const struct netdev *netdev)
+{
+ return netdev_dev_bsd_cast(netdev_get_dev(netdev))->change_seq;
+}
+
const struct netdev_class netdev_bsd_class = {
"system",
netdev_bsd_update_flags,
- NULL, /* change_seq */
+ netdev_bsd_change_seq
};
const struct netdev_class netdev_tap_class = {
netdev_bsd_update_flags,
- NULL, /* change_seq */
+ netdev_bsd_change_seq
};
\f