| < draft-ietf-netmod-geo-location-04.txt | draft-ietf-netmod-geo-location-05.txt > | |||
|---|---|---|---|---|
| Network Working Group C. Hopps | Network Working Group C. Hopps | |||
| Internet-Draft LabN Consulting, L.L.C. | Internet-Draft LabN Consulting, L.L.C. | |||
| Intended status: Standards Track 1 March 2020 | Intended status: Standards Track 29 July 2020 | |||
| Expires: 2 September 2020 | Expires: 30 January 2021 | |||
| A YANG Grouping for Geographic Locations | A YANG Grouping for Geographic Locations | |||
| draft-ietf-netmod-geo-location-04 | draft-ietf-netmod-geo-location-05 | |||
| Abstract | Abstract | |||
| This document defines a generic geographical location object YANG | This document defines a generic geographical location object YANG | |||
| grouping. The geographical location grouping is intended to be used | grouping. The geographical location grouping is intended to be used | |||
| in YANG models for specifying a location on or in reference to the | in YANG models for specifying a location on or in reference to the | |||
| Earth or any other astronomical object. | Earth or any other astronomical object. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 33 ¶ | skipping to change at page 1, line 33 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 2 September 2020. | This Internet-Draft will expire on 30 January 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| skipping to change at page 2, line 17 ¶ | skipping to change at page 2, line 17 ¶ | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. The Geo Location Object . . . . . . . . . . . . . . . . . . . 3 | 2. The Geo Location Object . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Frame of Reference . . . . . . . . . . . . . . . . . . . 3 | 2.1. Frame of Reference . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.2. Location . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.2. Location . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.3. Motion . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.3. Motion . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.4. Nested Locations . . . . . . . . . . . . . . . . . . . . 5 | 2.4. Nested Locations . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.5. Non-location Attributes . . . . . . . . . . . . . . . . . 5 | 2.5. Non-location Attributes . . . . . . . . . . . . . . . . . 5 | |||
| 2.6. Tree . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.6. Tree . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. ISO 6709:2008 Conformance . . . . . . . . . . . . . . . . . . 11 | 4. ISO 6709:2008 Conformance . . . . . . . . . . . . . . . . . . 12 | |||
| 5. Usability . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 5. Usability . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5.1. Portability . . . . . . . . . . . . . . . . . . . . . . . 13 | 5.1. Portability . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 5.1.1. IETF URI Value . . . . . . . . . . . . . . . . . . . 13 | 5.1.1. IETF URI Value . . . . . . . . . . . . . . . . . . . 13 | |||
| 5.1.2. W3C . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 5.1.2. W3C . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 5.1.3. Geography Markup Language (GML) . . . . . . . . . . . 15 | 5.1.3. Geography Markup Language (GML) . . . . . . . . . . . 15 | |||
| 5.1.4. KML . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 5.1.4. KML . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 6.1. Geodetic System Value Registry . . . . . . . . . . . . . 16 | 6.1. Geodetic System Values Registry . . . . . . . . . . . . . 16 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 6.2. Updates to the IETF XML Registry . . . . . . . . . . . . 18 | |||
| 8. Normative References . . . . . . . . . . . . . . . . . . . . 18 | 6.3. Updates to the YANG Module Names Registry . . . . . . . . 18 | |||
| 9. Informative References . . . . . . . . . . . . . . . . . . . 19 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
| Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 19 | 8. Normative References . . . . . . . . . . . . . . . . . . . . 19 | |||
| Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 22 | 9. Informative References . . . . . . . . . . . . . . . . . . . 20 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 22 | Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| Appendix B. Acknowledgments . . . . . . . . . . . . . . . . . . 24 | ||||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 24 | ||||
| 1. Introduction | 1. Introduction | |||
| In many applications we would like to specify the location of | In many applications we would like to specify the location of | |||
| something geographically. Some examples of locations in networking | something geographically. Some examples of locations in networking | |||
| might be the location of data center, a rack in an internet exchange | might be the location of data center, a rack in an internet exchange | |||
| point, a router, a firewall, a port on some device, or it could be | point, a router, a firewall, a port on some device, or it could be | |||
| the endpoints of a fiber, or perhaps the failure point along a fiber. | the endpoints of a fiber, or perhaps the failure point along a fiber. | |||
| Additionally, while this location is typically relative to The Earth, | Additionally, while this location is typically relative to The Earth, | |||
| skipping to change at page 6, line 28 ¶ | skipping to change at page 6, line 28 ¶ | |||
| | | +-- longitude? decimal64 | | | +-- longitude? decimal64 | |||
| | | +-- height? decimal64 | | | +-- height? decimal64 | |||
| | +--:(cartesian) | | +--:(cartesian) | |||
| | +-- x? decimal64 | | +-- x? decimal64 | |||
| | +-- y? decimal64 | | +-- y? decimal64 | |||
| | +-- z? decimal64 | | +-- z? decimal64 | |||
| +-- velocity | +-- velocity | |||
| | +-- v-north? decimal64 | | +-- v-north? decimal64 | |||
| | +-- v-east? decimal64 | | +-- v-east? decimal64 | |||
| | +-- v-up? decimal64 | | +-- v-up? decimal64 | |||
| +-- timestamp? types:date-and-time | +-- timestamp? yang:date-and-time | |||
| +-- valid-until? types:date-and-time | +-- valid-until? yang:date-and-time | |||
| 3. YANG Module | 3. YANG Module | |||
| This model imports Common YANG Data Types [RFC6991]. | ||||
| <CODE BEGINS> file "ietf-geo-location@2019-02-17.yang" | <CODE BEGINS> file "ietf-geo-location@2019-02-17.yang" | |||
| module ietf-geo-location { | module ietf-geo-location { | |||
| yang-version 1.1; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-geo-location"; | namespace "urn:ietf:params:xml:ns:yang:ietf-geo-location"; | |||
| prefix geo; | prefix geo; | |||
| import ietf-yang-types { prefix types; } | import ietf-yang-types { | |||
| prefix yang; | ||||
| reference "RFC 6991: Common YANG Data Types."; | ||||
| } | ||||
| organization | organization | |||
| "IETF NETMOD Working Group (NETMOD)"; | "IETF NETMOD Working Group (NETMOD)"; | |||
| contact | contact | |||
| "Christian Hopps <chopps@chopps.org>"; | "Christian Hopps <chopps@chopps.org>"; | |||
| // RFC Ed.: replace XXXX with actual RFC number and | // RFC Ed.: replace XXXX with actual RFC number or IANA reference | |||
| // remove this note. | // and remove this note. | |||
| description | description | |||
| "This module defines a grouping of a container object for | "This module defines a grouping of a container object for | |||
| specifying a location on or around an astronomical object (e.g., | specifying a location on or around an astronomical object (e.g., | |||
| The Earth). | The Earth). | |||
| Copyright (c) 2019 IETF Trust and the persons identified as | Copyright (c) 2019 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
| the license terms contained in, the Simplified BSD License set | the license terms contained in, the Simplified BSD License set | |||
| forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC XXXX | |||
| (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | |||
| for full legal notices. | for full legal notices. | |||
| // RFC Ed.: replace XXXX with actual RFC number and | // RFC Ed.: replace XXXX with actual RFC number or IANA reference | |||
| // remove this note. | // and remove this note. | |||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | |||
| 'MAY', and 'OPTIONAL' in this document are to be interpreted as | 'MAY', and 'OPTIONAL' in this document are to be interpreted as | |||
| described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | |||
| they appear in all capitals, as shown here."; | they appear in all capitals, as shown here."; | |||
| revision 2019-02-17 { | revision 2019-02-17 { | |||
| description "Initial Revision"; | description "Initial Revision"; | |||
| reference "RFC XXXX: YANG Geo Location"; | reference "RFC XXXX: A YANG Grouping for Geographic Locations"; | |||
| } | } | |||
| feature alternate-systems { | feature alternate-systems { | |||
| description | description | |||
| "This feature means the device supports specifying locations | "This feature means the device supports specifying locations | |||
| using alternate systems for reference frames."; | using alternate systems for reference frames."; | |||
| } | } | |||
| grouping geo-location { | grouping geo-location { | |||
| description | description | |||
| "Grouping to identify a location on an astronomical object."; | "Grouping to identify a location on an astronomical object."; | |||
| container geo-location { | container geo-location { | |||
| description | description | |||
| "A location on an astronomical body (e.g., The Earth) | "A location on an astronomical body (e.g., the Earth) | |||
| somewhere in a universe."; | somewhere in a universe."; | |||
| container reference-frame { | container reference-frame { | |||
| description | description | |||
| "The Frame of Reference for the location values."; | "The Frame of Reference for the location values."; | |||
| leaf alternate-system { | leaf alternate-system { | |||
| if-feature alternate-systems; | if-feature alternate-systems; | |||
| type string; | type string; | |||
| description | description | |||
| skipping to change at page 8, line 30 ¶ | skipping to change at page 8, line 37 ¶ | |||
| "An astronomical body as named by the International | "An astronomical body as named by the International | |||
| Astronomical Union (IAU) or according to the alternate | Astronomical Union (IAU) or according to the alternate | |||
| system if specified. Examples include 'sun' (our star), | system if specified. Examples include 'sun' (our star), | |||
| 'earth' (our planet), 'moon' (our moon), 'enceladus' (a | 'earth' (our planet), 'moon' (our moon), 'enceladus' (a | |||
| moon of Saturn), 'ceres' (an asteroid), | moon of Saturn), 'ceres' (an asteroid), | |||
| '67p/churyumov-gerasimenko (a comet). The value should | '67p/churyumov-gerasimenko (a comet). The value should | |||
| be comprised of all lower case ASCII characters not | be comprised of all lower case ASCII characters not | |||
| including control characters (i.e., values 32..64, and | including control characters (i.e., values 32..64, and | |||
| 91..126). Any preceding 'the' in the name should not be | 91..126). Any preceding 'the' in the name should not be | |||
| included."; | included."; | |||
| reference "https://www.iau.org/"; | ||||
| } | } | |||
| container geodetic-system { | container geodetic-system { | |||
| description | description | |||
| "The geodetic system of the location data."; | "The geodetic system of the location data."; | |||
| leaf geodetic-datum { | leaf geodetic-datum { | |||
| type string { | type string { | |||
| pattern '[ -@\[-\^_-~]*'; | pattern '[ -@\[-\^_-~]*'; | |||
| } | } | |||
| default "wgs-84"; | default "wgs-84"; | |||
| description | description | |||
| "A geodetic-datum defining the meaning of latitude, | "A geodetic-datum defining the meaning of latitude, | |||
| longitude and height. The default is 'wgs-84' which is | longitude and height. The default is 'wgs-84' which is | |||
| used by the Global Positioning System (GPS). The value | used by the Global Positioning System (GPS). The value | |||
| SHOULD be comprised of all lower case ASCII characters | SHOULD be comprised of all lower case ASCII characters | |||
| not including control characters (i.e., values 32..64, | not including control characters (i.e., values 32..64, | |||
| and 91..126). The IANA registry further restricts the | and 91..126). The IANA registry further restricts the | |||
| value by converting all spaces (' ') to dashes ('-')"; | value by converting all spaces (' ') to dashes ('-')"; | |||
| reference | ||||
| "IANA XXXX YANG Geographic Location Parameters, | ||||
| Geodetic System Values"; | ||||
| } | } | |||
| leaf coord-accuracy { | leaf coord-accuracy { | |||
| type decimal64 { | type decimal64 { | |||
| fraction-digits 6; | fraction-digits 6; | |||
| } | } | |||
| description | description | |||
| "The accuracy of the latitude longitude pair for | "The accuracy of the latitude longitude pair for | |||
| ellipsoidal coordinates, or the X, Y and Z components | ellipsoidal coordinates, or the X, Y and Z components | |||
| for Cartesian coordinates. When coord-accuracy is | for Cartesian coordinates. When coord-accuracy is | |||
| specified it overrides the geodetic-datum implied | specified it overrides the geodetic-datum implied | |||
| skipping to change at page 10, line 40 ¶ | skipping to change at page 10, line 50 ¶ | |||
| } | } | |||
| units "meters"; | units "meters"; | |||
| description | description | |||
| "The Z value as defined by the reference-frame."; | "The Z value as defined by the reference-frame."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container velocity { | container velocity { | |||
| description | description | |||
| "If the object is in motion the velocity vector describes | "If the object is in motion the velocity vector describes | |||
| this motion at the the time given by the timestamp"; | this motion at the the time given by the timestamp. For a | |||
| formula to convert these values to speed and heading see | ||||
| this modules defining document RFC XXXX."; | ||||
| reference | ||||
| "RFC XXXX: A YANG Grouping for Geographic Locations"; | ||||
| leaf v-north { | leaf v-north { | |||
| type decimal64 { | type decimal64 { | |||
| fraction-digits 12; | fraction-digits 12; | |||
| } | } | |||
| units "meters per second"; | units "meters per second"; | |||
| description | description | |||
| "v-north is the rate of change (i.e., speed) towards | "v-north is the rate of change (i.e., speed) towards | |||
| truth north as defined by the ~geodetic-system~."; | truth north as defined by the ~geodetic-system~."; | |||
| } | } | |||
| skipping to change at page 11, line 25 ¶ | skipping to change at page 11, line 39 ¶ | |||
| type decimal64 { | type decimal64 { | |||
| fraction-digits 12; | fraction-digits 12; | |||
| } | } | |||
| units "meters per second"; | units "meters per second"; | |||
| description | description | |||
| "v-up is the rate of change (i.e., speed) away from the | "v-up is the rate of change (i.e., speed) away from the | |||
| center of mass."; | center of mass."; | |||
| } | } | |||
| } | } | |||
| leaf timestamp { | leaf timestamp { | |||
| type types:date-and-time; | type yang:date-and-time; | |||
| description "Reference time when location was recorded."; | description "Reference time when location was recorded."; | |||
| } | } | |||
| leaf valid-until { | leaf valid-until { | |||
| type types:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "The timestamp for which this geo-location is valid until. | "The timestamp for which this geo-location is valid until. | |||
| If unspecified the geo-location has no specific expiration | If unspecified the geo-location has no specific expiration | |||
| time."; | time."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| skipping to change at page 13, line 32 ¶ | skipping to change at page 13, line 36 ¶ | |||
| URI values can be mapped to and from the YANG grouping, with the | URI values can be mapped to and from the YANG grouping, with the | |||
| caveat that some loss of precision (in the extremes) may occur due to | caveat that some loss of precision (in the extremes) may occur due to | |||
| the YANG grouping using decimal64 values rather than strings. | the YANG grouping using decimal64 values rather than strings. | |||
| 5.1.2. W3C | 5.1.2. W3C | |||
| W3C Defines a geo-location API in [W3CGEO]. We show a snippet of | W3C Defines a geo-location API in [W3CGEO]. We show a snippet of | |||
| code below which defines the geo-location data for this API. This is | code below which defines the geo-location data for this API. This is | |||
| used by many application (e.g., Google Maps API). | used by many application (e.g., Google Maps API). | |||
| interface GeolocationPosition { | interface GeolocationPosition { | |||
| readonly attribute GeolocationCoordinates coords; | readonly attribute GeolocationCoordinates coords; | |||
| readonly attribute DOMTimeStamp timestamp; | readonly attribute DOMTimeStamp timestamp; | |||
| }; | }; | |||
| interface GeolocationCoordinates { | interface GeolocationCoordinates { | |||
| readonly attribute double latitude; | readonly attribute double latitude; | |||
| readonly attribute double longitude; | readonly attribute double longitude; | |||
| readonly attribute double? altitude; | readonly attribute double? altitude; | |||
| readonly attribute double accuracy; | readonly attribute double accuracy; | |||
| readonly attribute double? altitudeAccuracy; | readonly attribute double? altitudeAccuracy; | |||
| readonly attribute double? speed; | readonly attribute double? speed; | |||
| }; | }; | |||
| Figure 1: Snippet Showing Geo-Location Definition | Figure 1: Snippet Showing Geo-Location Definition | |||
| 5.1.2.1. Compare with YANG Model | 5.1.2.1. Compare with YANG Model | |||
| +------------------+--------------+-----------------+-------------+ | +------------------+--------------+-----------------+-------------+ | |||
| | Field | Type | YANG | Type | | | Field | Type | YANG | Type | | |||
| +==================+==============+=================+=============+ | +==================+==============+=================+=============+ | |||
| | accuracy | double | coord-accuracy | dec64 fr 6 | | | accuracy | double | coord-accuracy | dec64 fr 6 | | |||
| +------------------+--------------+-----------------+-------------+ | +------------------+--------------+-----------------+-------------+ | |||
| skipping to change at page 15, line 45 ¶ | skipping to change at page 15, line 47 ¶ | |||
| geodetic systems fully supported. | geodetic systems fully supported. | |||
| GML also defines an observation value in "gml:Observation" which | GML also defines an observation value in "gml:Observation" which | |||
| includes a timestamp value "gml:validTime" in addition to other | includes a timestamp value "gml:validTime" in addition to other | |||
| components such as "gml:using" "gml:target" and "gml:resultOf". Only | components such as "gml:using" "gml:target" and "gml:resultOf". Only | |||
| the timestamp is mappable to and from the YANG grouping. Furthermore | the timestamp is mappable to and from the YANG grouping. Furthermore | |||
| "gml:validTime" can either be an Instantaneous measure | "gml:validTime" can either be an Instantaneous measure | |||
| ("gml:TimeInstant") or a time period ("gml:TimePeriod"). The | ("gml:TimeInstant") or a time period ("gml:TimePeriod"). The | |||
| instantaneous "gml:TimeInstant" is mappable to and from the YANG | instantaneous "gml:TimeInstant" is mappable to and from the YANG | |||
| grouping "timestamp" value, and values down to the resolution of | grouping "timestamp" value, and values down to the resolution of | |||
| seconds for "gml:TimePeriod" can be mapped using the using the | seconds for "gml:TimePeriod" can be mapped using the "valid-until" | |||
| "valid-for" node of the YANG grouping. | node of the YANG grouping. | |||
| 5.1.4. KML | 5.1.4. KML | |||
| KML 2.2 [KML22] (formerly Keyhole Markup Language) was submitted by | KML 2.2 [KML22] (formerly Keyhole Markup Language) was submitted by | |||
| Google to the Open Geospatial Consortium, | Google to the Open Geospatial Consortium, | |||
| (https://www.opengeospatial.org/) and was adopted. The latest | (https://www.opengeospatial.org/) and was adopted. The latest | |||
| version as of this writing is KML 2.3 [KML23]. This schema includes | version as of this writing is KML 2.3 [KML23]. This schema includes | |||
| geographic location data in some of its objects (e.g., "kml:Point" or | geographic location data in some of its objects (e.g., "kml:Point" or | |||
| "kml:Camera" objects). This data is provided in string format and | "kml:Camera" objects). This data is provided in string format and | |||
| corresponds to the [W3CGEO] values. The timestamp value is also | corresponds to the [W3CGEO] values. The timestamp value is also | |||
| skipping to change at page 16, line 46 ¶ | skipping to change at page 16, line 46 ¶ | |||
| directions (when using a supported altitude mode) with the caveat | directions (when using a supported altitude mode) with the caveat | |||
| that some loss of precision (in the extremes) may occur due to the | that some loss of precision (in the extremes) may occur due to the | |||
| YANG grouping using decimal64 values rather than strings. For the | YANG grouping using decimal64 values rather than strings. For the | |||
| relative height cases the application doing the transformation is | relative height cases the application doing the transformation is | |||
| expected to have the data available to transform the relative height | expected to have the data available to transform the relative height | |||
| into an absolute height which can then be expressed using the YANG | into an absolute height which can then be expressed using the YANG | |||
| grouping. | grouping. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| 6.1. Geodetic System Value Registry | 6.1. Geodetic System Values Registry | |||
| IANA is asked to create a new registry "Geodetic System Values" | ||||
| grouped under a new category named "YANG Geographic Location | ||||
| Parameters". | ||||
| This registry allocates names for standard geodetic systems. Often | This registry allocates names for standard geodetic systems. Often | |||
| these values are referred to using multiple names (e.g., full names | these values are referred to using multiple names (e.g., full names | |||
| or multiple acronyms values). The intent of this registry is to | or multiple acronyms values). The intent of this registry is to | |||
| provide a single standard value for any given geodetic system. | provide a single standard value for any given geodetic system. | |||
| The values SHOULD use an acronym when available, they MUST be | The values SHOULD use an acronym when available, they MUST be | |||
| converted to lower case, and spaces MUST be changed to dashes "-". | converted to lower case, and spaces MUST be changed to dashes "-". | |||
| Each entry should be sufficient to define the 3 coordinate values (2 | Each entry should be sufficient to define the 3 coordinate values (2 | |||
| skipping to change at page 17, line 44 ¶ | skipping to change at page 18, line 5 ¶ | |||
| | wgs-84-96 | World Geodetic System 1984 [WGS84] w/ EGM96 | | | wgs-84-96 | World Geodetic System 1984 [WGS84] w/ EGM96 | | |||
| +------------+------------------------------------------------------+ | +------------+------------------------------------------------------+ | |||
| | wgs-84-08 | World Geodetic System 1984 [WGS84] w/ [EGM08] | | | wgs-84-08 | World Geodetic System 1984 [WGS84] w/ [EGM08] | | |||
| +------------+------------------------------------------------------+ | +------------+------------------------------------------------------+ | |||
| | wgs-84 | World Geodetic System 1984 [WGS84] (EGM96 or | | | wgs-84 | World Geodetic System 1984 [WGS84] (EGM96 or | | |||
| | | better) | | | | better) | | |||
| +------------+------------------------------------------------------+ | +------------+------------------------------------------------------+ | |||
| Table 3 | Table 3 | |||
| 6.2. Updates to the IETF XML Registry | ||||
| This document registers a URI in the "IETF XML Registry" [RFC3688]. | ||||
| Following the format in [RFC3688], the following registration has | ||||
| been made: | ||||
| URI urn:ietf:params:xml:ns:yang:ietf-geo-location | ||||
| Registrant Contact The IESG. | ||||
| XML N/A; the requested URI is an XML namespace. | ||||
| 6.3. Updates to the YANG Module Names Registry | ||||
| This document registers one YANG module in the "YANG Module Names" | ||||
| registry [RFC6020]. Following the format in [RFC6020], the following | ||||
| registration has been made: | ||||
| name ietf-geo-location | ||||
| namespace urn:ietf:params:xml:ns:yang:ietf-geo-location | ||||
| prefix geo | ||||
| reference RFC XXXX (RFC Ed.: replace XXX with actual RFC number and | ||||
| remove this note.) | ||||
| 7. Security Considerations | 7. Security Considerations | |||
| This document defines a common geo location grouping using the YANG | The YANG module specified in this document defines a schema for data | |||
| data modeling language. The grouping itself has no security or | that is designed to be accessed via network management protocols such | |||
| privacy impact on the Internet, but the usage of the grouping in | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| concrete YANG modules might have. The security considerations | is the secure transport layer, and the mandatory-to-implement secure | |||
| spelled out in the YANG 1.1 specification [RFC7950] apply for this | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| document as well. | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| [RFC8446]. | ||||
| The NETCONF access control model [RFC8341] provides the means to | ||||
| restrict access for particular NETCONF or RESTCONF users to a | ||||
| preconfigured subset of all available NETCONF or RESTCONF protocol | ||||
| operations and content. | ||||
| Since the modules defined in this document only define groupings, | ||||
| these considerations are primarily for the designers of other modules | ||||
| that use these groupings. | ||||
| All of the data nodes defined in this YANG module are | ||||
| writable/creatable/deletable (i.e., "config true", which is the | ||||
| default). These data nodes may be considered sensitive or vulnerable | ||||
| in some network environments. Write operations (e.g., edit-config) | ||||
| to these data nodes without proper protection can have a negative | ||||
| effect on network operations. These are the subtrees and data nodes | ||||
| and their sensitivity/vulnerability: | ||||
| None of the writable/creatable/deletable data nodes in the YANG | ||||
| module defined in this document are by themselves considered more | ||||
| sensitive or vulnerable then standard configuration. | ||||
| Some of the readable data nodes in this YANG module may be considered | ||||
| sensitive or vulnerable in some network environments. It is thus | ||||
| important to control read access (e.g., via get, get-config, or | ||||
| notification) to these data nodes. These are the subtrees and data | ||||
| nodes and their sensitivity/vulnerability: | ||||
| Since the grouping defined in this module identifies locations, | ||||
| authors using this grouping SHOULD consider any privacy issues that | ||||
| may arise when the data is readable. | ||||
| This document does not define any RPC actions and hence this section | ||||
| does not consider the security of RPCs. | ||||
| 8. Normative References | 8. Normative References | |||
| [EGM08] Pavlis, N.K., Holmes, S.A., Kenyon, S.C., and J.K. Factor, | [EGM08] Pavlis, N.K., Holmes, S.A., Kenyon, S.C., and J.K. Factor, | |||
| "An Earth Gravitational Model to Degree 2160: EGM08.", | "An Earth Gravitational Model to Degree 2160: EGM08.", | |||
| Presented at the 2008 General Assembly of the European | Presented at the 2008 General Assembly of the European | |||
| Geosciences Union, Vienna, Arpil13-18, 2008, 2008, | Geosciences Union, Vienna, Arpil13-18, 2008, 2008, | |||
| <http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008/ | <http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008/ | |||
| egm08_wgs84.html>. | egm08_wgs84.html>. | |||
| skipping to change at page 18, line 34 ¶ | skipping to change at page 20, line 10 ¶ | |||
| [ISO.6709.2008] | [ISO.6709.2008] | |||
| International Organization for Standardization, "ISO | International Organization for Standardization, "ISO | |||
| 6709:2008 Standard representation of geographic point | 6709:2008 Standard representation of geographic point | |||
| location by coordinates.", 2008. | location by coordinates.", 2008. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
| Writing an IANA Considerations Section in RFCs", BCP 26, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | <https://www.rfc-editor.org/info/rfc6991>. | |||
| <https://www.rfc-editor.org/info/rfc8126>. | ||||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | ||||
| Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8126>. | ||||
| [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
| and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
| (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
| [WGS84] National Imagery and Mapping Agency., "National Imagery | [WGS84] National Imagery and Mapping Agency., "National Imagery | |||
| and Mapping Agency Technical Report 8350.2, Third | and Mapping Agency Technical Report 8350.2, Third | |||
| Edition.", 3 January 2000, | Edition.", 3 January 2000, <http://earth- | |||
| <http://earth-info.nga.mil/GandG/publications/tr8350.2/ | info.nga.mil/GandG/publications/tr8350.2/wgs84fin.pdf>. | |||
| wgs84fin.pdf>. | ||||
| 9. Informative References | 9. Informative References | |||
| [ISO.19136.2007] | [ISO.19136.2007] | |||
| International Organization for Standardization, "ISO | International Organization for Standardization, "ISO | |||
| 19136:2007 Geographic information -- Geography Markup | 19136:2007 Geographic information -- Geography Markup | |||
| Language (GML)", March 2020. | Language (GML)". | |||
| [KML22] Wilson, T., Ed., "OGC KML (Version 2.2)", 14 April 2008, | [KML22] Wilson, T., Ed., "OGC KML (Version 2.2)", 14 April 2008, | |||
| <http://portal.opengeospatial.org/ | <http://portal.opengeospatial.org/ | |||
| files/?artifact_id=27810>. | files/?artifact_id=27810>. | |||
| [KML23] Burggraf, D., Ed., "OGC KML 2.3", 4 August 2015, | [KML23] Burggraf, D., Ed., "OGC KML 2.3", 4 August 2015, | |||
| <http://docs.opengeospatial.org/ | <http://docs.opengeospatial.org/ | |||
| is/12-007r2/12-007r2.html>. | is/12-007r2/12-007r2.html>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | ||||
| DOI 10.17487/RFC3688, January 2004, | ||||
| <https://www.rfc-editor.org/info/rfc3688>. | ||||
| [RFC5870] Mayrhofer, A. and C. Spanring, "A Uniform Resource | [RFC5870] Mayrhofer, A. and C. Spanring, "A Uniform Resource | |||
| Identifier for Geographic Locations ('geo' URI)", | Identifier for Geographic Locations ('geo' URI)", | |||
| RFC 5870, DOI 10.17487/RFC5870, June 2010, | RFC 5870, DOI 10.17487/RFC5870, June 2010, | |||
| <https://www.rfc-editor.org/info/rfc5870>. | <https://www.rfc-editor.org/info/rfc5870>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | ||||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | ||||
| DOI 10.17487/RFC6020, October 2010, | ||||
| <https://www.rfc-editor.org/info/rfc6020>. | ||||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | ||||
| and A. Bierman, Ed., "Network Configuration Protocol | ||||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | ||||
| <https://www.rfc-editor.org/info/rfc6241>. | ||||
| [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | ||||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | ||||
| <https://www.rfc-editor.org/info/rfc6242>. | ||||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8040>. | ||||
| [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
| BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
| [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
| Access Control Model", STD 91, RFC 8341, | ||||
| DOI 10.17487/RFC8341, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8341>. | ||||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8446>. | ||||
| [W3CGEO] Popescu, A., "Geolocation API Specification", 8 November | [W3CGEO] Popescu, A., "Geolocation API Specification", 8 November | |||
| 2016, <https://www.w3.org/TR/2016/ | 2016, <https://www.w3.org/TR/2016/REC-geolocation-API- | |||
| REC-geolocation-API-20161108/>. | 20161108/>. | |||
| Appendix A. Examples | Appendix A. Examples | |||
| Below is a fictitious module that uses the geo-location grouping. | Below is a fictitious module that uses the geo-location grouping. | |||
| module example-uses-geo-location { | module example-uses-geo-location { | |||
| namespace | namespace | |||
| "urn:example:example-uses-geo-location"; | "urn:example:example-uses-geo-location"; | |||
| prefix ugeo; | prefix ugeo; | |||
| import ietf-geo-location { prefix geo; } | import ietf-geo-location { prefix geo; } | |||
| organization "Empty Org"; | organization "Empty Org"; | |||
| contact "Example Author <eauthor@example.com>"; | contact "Example Author <eauthor@example.com>"; | |||
| description "Example use of geo-location"; | description "Example use of geo-location"; | |||
| revision 2019-02-02 { reference "None"; } | revision 2019-02-02 { reference "None"; } | |||
| container locatable-items { | container locatable-items { | |||
| description "container of locatable items"; | description "container of locatable items"; | |||
| list locatable-item { | list locatable-item { | |||
| key name; | key name; | |||
| description "A of locatable item"; | description "A of locatable item"; | |||
| leaf name { | leaf name { | |||
| type string; | type string; | |||
| description "name of locatable item"; | description "name of locatable item"; | |||
| } | } | |||
| uses geo:geo-location; | uses geo:geo-location; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Figure 2: Example YANG module using geo location. | Figure 2: Example YANG module using geo location. | |||
| Below is a the YANG tree for the fictitious module that uses the geo- | Below is a the YANG tree for the fictitious module that uses the geo- | |||
| location grouping. | location grouping. | |||
| module: example-uses-geo-location | module: example-uses-geo-location | |||
| +--rw locatable-items | +--rw locatable-items | |||
| +--rw locatable-item* [name] | +--rw locatable-item* [name] | |||
| +--rw name string | +--rw name string | |||
| skipping to change at page 21, line 30 ¶ | skipping to change at page 23, line 30 ¶ | |||
| | | +--rw longitude? decimal64 | | | +--rw longitude? decimal64 | |||
| | | +--rw height? decimal64 | | | +--rw height? decimal64 | |||
| | +--:(cartesian) | | +--:(cartesian) | |||
| | +--rw x? decimal64 | | +--rw x? decimal64 | |||
| | +--rw y? decimal64 | | +--rw y? decimal64 | |||
| | +--rw z? decimal64 | | +--rw z? decimal64 | |||
| +--rw velocity | +--rw velocity | |||
| | +--rw v-north? decimal64 | | +--rw v-north? decimal64 | |||
| | +--rw v-east? decimal64 | | +--rw v-east? decimal64 | |||
| | +--rw v-up? decimal64 | | +--rw v-up? decimal64 | |||
| +--rw timestamp? types:date-and-time | +--rw timestamp? yang:date-and-time | |||
| +--rw valid-until? types:date-and-time | +--rw valid-until? yang:date-and-time | |||
| Below is some example YANG XML data for the fictitious module that | Below is some example YANG XML data for the fictitious module that | |||
| uses the geo-location grouping. | uses the geo-location grouping. | |||
| <locatable-items xmlns="urn:example:example-uses-geo-location"> | <locatable-items xmlns="urn:example:example-uses-geo-location"> | |||
| <locatable-item> | <locatable-item> | |||
| <name>Gaetana's</name> | <name>Gaetana's</name> | |||
| <geo-location> | <geo-location> | |||
| <latitude>40.73297</latitude> | <latitude>40.73297</latitude> | |||
| <longitude>-74.007696</longitude> | <longitude>-74.007696</longitude> | |||
| </geo-location> | </geo-location> | |||
| </locatable-item> | </locatable-item> | |||
| <locatable-item> | <locatable-item> | |||
| <name>Pont des Arts</name> | <name>Pont des Arts</name> | |||
| <geo-location> | <geo-location> | |||
| <timestamp>2012-03-31T16:00:00Z</timestamp> | <timestamp>2012-03-31T16:00:00Z</timestamp> | |||
| <latitude>48.8583424</latitude> | <latitude>48.8583424</latitude> | |||
| <longitude>2.3375084</longitude> | <longitude>2.3375084</longitude> | |||
| <height>35</height> | <height>35</height> | |||
| </geo-location> | </geo-location> | |||
| </locatable-item> | </locatable-item> | |||
| <locatable-item> | <locatable-item> | |||
| <name>Saint Louis Cathedral</name> | <name>Saint Louis Cathedral</name> | |||
| <geo-location> | <geo-location> | |||
| <timestamp>2013-10-12T15:00:00-06:00</timestamp> | <timestamp>2013-10-12T15:00:00-06:00</timestamp> | |||
| <latitude>29.9579735</latitude> | <latitude>29.9579735</latitude> | |||
| <longitude>-90.0637281</longitude> | <longitude>-90.0637281</longitude> | |||
| </geo-location> | </geo-location> | |||
| </locatable-item> | </locatable-item> | |||
| <locatable-item> | <locatable-item> | |||
| <name>Apollo 11 Landing Site</name> | <name>Apollo 11 Landing Site</name> | |||
| <geo-location> | <geo-location> | |||
| <timestamp>1969-07-21T02:56:15Z</timestamp> | <timestamp>1969-07-21T02:56:15Z</timestamp> | |||
| <reference-frame> | <reference-frame> | |||
| <astronomical-body>moon</astronomical-body> | <astronomical-body>moon</astronomical-body> | |||
| <geodetic-system> | <geodetic-system> | |||
| <geodetic-datum>me</geodetic-datum> | <geodetic-datum>me</geodetic-datum> | |||
| </geodetic-system> | </geodetic-system> | |||
| </reference-frame> | </reference-frame> | |||
| <latitude>0.67409</latitude> | <latitude>0.67409</latitude> | |||
| <longitude>23.47298</longitude> | <longitude>23.47298</longitude> | |||
| </geo-location> | </geo-location> | |||
| </locatable-item> | </locatable-item> | |||
| <locatable-item> | <locatable-item> | |||
| <name>Reference Frame Only</name> | <name>Reference Frame Only</name> | |||
| <geo-location> | <geo-location> | |||
| <reference-frame> | <reference-frame> | |||
| <astronomical-body>moon</astronomical-body> | <astronomical-body>moon</astronomical-body> | |||
| <geodetic-system> | <geodetic-system> | |||
| <geodetic-datum>me</geodetic-datum> | <geodetic-datum>me</geodetic-datum> | |||
| </geodetic-system> | </geodetic-system> | |||
| </reference-frame> | </reference-frame> | |||
| </geo-location> | </geo-location> | |||
| </locatable-item> | </locatable-item> | |||
| </locatable-items> | </locatable-items> | |||
| Figure 3: Example XML data of geo location use. | Figure 3: Example XML data of geo location use. | |||
| Appendix B. Acknowledgements | Appendix B. Acknowledgments | |||
| We would like to thank Jim Biard and Ben Koziol for their reviews and | We would like to thank Jim Biard and Ben Koziol for their reviews and | |||
| suggested improvements. We would also like to thank Peter Lothberg | suggested improvements. We would also like to thank Peter Lothberg | |||
| for the motivation as well as help in defining a broadly useful | for the motivation as well as help in defining a broadly useful | |||
| geographic location object, and Acee Lindem and Qin Wu for their work | geographic location object, and Acee Lindem and Qin Wu for their work | |||
| on a geographic location object that led to this documents creation. | on a geographic location object that led to this documents creation. | |||
| Author's Address | Author's Address | |||
| Christian Hopps | Christian Hopps | |||
| LabN Consulting, L.L.C. | LabN Consulting, L.L.C. | |||
| End of changes. 38 change blocks. | ||||
| 131 lines changed or deleted | 247 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||