From e7c679c362c11e1a3647d53794e30d8b7cd47b42 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Thu, 11 May 2023 10:53:03 +0200 Subject: [PATCH] cidrset, multicidrset: directly use getIndexForIP method Instead of constructing a *net.IPnet whose .Mask field is never used, call the getIndexForIP method of *CidrSet and *MultiCIDRSet directly. --- pkg/controller/nodeipam/ipam/cidrset/cidr_set.go | 14 ++------------ .../nodeipam/ipam/cidrset/cidr_set_test.go | 2 +- .../nodeipam/ipam/multicidrset/multi_cidr_set.go | 14 ++------------ .../ipam/multicidrset/multi_cidr_set_test.go | 2 +- 4 files changed, 6 insertions(+), 26 deletions(-) diff --git a/pkg/controller/nodeipam/ipam/cidrset/cidr_set.go b/pkg/controller/nodeipam/ipam/cidrset/cidr_set.go index b6746f108c9..7614db759e1 100644 --- a/pkg/controller/nodeipam/ipam/cidrset/cidr_set.go +++ b/pkg/controller/nodeipam/ipam/cidrset/cidr_set.go @@ -195,10 +195,7 @@ func (s *CidrSet) getBeginningAndEndIndices(cidr *net.IPNet) (begin, end int, er if cidr.IP.To4() == nil { ipSize = net.IPv6len } - begin, err = s.getIndexForCIDR(&net.IPNet{ - IP: cidr.IP.Mask(s.nodeMask), - Mask: s.nodeMask, - }) + begin, err = s.getIndexForIP(cidr.IP.Mask(s.nodeMask)) if err != nil { return -1, -1, err } @@ -214,10 +211,7 @@ func (s *CidrSet) getBeginningAndEndIndices(cidr *net.IPNet) (begin, end int, er binary.BigEndian.PutUint64(ip[:net.IPv6len/2], ipIntLeft) binary.BigEndian.PutUint64(ip[net.IPv6len/2:], ipIntRight) } - end, err = s.getIndexForCIDR(&net.IPNet{ - IP: net.IP(ip).Mask(s.nodeMask), - Mask: s.nodeMask, - }) + end, err = s.getIndexForIP(net.IP(ip).Mask(s.nodeMask)) if err != nil { return -1, -1, err } @@ -270,10 +264,6 @@ func (s *CidrSet) Occupy(cidr *net.IPNet) (err error) { return nil } -func (s *CidrSet) getIndexForCIDR(cidr *net.IPNet) (int, error) { - return s.getIndexForIP(cidr.IP) -} - func (s *CidrSet) getIndexForIP(ip net.IP) (int, error) { if ip.To4() != nil { cidrIndex := (binary.BigEndian.Uint32(s.clusterCIDR.IP) ^ binary.BigEndian.Uint32(ip.To4())) >> uint32(32-s.nodeMaskSize) diff --git a/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go b/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go index 3d8a9b8dbc1..9f34e3cd0ae 100644 --- a/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go +++ b/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go @@ -571,7 +571,7 @@ func TestGetBitforCIDR(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - got, err := cs.getIndexForCIDR(subnetCIDR) + got, err := cs.getIndexForIP(subnetCIDR.IP) if err == nil && tc.expectErr { t.Errorf("expected error but got null") return diff --git a/pkg/controller/nodeipam/ipam/multicidrset/multi_cidr_set.go b/pkg/controller/nodeipam/ipam/multicidrset/multi_cidr_set.go index e7ccf655a5c..d3b80b181a2 100644 --- a/pkg/controller/nodeipam/ipam/multicidrset/multi_cidr_set.go +++ b/pkg/controller/nodeipam/ipam/multicidrset/multi_cidr_set.go @@ -247,10 +247,7 @@ func (s *MultiCIDRSet) getBeginningAndEndIndices(cidr *net.IPNet) (int, int, err if netutils.IsIPv6(cidr.IP) { ipSize = net.IPv6len } - begin, err = s.getIndexForCIDR(&net.IPNet{ - IP: cidr.IP.Mask(s.nodeMask), - Mask: s.nodeMask, - }) + begin, err = s.getIndexForIP(cidr.IP.Mask(s.nodeMask)) if err != nil { return -1, -1, err } @@ -266,10 +263,7 @@ func (s *MultiCIDRSet) getBeginningAndEndIndices(cidr *net.IPNet) (int, int, err binary.BigEndian.PutUint64(ip[:net.IPv6len/2], ipIntLeft) binary.BigEndian.PutUint64(ip[net.IPv6len/2:], ipIntRight) } - end, err = s.getIndexForCIDR(&net.IPNet{ - IP: net.IP(ip).Mask(s.nodeMask), - Mask: s.nodeMask, - }) + end, err = s.getIndexForIP(net.IP(ip).Mask(s.nodeMask)) if err != nil { return -1, -1, err } @@ -333,10 +327,6 @@ func (s *MultiCIDRSet) Occupy(cidr *net.IPNet) (err error) { return nil } -func (s *MultiCIDRSet) getIndexForCIDR(cidr *net.IPNet) (int, error) { - return s.getIndexForIP(cidr.IP) -} - func (s *MultiCIDRSet) getIndexForIP(ip net.IP) (int, error) { if ip.To4() != nil { cidrIndex := (binary.BigEndian.Uint32(s.ClusterCIDR.IP) ^ binary.BigEndian.Uint32(ip.To4())) >> uint32(32-s.NodeMaskSize) diff --git a/pkg/controller/nodeipam/ipam/multicidrset/multi_cidr_set_test.go b/pkg/controller/nodeipam/ipam/multicidrset/multi_cidr_set_test.go index 79af5337fb2..72f22cfdff1 100644 --- a/pkg/controller/nodeipam/ipam/multicidrset/multi_cidr_set_test.go +++ b/pkg/controller/nodeipam/ipam/multicidrset/multi_cidr_set_test.go @@ -584,7 +584,7 @@ func TestGetBitforCIDR(t *testing.T) { t.Fatalf("unexpected error: %v for %v", err, tc.description) } - got, err := cs.getIndexForCIDR(subnetCIDR) + got, err := cs.getIndexForIP(subnetCIDR.IP) if err == nil && tc.expectErr { logger.Error(nil, "Expected error but got null", "description", tc.description) continue