code: func NewVIP(ip net.IP, vipSubnets map[string]*net.IPNet) *VIP {
  	vipType := UnicastVIP
  	switch {
  	case IsAnycast(ip):
  		vipType = AnycastVIP
  	case InSubnets(ip, vipSubnets):
  		vipType = DedicatedVIP
  	}
  	return &VIP{
  		IP:   NewIP(ip),
  		Type: vipType,
  	}
  }
docs: // NewVIP returns a seesaw VIP.