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.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/