github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/libnetwork/drivers/overlay/ovmanager/ovmanager_test.go (about) 1 package ovmanager 2 3 import ( 4 "fmt" 5 "net" 6 "strings" 7 "testing" 8 9 "github.com/Prakhar-Agarwal-byte/moby/libnetwork/driverapi" 10 "github.com/Prakhar-Agarwal-byte/moby/libnetwork/netlabel" 11 "github.com/Prakhar-Agarwal-byte/moby/libnetwork/types" 12 "gotest.tools/v3/assert" 13 is "gotest.tools/v3/assert/cmp" 14 ) 15 16 func parseCIDR(t *testing.T, ipnet string) *net.IPNet { 17 subnet, err := types.ParseCIDR(ipnet) 18 assert.NilError(t, err) 19 return subnet 20 } 21 22 func TestNetworkAllocateFree(t *testing.T) { 23 d := newDriver() 24 25 ipamData := []driverapi.IPAMData{ 26 { 27 Pool: parseCIDR(t, "10.1.1.0/24"), 28 }, 29 { 30 Pool: parseCIDR(t, "10.1.2.0/24"), 31 }, 32 } 33 34 vals, err := d.NetworkAllocate("testnetwork", nil, ipamData, nil) 35 assert.NilError(t, err) 36 37 vxlanIDs, ok := vals[netlabel.OverlayVxlanIDList] 38 assert.Check(t, is.Equal(true, ok)) 39 assert.Check(t, is.Len(strings.Split(vxlanIDs, ","), 2)) 40 41 err = d.NetworkFree("testnetwork") 42 assert.NilError(t, err) 43 } 44 45 func TestNetworkAllocateUserDefinedVNIs(t *testing.T) { 46 d := newDriver() 47 48 ipamData := []driverapi.IPAMData{ 49 { 50 Pool: parseCIDR(t, "10.1.1.0/24"), 51 }, 52 { 53 Pool: parseCIDR(t, "10.1.2.0/24"), 54 }, 55 } 56 57 options := make(map[string]string) 58 // Intentionally add mode vnis than subnets 59 options[netlabel.OverlayVxlanIDList] = fmt.Sprintf("%d,%d,%d", vxlanIDStart, vxlanIDStart+1, vxlanIDStart+2) 60 61 vals, err := d.NetworkAllocate("testnetwork", options, ipamData, nil) 62 assert.NilError(t, err) 63 64 vxlanIDs, ok := vals[netlabel.OverlayVxlanIDList] 65 assert.Check(t, is.Equal(true, ok)) 66 67 // We should only get exactly the same number of vnis as 68 // subnets. No more, no less, even if we passed more vnis. 69 assert.Check(t, is.Len(strings.Split(vxlanIDs, ","), 2)) 70 assert.Check(t, is.Equal(fmt.Sprintf("%d,%d", vxlanIDStart, vxlanIDStart+1), vxlanIDs)) 71 72 err = d.NetworkFree("testnetwork") 73 assert.NilError(t, err) 74 }