Skip to content

Commit

Permalink
Fix crash on nonexistent vrf delete
Browse files Browse the repository at this point in the history
  • Loading branch information
mageshgv authored and fujita committed Sep 30, 2019
1 parent 7426699 commit 2219380
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 3 deletions.
8 changes: 5 additions & 3 deletions pkg/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -2206,9 +2206,11 @@ func (s *BgpServer) DeleteVrf(ctx context.Context, r *api.DeleteVrfRequest) erro
return fmt.Errorf("failed to delete VRF %s: neighbor %s is in use", name, n.ID())
}
}
vrfMplsLabel := s.globalRib.Vrfs[name].MplsLabel
if vrfMplsLabel > 0 {
s.zclient.releaseMplsLabel(vrfMplsLabel)

if vrf, ok := s.globalRib.Vrfs[name]; ok {
if vrf.MplsLabel > 0 {
s.zclient.releaseMplsLabel(vrf.MplsLabel)
}
}
pathList, err := s.globalRib.DeleteVrf(name)
if err != nil {
Expand Down
25 changes: 25 additions & 0 deletions pkg/server/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1439,4 +1439,29 @@ func TestAddDeletePath(t *testing.T) {
assert.Equal(t, len(listRib()), 1)
assert.Equal(t, len(s.uuidMap), 1)
assert.NotEqual(t, u, r.Uuid)
s.StopBgp(context.Background(), &api.StopBgpRequest{})
}

func TestDeleteNonExistingVrf(t *testing.T) {
log.SetLevel(log.DebugLevel)

s := runNewServer(1, "1.1.1.1", 10179)
addVrf(t, s, "vrf1", "111:111", 1)
req := &api.DeleteVrfRequest{Name: "Invalidvrf"}
if err := s.DeleteVrf(context.Background(), req); err == nil {
t.Fatal("Did not raise error for invalid vrf deletion.", err)
}
s.StopBgp(context.Background(), &api.StopBgpRequest{})
}

func TestDeleteVrf(t *testing.T) {
log.SetLevel(log.DebugLevel)

s := runNewServer(1, "1.1.1.1", 10179)
addVrf(t, s, "vrf1", "111:111", 1)
req := &api.DeleteVrfRequest{Name: "vrf1"}
if err := s.DeleteVrf(context.Background(), req); err != nil {
t.Fatal("Vrf delete failed", err)
}
s.StopBgp(context.Background(), &api.StopBgpRequest{})
}

0 comments on commit 2219380

Please sign in to comment.