@@ -177,7 +177,6 @@ void inc_proc_northd_init(struct ovsdb_idl_loop *nb,
engine_add_input(&en_northd, &en_sb_mirror, NULL);
engine_add_input(&en_northd, &en_sb_meter, NULL);
engine_add_input(&en_northd, &en_sb_datapath_binding, NULL);
- engine_add_input(&en_northd, &en_sb_mac_binding, NULL);
engine_add_input(&en_northd, &en_sb_dns, NULL);
engine_add_input(&en_northd, &en_sb_ha_chassis_group, NULL);
engine_add_input(&en_northd, &en_sb_ip_multicast, NULL);
@@ -186,6 +185,17 @@ void inc_proc_northd_init(struct ovsdb_idl_loop *nb,
engine_add_input(&en_northd, &en_sb_static_mac_binding, NULL);
engine_add_input(&en_northd, &en_sb_chassis_template_var, NULL);
+ /* northd engine node uses the sb mac binding table to
+ * cleanup mac binding entries for deleted logical ports
+ * and datapaths. Any update to SB mac binding doesn't
+ * change the northd engine node state or data. Hence
+ * it is ok to add a noop_handler here.
+ * Note: mac_binding_aging engine node depends on SB mac binding
+ * and it results in full recompute for any changes to it.
+ * */
+ engine_add_input(&en_northd, &en_sb_mac_binding,
+ engine_noop_handler);
+
engine_add_input(&en_northd, &en_sb_port_binding,
northd_sb_port_binding_handler);
engine_add_input(&en_northd, &en_nb_nb_global,