Port groups are collections of logical switch ports. Currently northd incremental processing fails when the mapping between a port group and the sets of switches that have ports in the port group changes. The I-P node dependencies are:
en_port_group -> en_lflow (lflow_port_group_handler() handler)
en_port_group -> en_ls_stateful (ls_stateful_port_group_handler() handler) -> en_lflow (lflow_ls_stateful_handler() handler)
The handlers are implemented as:
bool
lflow_port_group_handler(struct engine_node *node, void *data OVS_UNUSED)
{
struct port_group_data *pg_data =
engine_get_input_data("port_group", node); /* If the set of switches per port group didn't change then there's no
* need to reprocess lflows. Otherwise, there might be a need to
* add/delete port-group ACLs to/from switches. */
if (pg_data->ls_port_groups_sets_changed) {
return false;
}
...
bool
ls_stateful_port_group_handler(struct engine_node *node, void *data_)
{
struct port_group_data *pg_data =
engine_get_input_data("port_group", node); if (pg_data->ls_port_groups_sets_changed) {
return false;
}
...
Failure to handle such updates triggers a full recomputation of the lflow I-P node which can be costly at scale.
- links to
-
RHBA-2025:154902
ovn25.09 bug fix and enhancement update
- mentioned on