netdev_register_provider(&netdev_tap_class);
netdev_register_provider(&netdev_bsd_class);
#endif
+ netdev_register_provider(&netdev_tunnel_class);
+ netdev_register_provider(&netdev_pltap_class);
ovsthread_once_done(&once);
}
ovs_rwlock_rdlock(&netdev_class_rwlock);
HMAP_FOR_EACH (rc, hmap_node, &netdev_classes) {
- rc->class->run();
+ if (rc->class->run) {
+ rc->class->run();
+ }
}
ovs_rwlock_unlock(&netdev_class_rwlock);
}
ovs_rwlock_rdlock(&netdev_class_rwlock);
HMAP_FOR_EACH (rc, hmap_node, &netdev_classes) {
- rc->class->wait();
+ if (rc->class->wait) {
+ rc->class->wait();
+ }
}
ovs_rwlock_unlock(&netdev_class_rwlock);
}