draft-ietf-lmap-yang-03.txt   draft-ietf-lmap-yang-04.txt 
Network Working Group J. Schoenwaelder Network Working Group J. Schoenwaelder
Internet-Draft V. Bajpai Internet-Draft V. Bajpai
Intended status: Standards Track Jacobs University Bremen Intended status: Standards Track Jacobs University Bremen
Expires: September 16, 2016 March 15, 2016 Expires: September 22, 2016 March 21, 2016
A YANG Data Model for LMAP Measurement Agents A YANG Data Model for LMAP Measurement Agents
draft-ietf-lmap-yang-03.txt draft-ietf-lmap-yang-04.txt
Abstract Abstract
This document defines a data model for Large-Scale Measurement This document defines a data model for Large-Scale Measurement
Platforms (LMAP). The data model is defined using the YANG data Platforms (LMAP). The data model is defined using the YANG data
modeling language. modeling language.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 32 skipping to change at page 1, line 32
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 September 16, 2016. This Internet-Draft will expire on September 22, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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 16 skipping to change at page 2, line 16
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3
2. Data Model Overview . . . . . . . . . . . . . . . . . . . . . 3 2. Data Model Overview . . . . . . . . . . . . . . . . . . . . . 3
3. Relationship to the Information Model . . . . . . . . . . . . 7 3. Relationship to the Information Model . . . . . . . . . . . . 7
4. YANG Modules . . . . . . . . . . . . . . . . . . . . . . . . 8 4. YANG Modules . . . . . . . . . . . . . . . . . . . . . . . . 8
5. Security Considerations . . . . . . . . . . . . . . . . . . . 41 5. Security Considerations . . . . . . . . . . . . . . . . . . . 41
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 44 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 44
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 44 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.1. Normative References . . . . . . . . . . . . . . . . . . 44 8.1. Normative References . . . . . . . . . . . . . . . . . . 45
8.2. Informative References . . . . . . . . . . . . . . . . . 45 8.2. Informative References . . . . . . . . . . . . . . . . . 45
Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 46 Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 46
A.1. Purpose of /lmap-state/tasks . . . . . . . . . . . . . . 46 A.1. Purpose of /lmap-state/tasks . . . . . . . . . . . . . . 46
A.2. Streamline the reporting model . . . . . . . . . . . . . 46 A.2. Streamline the reporting model . . . . . . . . . . . . . 46
Appendix B. Non-editorial Changes since -02 . . . . . . . . . . 46 A.3. Examples . . . . . . . . . . . . . . . . . . . . . . . . 46
Appendix C. Non-editorial Changes since -01 . . . . . . . . . . 47 Appendix B. Non-editorial Changes since -03 . . . . . . . . . . 47
Appendix D. Non-editorial Changes since -00 . . . . . . . . . . 47 Appendix C. Non-editorial Changes since -02 . . . . . . . . . . 47
Appendix E. Example IPPM Module for UDP Latency Metrics . . . . 48 Appendix D. Non-editorial Changes since -01 . . . . . . . . . . 47
Appendix F. Example Configuration (XML) . . . . . . . . . . . . 49 Appendix E. Non-editorial Changes since -00 . . . . . . . . . . 48
Appendix G. Example Configuration (JSON) . . . . . . . . . . . . 56 Appendix F. Example IPPM Module for UDP Latency Metrics . . . . 48
Appendix H. Example State (XML) . . . . . . . . . . . . . . . . 65 Appendix G. Example Configuration (XML) . . . . . . . . . . . . 50
Appendix I. Example State (JSON) . . . . . . . . . . . . . . . . 66 Appendix H. Example Configuration (JSON) . . . . . . . . . . . . 56
Appendix J. Example Report (XML) . . . . . . . . . . . . . . . . 68 Appendix I. Example State (XML) . . . . . . . . . . . . . . . . 65
Appendix K. Example Report (JSON) . . . . . . . . . . . . . . . 71 Appendix J. Example State (JSON) . . . . . . . . . . . . . . . . 67
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 75 Appendix K. Example Report (XML) . . . . . . . . . . . . . . . . 68
Appendix L. Example Report (JSON) . . . . . . . . . . . . . . . 70
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 72
1. Introduction 1. Introduction
This document defines a data model for Large-Scale Measurement This document defines a data model for Large-Scale Measurement
Platforms (LMAP) [RFC7594]. The data model is defined using the YANG Platforms (LMAP) [RFC7594]. The data model is defined using the YANG
[RFC6020] data modeling language. It aims to be consistent with the [RFC6020] data modeling language. It aims to be consistent with the
LMAP Information Model [I-D.ietf-lmap-information-model]. LMAP Information Model [I-D.ietf-lmap-information-model].
1.1. Terminology 1.1. Terminology
skipping to change at page 7, line 13 skipping to change at page 7, line 13
model. model.
module: ietf-lmap-report module: ietf-lmap-report
rpcs: rpcs:
+---x report +---x report
+---w input +---w input
+---w date yang:date-and-time +---w date yang:date-and-time
+---w agent-id? yang:uuid +---w agent-id? yang:uuid
+---w group-id? string +---w group-id? string
+---w measurement-point? string +---w measurement-point? string
+---w task* [name] +---w result*
+---w name lmap:identifier +---w schedule-name? lmap:identifier
+---w action-name? lmap:identifier
+---w task-name? lmap:identifier
+---w metric* [uri] +---w metric* [uri]
| +---w uri inet:uri | +---w uri inet:uri
| +---w role* string | +---w role* string
+---w option* [id] +---w option* [id]
| +---w id lmap:identifier | +---w id lmap:identifier
| +---w name? string | +---w name? string
| +---w value? string | +---w value? string
+---w tag* lmap:tag +---w tag* lmap:tag
+---w header +---w start yang:date-and-time
| +---w column* string +---w end? yang:date-and-time
+---w row* +---w conflict* lmap:identifier
+---w start yang:date-and-time +---w table*
+---w end? yang:date-and-time +---w column* string
+---w conflict* string +---w row*
+---w value* string +---w value* string
3. Relationship to the Information Model 3. Relationship to the Information Model
The LMAP information model [I-D.ietf-lmap-information-model] is The LMAP information model [I-D.ietf-lmap-information-model] is
devided into six sections. They are mapped into the YANG data model devided into six sections. They are mapped into the YANG data model
as explained below: as explained below:
o Pre-Configuration Information: This is not modeled explicitly o Pre-Configuration Information: This is not modeled explicitly
since it is a subset of the configuration information. since it is a subset of the configuration information.
skipping to change at page 37, line 40 skipping to change at page 37, line 42
} }
description description
"The current state of the suppression."; "The current state of the suppression.";
} }
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
<CODE BEGINS> file "ietf-lmap-report@2016-03-15.yang" <CODE BEGINS> file "ietf-lmap-report@2016-03-21.yang"
module ietf-lmap-report { module ietf-lmap-report {
namespace "urn:ietf:params:xml:ns:yang:ietf-lmap-report"; namespace "urn:ietf:params:xml:ns:yang:ietf-lmap-report";
prefix "lmapr"; prefix "lmapr";
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
} }
import ietf-lmap-common { import ietf-lmap-common {
prefix lmap; prefix lmap;
skipping to change at page 38, line 26 skipping to change at page 38, line 27
Editor: Vaibhav Bajpai Editor: Vaibhav Bajpai
<v.bajpai@jacobs-university.de>"; <v.bajpai@jacobs-university.de>";
description description
"This module defines a data model for reporting results from "This module defines a data model for reporting results from
measurement agents, which are part of a Large-Scale Measurement measurement agents, which are part of a Large-Scale Measurement
Platform (LMAP), to result data collectors. This data model is Platform (LMAP), to result data collectors. This data model is
expected to be implemented by a collector."; expected to be implemented by a collector.";
revision "2016-03-15" { revision "2016-03-21" {
description description
"Initial version"; "Initial version";
reference reference
"RFC XXX: A YANG Data Model for LMAP Measurement Agents"; "RFC XXX: A YANG Data Model for LMAP Measurement Agents";
} }
rpc report { rpc report {
description description
"The report operation is used by an LMAP measurement agent to "The report operation is used by an LMAP measurement agent to
submit measurement results produced by measurement tasks to submit measurement results produced by measurement tasks to
skipping to change at page 39, line 22 skipping to change at page 39, line 23
report originates."; report originates.";
} }
leaf measurement-point { leaf measurement-point {
type string; type string;
description description
"The measurement-point of the agent from which this "The measurement-point of the agent from which this
report originates."; report originates.";
} }
list task { list result {
key name;
description description
"The list of tasks for which results are reported."; "The list of tasks for which results are reported.";
leaf name { leaf schedule-name {
type lmap:identifier; type lmap:identifier;
description description
"The unique name of the task."; "The name of the schedules that produced the result.";
}
leaf action-name {
type lmap:identifier;
description
"The name of the action in the schedule that produced
the result.";
}
leaf task-name {
type lmap:identifier;
description
"The name of the task that produced the result.";
} }
uses lmap:metrics-grouping; uses lmap:metrics-grouping;
uses lmap:task-options-grouping { uses lmap:task-options-grouping {
description description
"The list of task options there were in use then the "The list of options there were in use then the
measurement was performed. This list must include measurement was performed. This list must include
both the task specific options as well as the action both the task specific options as well as the action
specific options."; specific options.";
} }
leaf-list tag { leaf-list tag {
type lmap:tag; type lmap:tag;
description description
"A tag contains additional information that is passed "A tag contains additional information that is passed
with the result record to the collector. A tag can be with the result record to the collector. This is the
used to carry the Measurement Cycle ID."; joined set of tags defined for the task object and the
action object. A tag can be used to carry the
Measurement Cycle ID.";
} }
container header { leaf start {
type yang:date-and-time;
mandatory true;
description description
"This container lists the column labels. It does not "The date and time when the measurement producing
really serve a purpose other than making the result this result started.";
data look nicely structured.";
leaf-list column {
type string;
description
"An ordered list of column labels. The order is
determined by the system and must match the order
of the columns in the result rows.";
}
} }
list row { leaf end {
type yang:date-and-time;
description description
"The rows of the result record."; "The date and time when the measurement producing
this result stopped.";
}
leaf start { leaf-list conflict {
type yang:date-and-time; type lmap:identifier;
mandatory true; description
description "The names of tasks overlapping with the execution
"The date and time when the measurement producing of the task that has produced this result.";
this result row started."; }
}
leaf end { list table {
type yang:date-and-time; description
description "A list of result tables.";
"The date and time when the measurement producing
this result row stopped.";
}
leaf-list conflict { leaf-list column {
type string; type string;
description description
"The name of a task overlapping with the execution "An ordered list of column labels. The order is
of the task that has produced this result record."; determined by the system and must match the order
of the columns in the result rows.";
} }
list row {
leaf-list value {
type string;
description description
"The value of a cell in the result row."; "The rows of a result table.";
leaf-list value {
type string;
description
"The value of a cell in the result row.";
}
} }
} }
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
5. Security Considerations 5. Security Considerations
The YANG module defined in this memo is designed to be accessed via The YANG module defined in this memo is designed to be accessed via
the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the
secure transport layer and the mandatory to implement secure secure transport layer and the mandatory to implement secure
transport is SSH [RFC6242]. The NETCONF access control model transport is SSH [RFC6242]. The NETCONF access control model
skipping to change at page 45, line 11 skipping to change at page 45, line 29
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC
6991, DOI 10.17487/RFC6991, July 2013, 6991, DOI 10.17487/RFC6991, July 2013,
<http://www.rfc-editor.org/info/rfc6991>. <http://www.rfc-editor.org/info/rfc6991>.
8.2. Informative References 8.2. Informative References
[I-D.ietf-lmap-information-model] [I-D.ietf-lmap-information-model]
Burbridge, T., Eardley, P., Bagnulo, M., and J. Burbridge, T., Eardley, P., Bagnulo, M., and J.
Schoenwaelder, "Information Model for Large-Scale Schoenwaelder, "Information Model for Large-Scale
Measurement Platforms (LMAP)", draft-ietf-lmap- Measurement Platforms (LMAP)", draft-ietf-lmap-
information-model-06 (work in progress), July 2015. information-model-08 (work in progress), March 2016.
[I-D.ietf-netconf-server-model] [I-D.ietf-netconf-server-model]
Watsen, K. and J. Schoenwaelder, "NETCONF Server and Watsen, K. and J. Schoenwaelder, "NETCONF Server and
RESTCONF Server Configuration Models", draft-ietf-netconf- RESTCONF Server Configuration Models", draft-ietf-netconf-
server-model-08 (work in progress), October 2015. server-model-09 (work in progress), March 2016.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, DOI 10.17487/RFC3688, January 2004,
<http://www.rfc-editor.org/info/rfc3688>. <http://www.rfc-editor.org/info/rfc3688>.
[RFC5424] Gerhards, R., "The Syslog Protocol", RFC 5424, DOI 10 [RFC5424] Gerhards, R., "The Syslog Protocol", RFC 5424, DOI 10
.17487/RFC5424, March 2009, .17487/RFC5424, March 2009,
<http://www.rfc-editor.org/info/rfc5424>. <http://www.rfc-editor.org/info/rfc5424>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
skipping to change at page 46, line 24 skipping to change at page 46, line 39
Proposal: Tasks are configured in /lmap/tasks and even marked as nacm Proposal: Tasks are configured in /lmap/tasks and even marked as nacm
:default-deny-write (see RFC 6536) since configuring programs that :default-deny-write (see RFC 6536) since configuring programs that
can be invoked by a controller is an operation that may impact the can be invoked by a controller is an operation that may impact the
security of the device. See also the related open issue on the security of the device. See also the related open issue on the
information model. If we do this, then /lmap-state/tasks should information model. If we do this, then /lmap-state/tasks should
probably only report the version number. probably only report the version number.
A.2. Streamline the reporting model A.2. Streamline the reporting model
The reporting model may need more attention; perhaps things can be The reporting model is somewhat verbose; perhaps things can be
streamlined and also be made more efficient. Implementation streamlined and be made more efficient. Implementation experience
experience will help to work this out. will help to work this out.
Appendix B. Non-editorial Changes since -02 A.3. Examples
Do we want to keep the examples? If yes, they should be better
aligned. If we keep the examples, do we need to keep both versions
(XML and JSON)?
Appendix B. Non-editorial Changes since -03
o Reworked the reporting data model to align it with the changes in
the information model.
Appendix C. Non-editorial Changes since -02
o Added a mechanism to enforce a runtime limit for schedules. o Added a mechanism to enforce a runtime limit for schedules.
o Added security considerations text warning about possible shell o Added security considerations text warning about possible shell
expansions of options. expansions of options.
o Restricted all user-defined names and tags to lmap:identifier. o Restricted all user-defined names and tags to lmap:identifier.
Added security considerations text to make implementors aware of Added security considerations text to make implementors aware of
possible security issues if identifiers are naively mapped to say possible security issues if identifiers are naively mapped to say
filesystem paths. filesystem paths.
skipping to change at page 47, line 8 skipping to change at page 47, line 38
demonstrate the usage of the extension mechanism. demonstrate the usage of the extension mechanism.
o Introduced parameters, an extension point for task/metric specific o Introduced parameters, an extension point for task/metric specific
parameters defined in augmenting YANG modules. parameters defined in augmenting YANG modules.
o Introduced the typedefs event-ref, task-ref, and schedule-ref. o Introduced the typedefs event-ref, task-ref, and schedule-ref.
o Changed schedule/event to schedule/start and added the optional o Changed schedule/event to schedule/start and added the optional
schedule/stop and schedule/duration leafs. schedule/stop and schedule/duration leafs.
Appendix C. Non-editorial Changes since -01 Appendix D. Non-editorial Changes since -01
o Updated and split examples (config vs state vs report). o Updated and split examples (config vs state vs report).
o Refactored the definitions so that common definitions used by both o Refactored the definitions so that common definitions used by both
the control and report data models are in the new module ietf- the control and report data models are in the new module ietf-
lmap-common. lmap-common.
o A report is submitted via an RPC operation instead of using a o A report is submitted via an RPC operation instead of using a
notification. notification.
skipping to change at page 47, line 42 skipping to change at page 48, line 23
o Added controller-lost an controller-ok event choices to /lmap/ o Added controller-lost an controller-ok event choices to /lmap/
events/event. events/event.
o Added a metrics-grouping to identify entries in a metric registry o Added a metrics-grouping to identify entries in a metric registry
and associated roles. and associated roles.
o Added /lmap-state/schedules to report the status of schedules and o Added /lmap-state/schedules to report the status of schedules and
their actions. Refactored /lmap-state/tasks to only report the their actions. Refactored /lmap-state/tasks to only report the
task capabilities. task capabilities.
Appendix D. Non-editorial Changes since -00 Appendix E. Non-editorial Changes since -00
o A task can now reference multiply registry entries. o A task can now reference multiply registry entries.
o Schedules are triggered by Events instead of Timings; Timings are o Schedules are triggered by Events instead of Timings; Timings are
just one of many possible event sources. just one of many possible event sources.
o Actions feed into other Schedules (instead of Actions within other o Actions feed into other Schedules (instead of Actions within other
Schedules). Schedules).
o Removed the notion of multiple task outputs. o Removed the notion of multiple task outputs.
o Support for sequential, parallel, and pipelined execution of o Support for sequential, parallel, and pipelined execution of
Actions. Actions.
Appendix E. Example IPPM Module for UDP Latency Metrics Appendix F. Example IPPM Module for UDP Latency Metrics
module example-ietf-ippm-udp-latency { module example-ietf-ippm-udp-latency {
namespace "urn:example:ietf-ippm-udp-latency"; namespace "urn:example:ietf-ippm-udp-latency";
prefix "ippm-udp-latency"; prefix "ippm-udp-latency";
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
skipping to change at page 49, line 32 skipping to change at page 50, line 12
units "seconds"; units "seconds";
default 30.0000; default 30.0000;
description description
"The upper limit on the poisson distribution with a resolution "The upper limit on the poisson distribution with a resolution
of 0.0001 seconds (0.1 ms)."; of 0.0001 seconds (0.1 ms).";
} }
} }
} }
} }
Appendix F. Example Configuration (XML) Appendix G. Example Configuration (XML)
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<lmap xmlns="urn:ietf:params:xml:ns:yang:ietf-lmap-control"> <lmap xmlns="urn:ietf:params:xml:ns:yang:ietf-lmap-control">
<agent> <agent>
<agent-id>550e8400-e29b-41d4-a716-446655440000</agent-id> <agent-id>550e8400-e29b-41d4-a716-446655440000</agent-id>
<device-id>urn:dev:mac:0024befffe804ff1</device-id> <device-id>urn:dev:mac:0024befffe804ff1</device-id>
<group-id>network measurement at the north-pole</group-id> <group-id>network measurement at the north-pole</group-id>
<report-agent-id>true</report-agent-id> <report-agent-id>true</report-agent-id>
</agent> </agent>
skipping to change at page 56, line 14 skipping to change at page 56, line 44
<event> <event>
<name>controller-connected</name> <name>controller-connected</name>
<controller-connected/> <controller-connected/>
<!-- avoid synchronization issues --> <!-- avoid synchronization issues -->
<random-spread>12345</random-spread> <random-spread>12345</random-spread>
</event> </event>
</events> </events>
</lmap> </lmap>
</config> </config>
Appendix G. Example Configuration (JSON) Appendix H. Example Configuration (JSON)
{ {
"ietf-lmap-control:lmap": { "ietf-lmap-control:lmap": {
"agent": { "agent": {
"agent-id": "550e8400-e29b-41d4-a716-446655440000", "agent-id": "550e8400-e29b-41d4-a716-446655440000",
"device-id": "urn:dev:mac:0024befffe804ff1", "device-id": "urn:dev:mac:0024befffe804ff1",
"group-id": "network measurement at the north-pole", "group-id": "network measurement at the north-pole",
"report-agent-id": true "report-agent-id": true
}, },
"tasks": { "tasks": {
skipping to change at page 65, line 4 skipping to change at page 65, line 30
}, },
{ {
"name": "controller-connected", "name": "controller-connected",
"controller-connected": [null], "controller-connected": [null],
"random-spread": 12345 "random-spread": 12345
} }
] ]
} }
} }
} }
Appendix H. Example State (XML)
Appendix I. Example State (XML)
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<lmap-state xmlns="urn:ietf:params:xml:ns:yang:ietf-lmap-control"> <lmap-state xmlns="urn:ietf:params:xml:ns:yang:ietf-lmap-control">
<agent> <agent>
<agent-id>550e8400-e29b-41d4-a716-446655440000</agent-id> <agent-id>550e8400-e29b-41d4-a716-446655440000</agent-id>
<device-id>urn:dev:mac:0024befffe804ff1</device-id> <device-id>urn:dev:mac:0024befffe804ff1</device-id>
<hardware>ACME home router</hardware> <hardware>ACME home router</hardware>
<firmware>OpenWrt version 10.03.1</firmware> <firmware>OpenWrt version 10.03.1</firmware>
<version>Measurement Agent Daemon (MAD) 4.2</version> <version>Measurement Agent Daemon (MAD) 4.2</version>
skipping to change at page 66, line 24 skipping to change at page 67, line 4
</action> </action>
<action> <action>
<name>udp-latency-weekdays-hourly</name> <name>udp-latency-weekdays-hourly</name>
<last-invocation>2015-01-23T12:00:01+01:00</last-invocation> <last-invocation>2015-01-23T12:00:01+01:00</last-invocation>
<last-completion>2015-01-23T12:00:02+01:00</last-completion> <last-completion>2015-01-23T12:00:02+01:00</last-completion>
<last-status>0</last-status> <last-status>0</last-status>
<last-message>OK</last-message> <last-message>OK</last-message>
<last-failed-completion>2015-01-23T03:00:00+01:00</last-failed-completion> <last-failed-completion>2015-01-23T03:00:00+01:00</last-failed-completion>
<last-failed-status>42</last-failed-status> <last-failed-status>42</last-failed-status>
<last-failed-message>connection timed out</last-failed-message> <last-failed-message>connection timed out</last-failed-message>
</action> </action>
</schedule> </schedule>
</schedules> </schedules>
</lmap-state> </lmap-state>
</data> </data>
Appendix I. Example State (JSON) Appendix J. Example State (JSON)
{ {
"ietf-lmap-control:lmap-state": { "ietf-lmap-control:lmap-state": {
"agent": { "agent": {
"agent-id": "550e8400-e29b-41d4-a716-446655440000", "agent-id": "550e8400-e29b-41d4-a716-446655440000",
"device-id": "urn:dev:mac:0024befffe804ff1", "device-id": "urn:dev:mac:0024befffe804ff1",
"hardware": "ACME home router", "hardware": "ACME home router",
"firmware": "OpenWrt version 10.03.1", "firmware": "OpenWrt version 10.03.1",
"version": "Measurement Agent Daemon (MAD) 4.2", "version": "Measurement Agent Daemon (MAD) 4.2",
"last-started": "2015-04-10T17:24:42+02:00" "last-started": "2015-04-10T17:24:42+02:00"
skipping to change at page 68, line 15 skipping to change at page 68, line 43
"last-failed-status": 42, "last-failed-status": 42,
"last-failed-message": "connection timed out" "last-failed-message": "connection timed out"
} }
] ]
} }
] ]
} }
} }
} }
Appendix J. Example Report (XML) Appendix K. Example Report (XML)
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" <rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
message-id="1"> message-id="1">
<report xmlns="urn:ietf:params:xml:ns:yang:ietf-lmap-report"> <report xmlns="urn:ietf:params:xml:ns:yang:ietf-lmap-report">
<date>2015-10-28T13:27:42+02:00</date> <date>2015-10-28T13:27:42+02:00</date>
<agent-id>550e8400-e29b-41d4-a716-446655440000</agent-id> <agent-id>550e8400-e29b-41d4-a716-446655440000</agent-id>
<group-id>wireless measurement at the north-pole</group-id> <group-id>wireless measurement at the north-pole</group-id>
<task> <result>
<name>icmp-latency-measurement</name> <schedule-name>pinger</schedule-name>
<!-- fping -A -d -C 5 -q www.ietf.org www.google.com --> <action-name>fping</action-name>
<header> <task-name>fping</task-name>
<start>2016-03-21T10:48:55+01:00</start>
<start>2016-03-21T10:48:57+01:00</start>
<option>
<id>display-address</id>
<name>-A</name>
</option>
<option>
<id>display-DNS-lookup</id>
<name>-d</name>
</option>
<option>
<id>number-of-packets</id>
<name>-C</name>
<value>5</value>
</option>
<option>
<id>quiet</id>
<name>-q</name>
</option>
<option>
<id>www.example.org</id>
<name>www.example.org</name>
</option>
<option>
<id>mail.example.com</id>
<name>mail.example.com</name>
</option>
<table>
<column>target</column> <column>target</column>
<column>ip</column> <column>ip</column>
<column>rtt-1</column> <column>rtt-1</column>
<column>rtt-2</column> <column>rtt-2</column>
<column>rtt-3</column> <column>rtt-3</column>
<column>rtt-4</column> <column>rtt-4</column>
<column>rtt-5</column> <column>rtt-5</column>
</header> <row>
<row> <value>www.example.org</value>
<start>2015-03-25T00:00:55+00:00</start> <value>192.0.2.1</value>
<value>www.ietf.org</value> <value>14.15</value>
<value>104.20.0.85</value> <value>14.14</value>
<value>14.15</value> <value>14.09</value>
<value>14.14</value> <value>14.17</value>
<value>14.09</value> <value>14.51</value>
<value>14.17</value> </row>
<value>14.51</value> <row>
</row> <value>mail.example.org</value>
<row> <value>192.0.2.2</value>
<start>2015-03-25T00:00:56+00:00</start> <value>12.24</value>
<value>www.google.com</value> <value>11.99</value>
<value>216.58.213.36</value> <value>12.49</value>
<value>12.24</value> <value>11.87</value>
<value>11.99</value> <value>12.45</value>
<value>12.49</value> </row>
<value>11.87</value> </table>
<value>12.45</value> </result>
</row>
</task>
<task>
<name>happy-dns-measurement</name>
<!-- happy -m -a www.ietf.org www.google.com -->
<header>
<column>target</column>
<column>ip</column>
<column>name</column>
</header>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.ietf.org</value>
<value>2400:cb00:2048:1::6814:55</value>
<value>www.ietf.org.cdn.cloudflare-dnssec.net</value>
</row>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.ietf.org</value>
<value>2400:cb00:2048:1::6814:155</value>
<value>www.ietf.org.cdn.cloudflare-dnssec.net</value>
</row>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.ietf.org</value>
<value>104.20.1.85</value>
<value>www.ietf.org.cdn.cloudflare-dnssec.net</value>
</row>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.ietf.org</value>
<value>104.20.0.85</value>
<value>www.ietf.org.cdn.cloudflare-dnssec.net</value>
</row>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.google.com</value>
<value>2a00:1450:4008:800::1012</value>
<!-- <value>www.google.com</value> xxx leaflist sucks -->
<value>ber01s08-in-x12.1e100.net</value>
</row>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.google.com</value>
<value>216.58.213.36</value>
<!-- <value>www.google.com</value> xxx leaflist sucks -->
<value>ber01s15-in-f36.1e100.net</value>
</row>
</task>
<task>
<name>happy-connect-measurement</name>
<!-- happy -m -a www.ietf.org www.google.com -->
<header>
<column>target</column>
<column>port</column>
<column>ip</column>
<column>time-1</column>
<column>time-2</column>
<column>time-3</column>
</header>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.ietf.org</value>
<value>80</value>
<value>2400:cb00:2048:1::6814:55</value>
<value>8164</value>
<value>8019</value>
<value>14066</value>
</row>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.ietf.org</value>
<value>80</value>
<value>2400:cb00:2048:1::6814:155</value>
<value>14131</value>
<value>14029</value>
<value>7984</value>
</row>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.ietf.org</value>
<value>80</value>
<value>104.20.1.85</value>
<value>13821</value>
<value>13736</value>
<value>7995</value>
</row>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.ietf.org</value>
<value>80</value>
<value>104.20.0.85</value>
<value>14024</value>
<value>13756</value>
<value>8589</value>
</row>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.google.com</value>
<value>80</value>
<value>2a00:1450:4008:800::1012</value>
<value>19246</value>
<value>19416</value>
<value>19443</value>
</row>
<row>
<start>2015-03-25T00:00:56+00:00</start>
<value>www.google.com</value>
<value>80</value>
<value>216.58.213.36</value>
<value>11692</value>
<value>11668</value>
<value>11933</value>
</row>
</task>
</report> </report>
</rpc> </rpc>
Appendix K. Example Report (JSON) Appendix L. Example Report (JSON)
{ {
"report": { "report": {
"date": "2015-10-28T13:27:42+02:00", "date": "2015-10-28T13:27:42+02:00",
"agent-id": "550e8400-e29b-41d4-a716-446655440000", "agent-id": "550e8400-e29b-41d4-a716-446655440000",
"group-id": "wireless measurement at the north-pole", "group-id": "wireless measurement at the north-pole",
"task": [ "result": [
{
"name": "icmp-latency-measurement",
"header": {
"column": [
"target",
"ip",
"rtt-1",
"rtt-2",
"rtt-3",
"rtt-4",
"rtt-5"
]
},
"row": [
{
"start": "2015-03-25T00:00:55+00:00",
"value": [
"www.ietf.org",
"104.20.0.85",
"14.15",
"14.14",
"14.09",
"14.17",
"14.51"
]
},
{
"start": "2015-03-25T00:00:56+00:00",
"value": [
"www.google.com",
"216.58.213.36",
"12.24",
"11.99",
"12.49",
"11.87",
"12.45"
]
}
]
},
{ {
"name": "happy-dns-measurement", "schedule-name": "pinger",
"header": { "action-name": "fping",
"column": [ "task-name": "fping",
"target", "start": "2016-03-21T10:48:55+01:00",
"ip", "start": "2016-03-21T10:48:57+01:00",
"name" "option": [
]
},
"row": [
{ {
"start": "2015-03-25T00:00:56+00:00", "id": "display-address",
"value": [ "name": "-A"
"www.ietf.org",
"2400:cb00:2048:1::6814:55",
"www.ietf.org.cdn.cloudflare-dnssec.net"
]
}, },
{ {
"start": "2015-03-25T00:00:56+00:00", "id": "display-DNS-lookup",
"value": [ "name": "-d"
"www.ietf.org",
"2400:cb00:2048:1::6814:155",
"www.ietf.org.cdn.cloudflare-dnssec.net"
]
}, },
{ {
"start": "2015-03-25T00:00:56+00:00", "id": "number-of-packets",
"value": [ "name": "-C",
"www.ietf.org", "value": "5"
"104.20.1.85",
"www.ietf.org.cdn.cloudflare-dnssec.net"
]
}, },
{ {
"start": "2015-03-25T00:00:56+00:00", "id": "quiet",
"value": [ "name": "-q"
"www.ietf.org",
"104.20.0.85",
"www.ietf.org.cdn.cloudflare-dnssec.net"
]
}, },
{ {
"start": "2015-03-25T00:00:56+00:00", "id": "www.example.org",
"value": [ "name": "www.example.org"
"www.google.com",
"2a00:1450:4008:800::1012",
"ber01s08-in-x12.1e100.net"
]
}, },
{ {
"start": "2015-03-25T00:00:56+00:00", "id": "mail.example.com",
"value": [ "name": "mail.example.com"
"www.google.com",
"216.58.213.36",
"ber01s15-in-f36.1e100.net"
]
} }
] ],
}, "table": [
{
"name": "happy-connect-measurement",
"header": {
"column": [
"target",
"port",
"ip",
"time-1",
"time-2",
"time-3"
]
},
"row": [
{
"start": "2015-03-25T00:00:56+00:00",
"value": [
"www.ietf.org",
"80",
"2400:cb00:2048:1::6814:55",
"8164",
"8019",
"14066"
]
},
{
"start": "2015-03-25T00:00:56+00:00",
"value": [
"www.ietf.org",
"80",
"2400:cb00:2048:1::6814:155",
"14131",
"14029",
"7984"
]
},
{
"start": "2015-03-25T00:00:56+00:00",
"value": [
"www.ietf.org",
"80",
"104.20.1.85",
"13821",
"13736",
"7995"
]
},
{
"start": "2015-03-25T00:00:56+00:00",
"value": [
"www.ietf.org",
"80",
"104.20.0.85",
"14024",
"13756",
"8589"
]
},
{
"start": "2015-03-25T00:00:56+00:00",
"value": [
"www.google.com",
"80",
"2a00:1450:4008:800::1012",
"19246",
"19416",
"19443"
]
},
{ {
"start": "2015-03-25T00:00:56+00:00", "column": [
"value": [ "target",
"www.google.com", "ip",
"80", "rtt-1",
"216.58.213.36", "rtt-2",
"11692", "rtt-3",
"11668", "rtt-4",
"11933" "rtt-5"
],
"row": [
{
"value": [
"www.example.org",
"192.0.2.1",
"14.15",
"14.14",
"14.09",
"14.17",
"14.51"
]
},
{
"value": [
"mail.example.org",
"192.0.2.2",
"12.24",
"11.99",
"12.49",
"11.87",
"12.45"
]
}
] ]
} }
] ]
} }
] ]
} }
} }
Authors' Addresses Authors' Addresses
Juergen Schoenwaelder Juergen Schoenwaelder
Jacobs University Bremen Jacobs University Bremen
 End of changes. 53 change blocks. 
392 lines changed or deleted 222 lines changed or added

This html diff was produced by rfcdiff 1.44. The latest version is available from http://tools.ietf.org/tools/rfcdiff/