57251ce0af
Ring 3 corresponds to the pods of the kubernetes cluster of a region Signed-off-by: Alejandro Mery <amery@jpi.io>
19 lines
448 B
Go
19 lines
448 B
Go
package rings
|
|
|
|
import "net/netip"
|
|
|
|
// RingThreePrefix returns the subnet corresponding to
|
|
// the pods of a cluster.
|
|
//
|
|
// Ring 3 is a `10.(region_id << 4).0.0/12` network
|
|
func RingThreePrefix(region RegionID) (subnet netip.Prefix, err error) {
|
|
switch {
|
|
case !region.Valid():
|
|
err = ErrOutOfRange(region, "region")
|
|
default:
|
|
addr := AddrFrom4(10, uint(region)<<4, 0, 0)
|
|
subnet = netip.PrefixFrom(addr, RingThreeBits)
|
|
}
|
|
return subnet, err
|
|
}
|