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/