Skip to content

Commit

Permalink
ovn-controller: Omit tracking external_ids columns
Browse files Browse the repository at this point in the history
Running the command "ovn-nbctl set logical_switch_port foo external_ids:foo=bar"
results in the incremetal processing engine to recompute the flows on the
chassis where the logical port 'foo' is claimed.

This patch avoids this unnecessary recomputation by omitting the tracking of
external_ids column of all the Southbound DB tables except DNS, Chassis
and Datapath_Binding tables. ovn-controller is refering to the external_ids
column of these tables.

Signed-off-by: Numan Siddique <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
  • Loading branch information
numansiddique authored and blp committed Jul 5, 2019
1 parent 795d7f2 commit 8bf6d33
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions ovn/controller/ovn-controller.c
Original file line number Diff line number Diff line change
Expand Up @@ -1742,6 +1742,30 @@ main(int argc, char *argv[])

ovsdb_idl_track_add_all(ovnsb_idl_loop.idl);
ovsdb_idl_omit_alert(ovnsb_idl_loop.idl, &sbrec_chassis_col_nb_cfg);

/* Omit the external_ids column of all the tables except for -
* - DNS. pinctrl.c uses the external_ids column of DNS,
* which it shouldn't. This should be removed.
*
* - Chassis - chassis.c copies the chassis configuration from
* local open_vswitch table to the external_ids of
* chassis.
*
* - Datapath_binding - lflow.c is using this to check if the datapath
* is switch or not. This should be removed.
* */

ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_sb_global_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_logical_flow_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_port_binding_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_ssl_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl,
&sbrec_gateway_chassis_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_ha_chassis_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl,
&sbrec_ha_chassis_group_col_external_ids);

update_sb_monitors(ovnsb_idl_loop.idl, NULL, NULL, NULL);

stopwatch_create(CONTROLLER_LOOP_STOPWATCH_NAME, SW_MS);
Expand Down

0 comments on commit 8bf6d33

Please sign in to comment.