#include "packets.h"
#include "poll-loop.h"
#include "route-table.h"
+#include "seq.h"
#include "shash.h"
#include "sset.h"
#include "timeval.h"
static void log_flow_get_message(const struct dpif *,
const struct dpif_flow_get *, int error);
+/* Incremented whenever tnl route, arp, etc changes. */
+struct seq *tnl_conf_seq;
+
static void
dp_initialize(void)
{
if (ovsthread_once_start(&once)) {
int i;
- for (i = 0; i < ARRAY_SIZE(base_dpif_classes); i++) {
- dp_register_provider(base_dpif_classes[i]);
- }
+ tnl_conf_seq = seq_create();
dpctl_unixctl_register();
tnl_port_map_init();
tnl_arp_cache_init();
route_table_register();
+ for (i = 0; i < ARRAY_SIZE(base_dpif_classes); i++) {
+ dp_register_provider(base_dpif_classes[i]);
+ }
+
ovsthread_once_done(&once);
}
}
static struct hmap netdev_classes OVS_GUARDED_BY(netdev_class_mutex)
= HMAP_INITIALIZER(&netdev_classes);
-/* Incremented whenever tnl route, arp, etc changes. */
-struct seq *tnl_conf_seq;
-
struct netdev_registered_class {
/* In 'netdev_classes', by class->type. */
struct hmap_node hmap_node OVS_GUARDED_BY(netdev_class_mutex);
#endif
netdev_dpdk_register();
- tnl_conf_seq = seq_create();
ovsthread_once_done(&once);
}
}