From 0e00270bea8588545ea720c2642c4458cd3af7da Mon Sep 17 00:00:00 2001 From: cedi <cedi@users.noreply.github.com> Date: Mon, 18 Mar 2019 18:19:46 +0000 Subject: [PATCH] Add GetRIBNames --- routingtable/vrf/vrf.go | 13 +++++++++++++ routingtable/vrf/vrf_test.go | 12 ++++++++++++ 2 files changed, 25 insertions(+) diff --git a/routingtable/vrf/vrf.go b/routingtable/vrf/vrf.go index 2a850939..f829549e 100644 --- a/routingtable/vrf/vrf.go +++ b/routingtable/vrf/vrf.go @@ -121,3 +121,16 @@ func (v *VRF) RIBByName(name string) (rib *locRIB.LocRIB, found bool) { rib, found = v.ribNames[name] return rib, found } + +// GetRIBNames returns an []string containing all rib-names +func (v *VRF) GetRIBNames() []string { + v.mu.Lock() + defer v.mu.Unlock() + + ribNames := make([]string, 0) + for ribName := range v.ribNames { + ribNames = append(ribNames, ribName) + } + + return ribNames +} diff --git a/routingtable/vrf/vrf_test.go b/routingtable/vrf/vrf_test.go index 4caa6841..3ee44dbd 100644 --- a/routingtable/vrf/vrf_test.go +++ b/routingtable/vrf/vrf_test.go @@ -81,3 +81,15 @@ func TestUnregister(t *testing.T) { _, found = globalRegistry.vrfsID[vrfID] assert.False(t, found, "vrf must not be in global registry") } + +func TestGetRIBNames(t *testing.T) { + vrfName := "namedRIBs" + vrfID := uint32(8) + v, err := New(vrfName, vrfID) + assert.Nil(t, err, "error must be nil on first invokation") + + ribNames := v.GetRIBNames() + expectedRibNames := []string{"inet.8", "inet6.8"} + + assert.EqualValues(t, expectedRibNames, ribNames, "rib names must match") +} -- GitLab