Simplify incremental processing for port bindings especially with peer ports.`
Signed-off-by: Ales Musil <[email protected]> --- controller/physical.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/controller/physical.c b/controller/physical.c index 7c40f0402..7fbdb424e 100644 --- a/controller/physical.c +++ b/controller/physical.c @@ -2374,16 +2374,18 @@ physical_handle_flows_for_lport(const struct sbrec_port_binding *pb, physical_multichassis_reprocess(pb, p_ctx, flow_table); } + /* Always update pb and the configured peer for patch ports. */ if (!removed) { physical_eval_port_binding(p_ctx, pb, type, flow_table); - if (type == LP_PATCH) { - const struct sbrec_port_binding *peer = - get_binding_peer(p_ctx->sbrec_port_binding_by_name, pb); - if (peer) { - physical_eval_port_binding(p_ctx, peer, get_lport_type(peer), - flow_table); - } - } + } + + const struct sbrec_port_binding *peer = type == LP_PATCH + ? get_binding_peer(p_ctx->sbrec_port_binding_by_name, pb) + : NULL; + if (peer) { + ofctrl_remove_flows(flow_table, &peer->header_.uuid); + physical_eval_port_binding(p_ctx, peer, get_lport_type(peer), + flow_table); } return true; -- 2.47.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
