Abstract as a function so that it can be used by other modules.

Signed-off-by: Han Zhou <[email protected]>
---
 ovn/controller/ovn-controller.c | 66 ++++++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 30 deletions(-)

diff --git a/ovn/controller/ovn-controller.c b/ovn/controller/ovn-controller.c
index 4537046..8319819 100644
--- a/ovn/controller/ovn-controller.c
+++ b/ovn/controller/ovn-controller.c
@@ -490,6 +490,40 @@ get_nb_cfg(struct ovsdb_idl *idl)
     return sb ? sb->nb_cfg : 0;
 }
 
+static void
+ctrl_register_ovs_idl(struct ovsdb_idl *ovs_idl)
+{
+    /* We do not monitor all tables by default, so modules must register
+     * their interest explicitly. */
+    ovsdb_idl_add_table(ovs_idl, &ovsrec_table_open_vswitch);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_open_vswitch_col_external_ids);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_open_vswitch_col_bridges);
+    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);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_interface_col_ofport);
+    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_bridge);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_bridge_col_ports);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_bridge_col_name);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_bridge_col_fail_mode);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_bridge_col_other_config);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_bridge_col_external_ids);
+    ovsdb_idl_add_table(ovs_idl, &ovsrec_table_ssl);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_ssl_col_bootstrap_ca_cert);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_ssl_col_ca_cert);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_ssl_col_certificate);
+    ovsdb_idl_add_column(ovs_idl, &ovsrec_ssl_col_private_key);
+    chassis_register_ovs_idl(ovs_idl);
+    encaps_register_ovs_idl(ovs_idl);
+    binding_register_ovs_idl(ovs_idl);
+    physical_register_ovs_idl(ovs_idl);
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -524,38 +558,10 @@ main(int argc, char *argv[])
     pinctrl_init();
     lflow_init();
 
-    /* Connect to OVS OVSDB instance.  We do not monitor all tables by
-     * default, so modules must register their interest explicitly.  */
+    /* Connect to OVS OVSDB instance. */
     struct ovsdb_idl_loop ovs_idl_loop = OVSDB_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);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_open_vswitch_col_bridges);
-    ovsdb_idl_add_table(ovs_idl_loop.idl, &ovsrec_table_interface);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_interface_col_name);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_interface_col_type);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_interface_col_options);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_interface_col_ofport);
-    ovsdb_idl_add_table(ovs_idl_loop.idl, &ovsrec_table_port);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_port_col_name);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_port_col_interfaces);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_port_col_external_ids);
-    ovsdb_idl_add_table(ovs_idl_loop.idl, &ovsrec_table_bridge);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_bridge_col_ports);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_bridge_col_name);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_bridge_col_fail_mode);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_bridge_col_other_config);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_bridge_col_external_ids);
-    ovsdb_idl_add_table(ovs_idl_loop.idl, &ovsrec_table_ssl);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_ssl_col_bootstrap_ca_cert);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_ssl_col_ca_cert);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_ssl_col_certificate);
-    ovsdb_idl_add_column(ovs_idl_loop.idl, &ovsrec_ssl_col_private_key);
-    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);
+    ctrl_register_ovs_idl(ovs_idl_loop.idl);
     ovsdb_idl_get_initial_snapshot(ovs_idl_loop.idl);
 
     /* Connect to OVN SB database and get a snapshot. */
-- 
2.1.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to