mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-09 12:07:47 +00:00
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.
This commit is contained in:
parent
122a459dcb
commit
e7c679c362
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user