From d551b6b0a8afa0f2827435afb0fa35f06fb82afe Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Fri, 13 May 2016 16:26:34 +0100 Subject: [PATCH] Review feedback --- ipam/space/space.go | 2 +- net/address/address.go | 4 ++-- net/address/address_test.go | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ipam/space/space.go b/ipam/space/space.go index 41594898..f0acb0db 100644 --- a/ipam/space/space.go +++ b/ipam/space/space.go @@ -122,7 +122,7 @@ func (s *Space) biggestFreeRange(r address.Range) (biggest address.Range) { biggestSize := address.Count(0) s.walkFree(r, func(chunk address.Range) bool { if size := chunk.Size(); size >= biggestSize { - chunk = chunk.BiggestPow2AlignedRange() + chunk = chunk.BiggestCIDRRange() if size = chunk.Size(); size >= biggestSize { biggest = chunk biggestSize = size diff --git a/net/address/address.go b/net/address/address.go index f3f54926..b6e992ba 100644 --- a/net/address/address.go +++ b/net/address/address.go @@ -35,7 +35,7 @@ func (r Range) AsCIDRString() string { return CIDR{Addr: r.Start, PrefixLen: prefixLen}.String() } -// return the highest bit set in a +// return the highest bit set in v // algorithm from http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 func msb(v Count) Count { v |= v >> 1 @@ -47,7 +47,7 @@ func msb(v Count) Count { return Count((uint64(v) + 1) / 2) } -func (r Range) BiggestPow2AlignedRange() Range { +func (r Range) BiggestCIDRRange() Range { sizeMsb := Offset(msb(r.Size())) maskedSize := Offset(r.Size()) & (sizeMsb - 1) maskedStart := Offset(r.Start) & (sizeMsb - 1) diff --git a/net/address/address_test.go b/net/address/address_test.go index 42045ca4..46f699b4 100644 --- a/net/address/address_test.go +++ b/net/address/address_test.go @@ -20,17 +20,17 @@ func isPower2(x Count) bool { } func TestBiggestPow2AlignedRange(t *testing.T) { - require.Equal(t, NewRange(0, 1), NewRange(0, 1).BiggestPow2AlignedRange()) - require.Equal(t, NewRange(0, 2), NewRange(0, 3).BiggestPow2AlignedRange()) - require.Equal(t, NewRange(1, 1), NewRange(1, 2).BiggestPow2AlignedRange()) - require.Equal(t, NewRange(0, 0x40000000), NewRange(0, 0x7fffffff).BiggestPow2AlignedRange()) - require.Equal(t, NewRange(0xfffffffe, 1), NewRange(0xfffffffe, 1).BiggestPow2AlignedRange()) + require.Equal(t, NewRange(0, 1), NewRange(0, 1).BiggestCIDRRange()) + require.Equal(t, NewRange(1, 1), NewRange(1, 2).BiggestCIDRRange()) + require.Equal(t, NewRange(2, 2), NewRange(1, 3).BiggestCIDRRange()) + require.Equal(t, NewRange(0, 0x40000000), NewRange(0, 0x7fffffff).BiggestCIDRRange()) + require.Equal(t, NewRange(0xfffffffe, 1), NewRange(0xfffffffe, 1).BiggestCIDRRange()) prop := func(start Address, size Offset) bool { if size > Offset(0xffffffff)-Offset(start) { // out of range return true } r := NewRange(start, size) - result := r.BiggestPow2AlignedRange() + result := r.BiggestCIDRRange() return r.Contains(result.Start) && r.Contains(result.End-1) && isPower2(result.Size()) &&