diff --git a/libnetwork/ipams/defaultipam/address_space.go b/libnetwork/ipams/defaultipam/address_space.go index d305d02ad4..92f886dcc9 100644 --- a/libnetwork/ipams/defaultipam/address_space.go +++ b/libnetwork/ipams/defaultipam/address_space.go @@ -2,7 +2,6 @@ package defaultipam import ( "context" - "errors" "net/netip" "slices" "sync" @@ -31,14 +30,6 @@ type addrSpace struct { } func newAddrSpace(predefined []*ipamutils.NetworkToSplit) (*addrSpace, error) { - for i, p := range predefined { - if !p.Base.IsValid() { - return nil, errors.New("newAddrSpace: prefix zero found") - } - - predefined[i].Base = p.Base.Masked() - } - slices.SortFunc(predefined, func(a, b *ipamutils.NetworkToSplit) int { return netiputil.PrefixCompare(a.Base, b.Base) }) diff --git a/libnetwork/ipams/defaultipam/allocator.go b/libnetwork/ipams/defaultipam/allocator.go index 1d2fcf30ee..645f1dfa8a 100644 --- a/libnetwork/ipams/defaultipam/allocator.go +++ b/libnetwork/ipams/defaultipam/allocator.go @@ -96,6 +96,8 @@ func splitByIPFamily(s []*ipamutils.NetworkToSplit) ([]*ipamutils.NetworkToSplit return []*ipamutils.NetworkToSplit{}, []*ipamutils.NetworkToSplit{}, fmt.Errorf("network at index %d (%v) is not in canonical form", i, n) } + n.Base, _ = n.Base.Addr().Unmap().Prefix(n.Base.Bits()) + if n.Base.Addr().Is4() { v4 = append(v4, n) } else {