Skip to content

Commit

Permalink
Delete HO static mac bindings
Browse files Browse the repository at this point in the history
Signed-off-by: Jaime Caamaño Ruiz <jcaamano@redhat.com>
  • Loading branch information
jcaamano committed Aug 16, 2023
1 parent d28c03b commit 6ec6a5a
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 2 deletions.
15 changes: 14 additions & 1 deletion go-controller/pkg/ovn/hybrid.go
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,8 @@ func (oc *DefaultNetworkController) setupHybridLRPolicySharedGw(nodeSubnets []*n
return nil
}

func (oc *DefaultNetworkController) removeHybridLRPolicySharedGW(nodeName string) error {
func (oc *DefaultNetworkController) removeHybridLRPolicySharedGW(node *kapi.Node) error {
nodeName := node.Name
name := ovntypes.HybridSubnetPrefix + nodeName

if err := libovsdbops.DeleteLogicalRouterPoliciesWithPredicate(oc.nbClient, ovntypes.OVNClusterRouter, func(item *nbdb.LogicalRouterPolicy) bool {
Expand All @@ -307,6 +308,18 @@ func (oc *DefaultNetworkController) removeHybridLRPolicySharedGW(nodeName string
}); err != nil {
return fmt.Errorf("failed to delete static route %s from %s, error: %v", name+"gr", ovntypes.GWRouterPrefix+nodeName, err)
}

if node.Annotations[hotypes.HybridOverlayDRIP] != "" {
smb := &nbdb.StaticMACBinding{
IP: node.Annotations[hotypes.HybridOverlayDRIP],
LogicalPort: ovntypes.RouterToSwitchPrefix + nodeName,
}
err := libovsdbops.DeleteStaticMacBindings(oc.nbClient, smb)
if err != nil {
return fmt.Errorf("failed to delete static mac binding %+v: %v", smb, err)
}
}

return nil
}

Expand Down
2 changes: 2 additions & 0 deletions go-controller/pkg/ovn/hybrid_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,8 @@ var _ = ginkgo.Describe("Hybrid SDN Master Operations", func() {
return nil
}, 2).Should(gomega.Equal(libovsdbclient.ErrNotFound))

gomega.Eventually(clusterController.nbClient.Get(context.Background(), expectedStaticMACBinding), 2).Should(gomega.Equal(libovsdbclient.ErrNotFound))

return nil
}
err := app.Run([]string{
Expand Down
2 changes: 1 addition & 1 deletion go-controller/pkg/ovn/master.go
Original file line number Diff line number Diff line change
Expand Up @@ -959,7 +959,7 @@ func (oc *DefaultNetworkController) deleteNodeEvent(node *kapi.Node) error {
if _, ok := node.Annotations[hotypes.HybridOverlayDRMAC]; ok && !houtil.IsHybridOverlayNode(node) {
oc.deleteHybridOverlayPort(node)
}
if err := oc.removeHybridLRPolicySharedGW(node.Name); err != nil {
if err := oc.removeHybridLRPolicySharedGW(node); err != nil {
return err
}
}
Expand Down

0 comments on commit 6ec6a5a

Please sign in to comment.