Commit 1e5fe58
controller: Do not remove ovn-installed from parent when deleting child port.
When a container (or virtual/mirror) child port is deleted,
handle_deleted_vif_lport() calls if_status_mgr_remove_ovn_installed()
on the associated lbinding's OVS interface. For child port types,
lbinding points to the parent's local_binding, so this incorrectly
strips ovn-installed from the parent's OVS interface.
This causes a cascade of problems:
1. ovn-installed is removed from the parent's OVS interface.
2. On the next full recompute (triggered by any SB commit failure,
IDL reconnection, etc.), claim_lport() notices the missing
ovn-installed and re-claims the parent port.
3. The parent port re-enters OIF_CLAIMED -> OIF_INSTALL_FLOWS,
during which local_binding_set_down() marks the parent AND all
remaining children as down in the Southbound database.
4. After flows are re-installed, all ports are set back up.
This results in a disruptive and unnecessary down/up bounce of the
parent port and all sibling container ports whenever a single child
port is deleted.
Fix this by skipping ovn-installed removal for port types that are
bound through a parent's local_binding rather than their own, so
that deleting a child port no longer disturbs the parent's interface
state.
Fixes: ec1db7a ("ovn-controller: fixed ovn-installed not always properly added or removed.")
Acked-by: Xavier Simonart <xsimonar@redhat.com>
Signed-off-by: Aditya Mehakare <aditya.mehakare@nutanix.com>
Acked-by: Naveen Yerramneni <naveen.yerramneni@nutanix.com>
Signed-off-by: Dumitru Ceara <dceara@redhat.com>1 parent 93ec294 commit 1e5fe58
2 files changed
Lines changed: 79 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1612 | 1612 | | |
1613 | 1613 | | |
1614 | 1614 | | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
| 1618 | + | |
| 1619 | + | |
| 1620 | + | |
| 1621 | + | |
| 1622 | + | |
| 1623 | + | |
1615 | 1624 | | |
1616 | 1625 | | |
1617 | 1626 | | |
| |||
2988 | 2997 | | |
2989 | 2998 | | |
2990 | 2999 | | |
2991 | | - | |
| 3000 | + | |
| 3001 | + | |
2992 | 3002 | | |
2993 | 3003 | | |
2994 | 3004 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4108 | 4108 | | |
4109 | 4109 | | |
4110 | 4110 | | |
| 4111 | + | |
| 4112 | + | |
| 4113 | + | |
| 4114 | + | |
| 4115 | + | |
| 4116 | + | |
| 4117 | + | |
| 4118 | + | |
| 4119 | + | |
| 4120 | + | |
| 4121 | + | |
| 4122 | + | |
| 4123 | + | |
| 4124 | + | |
| 4125 | + | |
| 4126 | + | |
| 4127 | + | |
| 4128 | + | |
| 4129 | + | |
| 4130 | + | |
| 4131 | + | |
| 4132 | + | |
| 4133 | + | |
| 4134 | + | |
| 4135 | + | |
| 4136 | + | |
| 4137 | + | |
| 4138 | + | |
| 4139 | + | |
| 4140 | + | |
| 4141 | + | |
| 4142 | + | |
| 4143 | + | |
| 4144 | + | |
| 4145 | + | |
| 4146 | + | |
| 4147 | + | |
| 4148 | + | |
| 4149 | + | |
| 4150 | + | |
| 4151 | + | |
| 4152 | + | |
| 4153 | + | |
| 4154 | + | |
| 4155 | + | |
| 4156 | + | |
| 4157 | + | |
| 4158 | + | |
| 4159 | + | |
| 4160 | + | |
| 4161 | + | |
| 4162 | + | |
| 4163 | + | |
| 4164 | + | |
| 4165 | + | |
| 4166 | + | |
| 4167 | + | |
| 4168 | + | |
| 4169 | + | |
| 4170 | + | |
| 4171 | + | |
| 4172 | + | |
| 4173 | + | |
| 4174 | + | |
| 4175 | + | |
| 4176 | + | |
| 4177 | + | |
| 4178 | + | |
0 commit comments