tailcfg: add latitude, longitude for node location (#11162)

Updates tailscale/corp#17590

Signed-off-by: Claire Wang <claire@tailscale.com>
pull/11273/head
Claire Wang 9 months ago committed by GitHub
parent 95dcc1745b
commit 352c1ac96c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -92,6 +92,10 @@ type DERPRegion struct {
// "San Francisco", "Singapore", "Frankfurt", etc. // "San Francisco", "Singapore", "Frankfurt", etc.
RegionName string RegionName string
// Latitude, Longitude are optional geographical coordinates of the DERP region's city, in degrees.
Latitude float64 `json:",omitempty"`
Longitude float64 `json:",omitempty"`
// Avoid is whether the client should avoid picking this as its home // Avoid is whether the client should avoid picking this as its home
// region. The region should only be used if a peer is there. // region. The region should only be used if a peer is there.
// Clients already using this region as their home should migrate // Clients already using this region as their home should migrate

@ -680,6 +680,11 @@ type Location struct {
// IATA, ICAO or ISO 3166-2 codes are recommended ("YSE") // IATA, ICAO or ISO 3166-2 codes are recommended ("YSE")
CityCode string `json:",omitempty"` CityCode string `json:",omitempty"`
// Latitude, Longitude are optional geographical coordinates of the node, in degrees.
// No particular accuracy level is promised; the coordinates may simply be the center of the city or country.
Latitude float64 `json:",omitempty"`
Longitude float64 `json:",omitempty"`
// Priority determines the order of use of an exit node when a // Priority determines the order of use of an exit node when a
// location based preference matches more than one exit node, // location based preference matches more than one exit node,
// the node with the highest priority wins. Nodes of equal // the node with the highest priority wins. Nodes of equal

@ -405,6 +405,8 @@ var _DERPRegionCloneNeedsRegeneration = DERPRegion(struct {
RegionID int RegionID int
RegionCode string RegionCode string
RegionName string RegionName string
Latitude float64
Longitude float64
Avoid bool Avoid bool
Nodes []*DERPNode Nodes []*DERPNode
}{}) }{})
@ -575,6 +577,8 @@ var _LocationCloneNeedsRegeneration = Location(struct {
CountryCode string CountryCode string
City string City string
CityCode string CityCode string
Latitude float64
Longitude float64
Priority int Priority int
}{}) }{})

@ -918,6 +918,8 @@ func (v *DERPRegionView) UnmarshalJSON(b []byte) error {
func (v DERPRegionView) RegionID() int { return v.ж.RegionID } func (v DERPRegionView) RegionID() int { return v.ж.RegionID }
func (v DERPRegionView) RegionCode() string { return v.ж.RegionCode } func (v DERPRegionView) RegionCode() string { return v.ж.RegionCode }
func (v DERPRegionView) RegionName() string { return v.ж.RegionName } func (v DERPRegionView) RegionName() string { return v.ж.RegionName }
func (v DERPRegionView) Latitude() float64 { return v.ж.Latitude }
func (v DERPRegionView) Longitude() float64 { return v.ж.Longitude }
func (v DERPRegionView) Avoid() bool { return v.ж.Avoid } func (v DERPRegionView) Avoid() bool { return v.ж.Avoid }
func (v DERPRegionView) Nodes() views.SliceView[*DERPNode, DERPNodeView] { func (v DERPRegionView) Nodes() views.SliceView[*DERPNode, DERPNodeView] {
return views.SliceOfViews[*DERPNode, DERPNodeView](v.ж.Nodes) return views.SliceOfViews[*DERPNode, DERPNodeView](v.ж.Nodes)
@ -928,6 +930,8 @@ var _DERPRegionViewNeedsRegeneration = DERPRegion(struct {
RegionID int RegionID int
RegionCode string RegionCode string
RegionName string RegionName string
Latitude float64
Longitude float64
Avoid bool Avoid bool
Nodes []*DERPNode Nodes []*DERPNode
}{}) }{})
@ -1374,6 +1378,8 @@ func (v LocationView) Country() string { return v.ж.Country }
func (v LocationView) CountryCode() string { return v.ж.CountryCode } func (v LocationView) CountryCode() string { return v.ж.CountryCode }
func (v LocationView) City() string { return v.ж.City } func (v LocationView) City() string { return v.ж.City }
func (v LocationView) CityCode() string { return v.ж.CityCode } func (v LocationView) CityCode() string { return v.ж.CityCode }
func (v LocationView) Latitude() float64 { return v.ж.Latitude }
func (v LocationView) Longitude() float64 { return v.ж.Longitude }
func (v LocationView) Priority() int { return v.ж.Priority } func (v LocationView) Priority() int { return v.ж.Priority }
// A compilation failure here means this code must be regenerated, with the command at the top of this file. // A compilation failure here means this code must be regenerated, with the command at the top of this file.
@ -1382,6 +1388,8 @@ var _LocationViewNeedsRegeneration = Location(struct {
CountryCode string CountryCode string
City string City string
CityCode string CityCode string
Latitude float64
Longitude float64
Priority int Priority int
}{}) }{})

Loading…
Cancel
Save