draft-ietf-netmod-geo-location-01.txt | draft-ietf-netmod-geo-location-02.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 April 29, 2019 | Intended status: Standards Track November 4, 2019 | |||
Expires: October 31, 2019 | Expires: May 7, 2020 | |||
YANG Geo Location | YANG Geo Location | |||
draft-ietf-netmod-geo-location-01 | draft-ietf-netmod-geo-location-02 | |||
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 October 31, 2019. | This Internet-Draft will expire on May 7, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 31 ¶ | skipping to change at page 2, line 31 ¶ | |||
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 . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 5.1.4. KML . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
6.1. Geodetic System Value Registry . . . . . . . . . . . . . 16 | 6.1. Geodetic System Value Registry . . . . . . . . . . . . . 16 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 18 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 18 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 19 | 8.2. Informative References . . . . . . . . . . . . . . . . . 19 | |||
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 19 | Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 19 | |||
Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 23 | Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 22 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 23 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
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. | |||
skipping to change at page 6, line 6 ¶ | skipping to change at page 6, line 6 ¶ | |||
object that is at the location. Module authors are free to add these | object that is at the location. Module authors are free to add these | |||
non-location attributes along with their use of this location | non-location attributes along with their use of this location | |||
grouping. | grouping. | |||
2.6. Tree | 2.6. Tree | |||
The following is the YANG tree diagram [RFC8340] for the geo-location | The following is the YANG tree diagram [RFC8340] for the geo-location | |||
grouping. | grouping. | |||
module: ietf-geo-location | module: ietf-geo-location | |||
grouping geo-location | ||||
+-- geo-location | +-- geo-location | |||
+-- reference-frame | +-- reference-frame | |||
| +-- alternate-system? string {alternate-systems}? | | +-- alternate-system? string {alternate-systems}? | |||
| +-- astronomical-body? string | | +-- astronomical-body? string | |||
| +-- geodetic-system | | +-- geodetic-system | |||
| +-- geodetic-datum? string | | +-- geodetic-datum? string | |||
| +-- coord-accuracy? decimal64 | | +-- coord-accuracy? decimal64 | |||
| +-- height-accuracy? decimal64 | | +-- height-accuracy? decimal64 | |||
+-- (location) | +-- (location)? | |||
| +--:(ellipsoid) | | +--:(ellipsoid) | |||
| | +-- latitude degrees | | | +-- latitude? degrees | |||
| | +-- longitude degrees | | | +-- longitude? degrees | |||
| | +-- 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? types:date-and-time | |||
Figure 1: Geo Location YANG tree diagram. | Figure 1: Geo Location YANG tree diagram. | |||
3. YANG Module | 3. YANG Module | |||
skipping to change at page 6, line 52 ¶ | skipping to change at page 7, line 5 ¶ | |||
"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 and | |||
// remove this note. | // 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) 2018 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 | ||||
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | ||||
for full legal notices. | ||||
// RFC Ed.: replace XXXX with actual RFC number 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 [RFC2119] [RFC8174] 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."; | |||
This version of this YANG module is part of RFC XXXX | ||||
(https://tools.ietf.org/html/rfcXXXX); see the RFC itself for | ||||
full legal notices."; | ||||
// RFC Ed.: replace XXXX with actual RFC number and | ||||
// remove this note. | ||||
revision 2019-02-17 { | revision 2019-02-17 { | |||
description "Initial Revision"; | description "Initial Revision"; | |||
reference "RFC XXXX: YANG Geo Location"; | reference "RFC XXXX: YANG Geo Location"; | |||
} | } | |||
typedef degrees { | typedef degrees { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 16; | fraction-digits 16; | |||
} | } | |||
skipping to change at page 9, line 41 ¶ | skipping to change at page 9, line 42 ¶ | |||
// If so need to decide if we have a boolean (to ground) | // If so need to decide if we have a boolean (to ground) | |||
// or an enumeration (e.g., local ground, sea-floor, | // or an enumeration (e.g., local ground, sea-floor, | |||
// ground floor, containing object, ...) or even allow | // ground floor, containing object, ...) or even allow | |||
// for a string for most generic but least portable | // for a string for most generic but least portable | |||
// comparable | // comparable | |||
// leaf height-relative { | // leaf height-relative { | |||
// } | // } | |||
} | } | |||
} | } | |||
choice location { | choice location { | |||
mandatory true; | ||||
description | description | |||
"The location data either in lat/long or Cartesian values"; | "The location data either in lat/long or Cartesian values"; | |||
case ellipsoid { | case ellipsoid { | |||
leaf latitude { | leaf latitude { | |||
type degrees; | type degrees; | |||
mandatory true; | ||||
description | description | |||
"The latitude value on the astronomical body. The | "The latitude value on the astronomical body. The | |||
definition and precision of this measurement is | definition and precision of this measurement is | |||
indicated by the reference-frame value."; | indicated by the reference-frame value."; | |||
} | } | |||
leaf longitude { | leaf longitude { | |||
type degrees; | type degrees; | |||
mandatory true; | ||||
description | description | |||
"The longitude value on the astronomical body. The | "The longitude value on the astronomical body. The | |||
definition and precision of this measurement is | definition and precision of this measurement is | |||
indicated by the reference-frame."; | indicated by the reference-frame."; | |||
} | } | |||
leaf height { | leaf height { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 6; | fraction-digits 6; | |||
} | } | |||
units "meters"; | units "meters"; | |||
description | description | |||
"Height from a reference 0 value. The precision and '0' | "Height from a reference 0 value. The precision and '0' | |||
value is defined by the reference-frame."; | value is defined by the reference-frame."; | |||
} | } | |||
} | } | |||
case cartesian { | case cartesian { | |||
leaf x { | leaf x { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 6; | fraction-digits 6; | |||
} | } | |||
mandatory true; | ||||
description | description | |||
"The X value as defined by the reference-frame."; | "The X value as defined by the reference-frame."; | |||
} | } | |||
leaf y { | leaf y { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 6; | fraction-digits 6; | |||
} | } | |||
mandatory true; | ||||
description | description | |||
"The Y value as defined by the reference-frame."; | "The Y value as defined by the reference-frame."; | |||
} | } | |||
leaf z { | leaf z { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 6; | fraction-digits 6; | |||
} | } | |||
units "meters"; | units "meters"; | |||
description | description | |||
"The Z value as defined by the reference-frame."; | "The Z value as defined by the reference-frame."; | |||
skipping to change at page 21, line 17 ¶ | skipping to change at page 21, line 17 ¶ | |||
+--rw locatable-item* [name] | +--rw locatable-item* [name] | |||
+--rw name string | +--rw name string | |||
+--rw geo-location | +--rw geo-location | |||
+--rw reference-frame | +--rw reference-frame | |||
| +--rw alternate-system? string {alternate-systems}? | | +--rw alternate-system? string {alternate-systems}? | |||
| +--rw astronomical-body? string | | +--rw astronomical-body? string | |||
| +--rw geodetic-system | | +--rw geodetic-system | |||
| +--rw geodetic-datum? string | | +--rw geodetic-datum? string | |||
| +--rw coord-accuracy? decimal64 | | +--rw coord-accuracy? decimal64 | |||
| +--rw height-accuracy? decimal64 | | +--rw height-accuracy? decimal64 | |||
+--rw (location) | +--rw (location)? | |||
| +--:(ellipsoid) | | +--:(ellipsoid) | |||
| | +--rw latitude degrees | | | +--rw latitude? degrees | |||
| | +--rw longitude degrees | | | +--rw longitude? degrees | |||
| | +--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? types: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. | |||
skipping to change at page 22, line 45 ¶ | skipping to change at page 22, line 26 ¶ | |||
<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> | ||||
<name>Reference Frame Only</name> | ||||
<geo-location> | ||||
<reference-frame> | ||||
<astronomical-body>moon</astronomical-body> | ||||
<geodetic-system> | ||||
<geodetic-datum>me</geodetic-datum> | ||||
</geodetic-system> | ||||
</reference-frame> | ||||
</geo-location> | ||||
</locatable-item> | ||||
</locatable-items> | </locatable-items> | |||
</ns0:config> | </ns0:config> | |||
Figure 4: Example XML data of geo location use. | Figure 4: Example XML data of geo location use. | |||
Appendix B. Acknowledgements | Appendix B. Acknowledgements | |||
We would like to thank Peter Lothberg for the motivation as well as | We would like to thank Peter Lothberg for the motivation as well as | |||
help in defining a more broadly useful geographic location object. | help in defining a more broadly useful geographic location object. | |||
End of changes. 21 change blocks. | ||||
32 lines changed or deleted | 38 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |