diff --git a/pkg/evpn/bridge.go b/pkg/evpn/bridge.go index 17571376..9bf5be3c 100644 --- a/pkg/evpn/bridge.go +++ b/pkg/evpn/bridge.go @@ -60,12 +60,6 @@ func (s *Server) CreateLogicalBridge(_ context.Context, in *pb.CreateLogicalBrid } // create vxlan only if VNI is not empty if in.LogicalBridge.Spec.Vni != nil { - bridge, err := s.nLink.LinkByName(tenantbridgeName) - if err != nil { - err := status.Errorf(codes.NotFound, "unable to find key %s", tenantbridgeName) - log.Printf("error: %v", err) - return nil, err - } // Example: ip link add vxlan- type vxlan id local dstport 4789 nolearning proxy myip := make(net.IP, 4) // TODO: remove hard-coded 167772162 == "10.0.0.2" @@ -79,6 +73,7 @@ func (s *Server) CreateLogicalBridge(_ context.Context, in *pb.CreateLogicalBrid return nil, err } // Example: ip link set vxlan- master br-tenant addrgenmode none + bridge := &netlink.Bridge{LinkAttrs: netlink.LinkAttrs{Name: tenantbridgeName}} if err := s.nLink.LinkSetMaster(vxlan, bridge); err != nil { fmt.Printf("Failed to add Vxlan to bridge: %v", err) return nil, err diff --git a/pkg/evpn/svi.go b/pkg/evpn/svi.go index 8b97c335..272bd575 100644 --- a/pkg/evpn/svi.go +++ b/pkg/evpn/svi.go @@ -78,12 +78,7 @@ func (s *Server) CreateSvi(_ context.Context, in *pb.CreateSviRequest) (*pb.Svi, return nil, err } // not found, so create a new one - bridge, err := s.nLink.LinkByName(tenantbridgeName) - if err != nil { - err := status.Errorf(codes.NotFound, "unable to find key %s", tenantbridgeName) - log.Printf("error: %v", err) - return nil, err - } + bridge := &netlink.Bridge{LinkAttrs: netlink.LinkAttrs{Name: tenantbridgeName}} vid := uint16(bridgeObject.Spec.VlanId) // Example: bridge vlan add dev br-tenant vid self if err := s.nLink.BridgeVlanAdd(bridge, vid, false, false, true, false); err != nil { diff --git a/pkg/evpn/vrf.go b/pkg/evpn/vrf.go index 47fbfc5b..ffa76079 100644 --- a/pkg/evpn/vrf.go +++ b/pkg/evpn/vrf.go @@ -193,13 +193,8 @@ func (s *Server) DeleteVrf(_ context.Context, in *pb.DeleteVrfRequest) (*emptypb } // use netlink to find BRIDGE device bridgeName := fmt.Sprintf("br%d", *obj.Spec.Vni) - bridgedev, err := s.nLink.LinkByName(bridgeName) + bridgedev := &netlink.Bridge{LinkAttrs: netlink.LinkAttrs{Name: bridgeName}} log.Printf("Deleting BRIDGE %v", bridgedev) - if err != nil { - err := status.Errorf(codes.NotFound, "unable to find key %s", bridgeName) - log.Printf("error: %v", err) - return nil, err - } // bring link down if err := s.nLink.LinkSetDown(bridgedev); err != nil { fmt.Printf("Failed to up link: %v", err)