Acked-by: Justin Pettit <jpet...@nicira.com> --Justin
> On Jul 28, 2015, at 8:44 AM, Ben Pfaff <b...@nicira.com> wrote: > > Until now, controller_ctx has been a store of common state (although > the amount of data stored in it has declined to just database state). > I think it's clearer if we just use it as a way to pass data to > functions. This commit makes that change. > > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > ovn/controller/ovn-controller.c | 50 +++++++++++++++++++++++------------------ > 1 file changed, 28 insertions(+), 22 deletions(-) > > diff --git a/ovn/controller/ovn-controller.c b/ovn/controller/ovn-controller.c > index 59feaf9..12515c3 100644 > --- a/ovn/controller/ovn-controller.c > +++ b/ovn/controller/ovn-controller.c > @@ -202,7 +202,6 @@ int > main(int argc, char *argv[]) > { > struct unixctl_server *unixctl; > - struct controller_ctx ctx = { .ovs_idl = NULL }; > bool exiting; > int retval; > > @@ -229,29 +228,32 @@ main(int argc, char *argv[]) > > /* 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); > - 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); > - > - get_initial_snapshot(ctx.ovs_idl); > - > - char *ovnsb_remote = get_ovnsb_remote(ctx.ovs_idl); > - ctx.ovnsb_idl = ovsdb_idl_create(ovnsb_remote, &sbrec_idl_class, > - true, true); > - get_initial_snapshot(ctx.ovnsb_idl); > - > - struct idl_loop ovnsb_idl_loop = IDL_LOOP_INITIALIZER(ctx.ovnsb_idl); > - struct idl_loop ovs_idl_loop = IDL_LOOP_INITIALIZER(ctx.ovs_idl); > + struct idl_loop ovs_idl_loop = IDL_LOOP_INITIALIZER( > + ovsdb_idl_create(ovs_remote, &ovsrec_idl_class, false, true)); > + ovsdb_idl_add_table(ovs_idl_loop.idl, &ovsrec_table_open_vswitch); > + ovsdb_idl_add_column(ovs_idl_loop.idl, > + &ovsrec_open_vswitch_col_external_ids); > + chassis_register_ovs_idl(ovs_idl_loop.idl); > + encaps_register_ovs_idl(ovs_idl_loop.idl); > + binding_register_ovs_idl(ovs_idl_loop.idl); > + physical_register_ovs_idl(ovs_idl_loop.idl); > + get_initial_snapshot(ovs_idl_loop.idl); > + > + /* Connect to OVN SB database. */ > + char *ovnsb_remote = get_ovnsb_remote(ovs_idl_loop.idl); > + struct idl_loop ovnsb_idl_loop = IDL_LOOP_INITIALIZER( > + ovsdb_idl_create(ovnsb_remote, &sbrec_idl_class, true, true)); > + get_initial_snapshot(ovnsb_idl_loop.idl); > > /* Main loop. */ > exiting = false; > while (!exiting) { > - ctx.ovnsb_idl_txn = idl_loop_run(&ovnsb_idl_loop); > - ctx.ovs_idl_txn = idl_loop_run(&ovs_idl_loop); > + struct controller_ctx ctx = { > + .ovs_idl = ovs_idl_loop.idl, > + .ovs_idl_txn = idl_loop_run(&ovs_idl_loop), > + .ovnsb_idl = ovnsb_idl_loop.idl, > + .ovnsb_idl_txn = idl_loop_run(&ovnsb_idl_loop), > + }; > > const struct ovsrec_bridge *br_int = get_br_int(ctx.ovs_idl); > const char *chassis_id = get_chassis_id(ctx.ovs_idl); > @@ -291,8 +293,12 @@ main(int argc, char *argv[]) > /* It's time to exit. Clean up the databases. */ > bool done = false; > while (!done) { > - ctx.ovnsb_idl_txn = idl_loop_run(&ovnsb_idl_loop); > - ctx.ovs_idl_txn = idl_loop_run(&ovs_idl_loop); > + struct controller_ctx ctx = { > + .ovs_idl = ovs_idl_loop.idl, > + .ovs_idl_txn = idl_loop_run(&ovs_idl_loop), > + .ovnsb_idl = ovnsb_idl_loop.idl, > + .ovnsb_idl_txn = idl_loop_run(&ovnsb_idl_loop), > + }; > > const struct ovsrec_bridge *br_int = get_br_int(ctx.ovs_idl); > const char *chassis_id = get_chassis_id(ctx.ovs_idl); > -- > 2.1.3 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev