VLOG_DEFINE_THIS_MODULE(binding);
void
-binding_init(struct controller_ctx *ctx)
+binding_register_ovs_idl(struct ovsdb_idl *ovs_idl)
{
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_open_vswitch);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_open_vswitch_col_bridges);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_open_vswitch);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_open_vswitch_col_bridges);
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_bridge);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_bridge_col_name);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_bridge_col_ports);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_bridge);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_bridge_col_name);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_bridge_col_ports);
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_port);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_port_col_name);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_port_col_interfaces);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_port);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_port_col_name);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_port_col_interfaces);
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_interface);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_interface_col_name);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_interface_col_external_ids);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_interface);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_interface_col_name);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_interface_col_external_ids);
}
static void
#include <stdbool.h>
struct controller_ctx;
+struct ovsdb_idl;
struct ovsrec_bridge;
-void binding_init(struct controller_ctx *);
+void binding_register_ovs_idl(struct ovsdb_idl *);
void binding_run(struct controller_ctx *, const struct ovsrec_bridge *br_int,
const char *chassis_id);
bool binding_cleanup(struct controller_ctx *, const char *chassis_id);
VLOG_DEFINE_THIS_MODULE(chassis);
void
-chassis_init(struct controller_ctx *ctx)
+chassis_register_ovs_idl(struct ovsdb_idl *ovs_idl)
{
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_open_vswitch);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_open_vswitch_col_external_ids);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_open_vswitch);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_open_vswitch_col_external_ids);
}
void
#include <stdbool.h>
struct controller_ctx;
+struct ovsdb_idl;
struct ovsrec_bridge;
-void chassis_init(struct controller_ctx *);
+void chassis_register_ovs_idl(struct ovsdb_idl *);
void chassis_run(struct controller_ctx *, const char *chassis_id);
bool chassis_cleanup(struct controller_ctx *, const char *chassis_id);
VLOG_DEFINE_THIS_MODULE(encaps);
void
-encaps_init(struct controller_ctx *ctx)
+encaps_register_ovs_idl(struct ovsdb_idl *ovs_idl)
{
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_bridge);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_bridge_col_ports);
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_port);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_port_col_name);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_port_col_interfaces);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_port_col_external_ids);
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_interface);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_interface_col_name);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_interface_col_type);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_interface_col_options);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_bridge);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_bridge_col_ports);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_port);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_port_col_name);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_port_col_interfaces);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_port_col_external_ids);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_interface);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_interface_col_name);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_interface_col_type);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_interface_col_options);
}
/* Enough context to create a new tunnel, using tunnel_add(). */
#include <stdbool.h>
struct controller_ctx;
+struct ovsdb_idl;
struct ovsrec_bridge;
-void encaps_init(struct controller_ctx *);
+void encaps_register_ovs_idl(struct ovsdb_idl *);
void encaps_run(struct controller_ctx *,
const struct ovsrec_bridge *br_int, const char *chassis_id);
bool encaps_cleanup(struct controller_ctx *,
/* Connect to OVS OVSDB instance. We do not monitor all tables by
* default, so modules must register their interest explicitly. */
ctx.ovs_idl = ovsdb_idl_create(ovs_remote, &ovsrec_idl_class, false, true);
-
- /* Register interest in "external_ids" column in "Open_vSwitch" table,
- * since we'll need to get the OVN OVSDB remote. */
ovsdb_idl_add_table(ctx.ovs_idl, &ovsrec_table_open_vswitch);
ovsdb_idl_add_column(ctx.ovs_idl, &ovsrec_open_vswitch_col_external_ids);
+ chassis_register_ovs_idl(ctx.ovs_idl);
+ encaps_register_ovs_idl(ctx.ovs_idl);
+ binding_register_ovs_idl(ctx.ovs_idl);
+ physical_register_ovs_idl(ctx.ovs_idl);
- chassis_init(&ctx);
- encaps_init(&ctx);
- binding_init(&ctx);
- physical_init(&ctx);
pipeline_init();
get_initial_snapshot(ctx.ovs_idl);
#include "vswitch-idl.h"
void
-physical_init(struct controller_ctx *ctx)
+physical_register_ovs_idl(struct ovsdb_idl *ovs_idl)
{
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_bridge);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_bridge_col_ports);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_bridge);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_bridge_col_ports);
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_port);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_port_col_name);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_port_col_interfaces);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_port_col_external_ids);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_port);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_port_col_name);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_port_col_interfaces);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_port_col_external_ids);
- ovsdb_idl_add_table(ctx->ovs_idl, &ovsrec_table_interface);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_interface_col_name);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_interface_col_ofport);
- ovsdb_idl_add_column(ctx->ovs_idl, &ovsrec_interface_col_external_ids);
+ ovsdb_idl_add_table(ovs_idl, &ovsrec_table_interface);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_interface_col_name);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_interface_col_ofport);
+ ovsdb_idl_add_column(ovs_idl, &ovsrec_interface_col_external_ids);
}
void
struct controller_ctx;
struct hmap;
+struct ovsdb_idl;
struct ovsrec_bridge;
-void physical_init(struct controller_ctx *);
+void physical_register_ovs_idl(struct ovsdb_idl *);
void physical_run(struct controller_ctx *, const struct ovsrec_bridge *br_int,
const char *chassis_id, struct hmap *flow_table);