draft-ietf-lmap-yang-08.txt   draft-ietf-lmap-yang-09.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: May 24, 2017 November 20, 2016 Expires: June 18, 2017 December 15, 2016
A YANG Data Model for LMAP Measurement Agents A YANG Data Model for LMAP Measurement Agents
draft-ietf-lmap-yang-08.txt draft-ietf-lmap-yang-09.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 May 24, 2017. This Internet-Draft will expire on June 18, 2017.
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 3, line 41 skipping to change at page 3, line 41
terminology. The Controller instructs one or more MAs and terminology. The Controller instructs one or more MAs and
communicates the set of Measurement Tasks an MA should perform and communicates the set of Measurement Tasks an MA should perform and
when. The Collector accepts Reports from the MAs with the Results when. The Collector accepts Reports from the MAs with the Results
from their Measurement Tasks. from their Measurement Tasks.
The YANG data model for LMAP has been split into three modules: The YANG data model for LMAP has been split into three modules:
1. The module ietf-lmap-common.yang provides common definitions such 1. The module ietf-lmap-common.yang provides common definitions such
as LMAP specific data types. as LMAP specific data types.
2. The module ietf-lmap-config.yang defines the data structures 2. The module ietf-lmap-control.yang defines the data structures
exchanged between a Controller and Measurement Agents. exchanged between a Controller and Measurement Agents.
3. The module ietf-lmap-report.yang defines the data structures 3. The module ietf-lmap-report.yang defines the data structures
exchanged between Measurement Agents and Collectors. exchanged between Measurement Agents and Collectors.
As shown in Figure 1, a Controller, implementing ietf-lmap- As shown in Figure 1, a Controller, implementing ietf-lmap-
common.yang and ietf-lmap-control.yang as a client, will instruct common.yang and ietf-lmap-control.yang as a client, will instruct
Measurement Agents, which implement ietf-lmap-common.yang and ietf- Measurement Agents, which implement ietf-lmap-common.yang and ietf-
lmap-control.yang as servers. A Measurement Agent, implementing lmap-control.yang as servers. A Measurement Agent, implementing
ietf-lmap-common.yang and ietf-lmap-report.yang, will send results to ietf-lmap-common.yang and ietf-lmap-report.yang, will send results to
skipping to change at page 8, line 15 skipping to change at page 8, line 15
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 result* +---w result*
+---w schedule-name? lmap:identifier +---w schedule? lmap:identifier
+---w action-name? lmap:identifier +---w action? lmap:identifier
+---w task-name? lmap:identifier +---w task? lmap:identifier
+---w parameters +---w parameters
| +---w (extension)? | +---w (extension)?
+---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 event? yang:date-and-time +---w event? yang:date-and-time
+---w start yang:date-and-time +---w start yang:date-and-time
+---w end? yang:date-and-time +---w end? yang:date-and-time
+---w cycle-number? lmap:cycle-number +---w cycle-number? lmap:cycle-number
+---w status lmap:status-code +---w status lmap:status-code
+---w conflict* +---w conflict*
| +---w schedule-name? lmap:identifier | +---w schedule-name? lmap:identifier
| +---w action-name? lmap:identifier | +---w action-name? lmap:identifier
| +---w task-name? lmap:identifier | +---w task-name? lmap:identifier
+---w table* +---w table*
+---w function* [uri] +---w function* [uri]
| +---w uri inet:uri | +---w uri inet:uri
| +---w role* string | +---w role* string
+---w column* string +---w column* string
+---w row* +---w row*
skipping to change at page 10, line 11 skipping to change at page 10, line 11
o Event Information: Event definitions are modeled in the /lmap/ o Event Information: Event definitions are modeled in the /lmap/
events subtree. events subtree.
4. YANG Modules 4. YANG Modules
4.1. LMAP Common YANG Module 4.1. LMAP Common YANG Module
This module imports definitions from [RFC6536]. This module imports definitions from [RFC6536].
<CODE BEGINS> file "ietf-lmap-common@2016-11-20.yang" <CODE BEGINS> file "ietf-lmap-common@2016-12-15.yang"
module ietf-lmap-common { module ietf-lmap-common {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-lmap-common"; namespace "urn:ietf:params:xml:ns:yang:ietf-lmap-common";
prefix "lmap"; prefix "lmap";
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
skipping to change at page 10, line 41 skipping to change at page 10, line 41
Editor: Vaibhav Bajpai Editor: Vaibhav Bajpai
<v.bajpai@jacobs-university.de>"; <v.bajpai@jacobs-university.de>";
description description
"This module provides common definitions used by the data "This module provides common definitions used by the data
models written for Large-Scale Measurement Platforms (LMAP). models written for Large-Scale Measurement Platforms (LMAP).
This module defines typedefs and groupings but no schema This module defines typedefs and groupings but no schema
tree elements."; tree elements.";
revision "2016-11-20" { revision "2016-12-15" {
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";
} }
/* /*
* Typedefs * Typedefs
*/ */
skipping to change at page 18, line 15 skipping to change at page 18, line 15
} }
} }
} }
<CODE ENDS> <CODE ENDS>
4.2. LMAP Control YANG Module 4.2. LMAP Control YANG Module
This module imports definitions from [RFC6536], [RFC6991] and the This module imports definitions from [RFC6536], [RFC6991] and the
common LMAP module and it references [RFC7398]. common LMAP module and it references [RFC7398].
<CODE BEGINS> file "ietf-lmap-control@2016-11-20.yang" <CODE BEGINS> file "ietf-lmap-control@2016-12-15.yang"
module ietf-lmap-control { module ietf-lmap-control {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-lmap-control"; namespace "urn:ietf:params:xml:ns:yang:ietf-lmap-control";
prefix "lmapc"; prefix "lmapc";
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
} }
import ietf-netconf-acm { import ietf-netconf-acm {
skipping to change at page 18, line 51 skipping to change at page 18, line 51
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 controlling measurement "This module defines a data model for controlling measurement
agents that are part of a Large-Scale Measurement Platform agents that are part of a Large-Scale Measurement Platform
(LMAP). This data model is expected to be implemented by a (LMAP). This data model is expected to be implemented by a
measurement agent."; measurement agent.";
revision "2016-11-20" { revision "2016-12-15" {
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";
} }
/* /*
* Typedefs * Typedefs
*/ */
skipping to change at page 39, line 16 skipping to change at page 39, line 16
} }
} }
} }
<CODE ENDS> <CODE ENDS>
4.3. LMAP Report YANG Module 4.3. LMAP Report YANG Module
This module imports definitions from [RFC6536] and the common LMAP This module imports definitions from [RFC6536] and the common LMAP
module. module.
<CODE BEGINS> file "ietf-lmap-report@2016-11-20.yang" <CODE BEGINS> file "ietf-lmap-report@2016-12-15.yang"
module ietf-lmap-report { module ietf-lmap-report {
yang-version 1.1; yang-version 1.1;
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 {
skipping to change at page 39, line 49 skipping to change at page 39, line 49
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-11-20" { revision "2016-12-15" {
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
skipping to change at page 40, line 50 skipping to change at page 40, line 50
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 result { list result {
description description
"The list of tasks for which results are reported."; "The list of tasks for which results are reported.";
leaf schedule-name { leaf schedule {
type lmap:identifier; type lmap:identifier;
description description
"The name of the schedule that produced the result."; "The name of the schedule that produced the result.";
} }
leaf action-name { leaf action {
type lmap:identifier; type lmap:identifier;
description description
"The name of the action in the schedule that produced "The name of the action in the schedule that produced
the result."; the result.";
} }
leaf task-name { leaf task {
type lmap:identifier; type lmap:identifier;
description description
"The name of the task that produced the result."; "The name of the task that produced the result.";
} }
container parameters { container parameters {
description description
"This container is a place-holder for run-time "This container is a place-holder for run-time
parameters defined in task-specific data models parameters defined in task-specific data models
augmenting the base lmap report data model."; augmenting the base lmap report data model.";
skipping to change at page 54, line 51 skipping to change at page 54, line 51
</config> </config>
Appendix C. Example Report Appendix C. Example Report
<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>
<result> <result>
<schedule-name>S1</schedule-name> <schedule>S1</schedule>
<action-name>A1</action-name> <action>A1</action>
<task-name>update-ping-targets</task-name> <task>update-ping-targets</task>
<start>2016-03-21T10:48:55+01:00</start> <start>2016-03-21T10:48:55+01:00</start>
<end>2016-03-21T10:48:57+01:00</end> <end>2016-03-21T10:48:57+01:00</end>
<status>0</status> <status>0</status>
</result> </result>
<result> <result>
<schedule-name>S1</schedule-name> <schedule>S1</schedule>
<action-name>A2</action-name> <action>A2</action>
<task-name>ping-all-targets</task-name> <task>ping-all-targets</task>
<start>2016-03-21T10:48:55+01:00</start> <start>2016-03-21T10:48:55+01:00</start>
<end>2016-03-21T10:48:57+01:00</end> <end>2016-03-21T10:48:57+01:00</end>
<status>0</status> <status>0</status>
<table> <table>
<column>target</column> <column>target</column>
<column>rtt</column> <column>rtt</column>
<row> <row>
<value>2001:db8::1</value> <value>2001:db8::1</value>
<value>42</value> <value>42</value>
</row> </row>
<row> <row>
<value>2001:db8::2</value> <value>2001:db8::2</value>
<value>24</value> <value>24</value>
</row> </row>
</table> </table>
</result> </result>
<result> <result>
<schedule-name>S2</schedule-name> <schedule>S2</schedule>
<action-name>A1</action-name> <action>A1</action>
<task-name>traceroute</task-name> <task>traceroute</task>
<option> <option>
<id>target</id> <id>target</id>
<name>target</name> <name>target</name>
<value>2001:db8::1</value> <value>2001:db8::1</value>
</option> </option>
<option> <option>
<id>csv</id> <id>csv</id>
<name>--csv</name> <name>--csv</name>
</option> </option>
<start>2016-03-21T10:48:55+01:00</start> <start>2016-03-21T10:48:55+01:00</start>
skipping to change at page 56, line 15 skipping to change at page 56, line 15
<value>10.5</value> <value>10.5</value>
</row> </row>
<row> <row>
<value>2</value> <value>2</value>
<value>?</value> <value>?</value>
<value></value> <value></value>
</row> </row>
</table> </table>
</result> </result>
<result> <result>
<schedule-name>S2</schedule-name> <schedule>S2</schedule>
<action-name>A2</action-name> <action>A2</action>
<task-name>traceroute</task-name> <task>traceroute</task>
<option> <option>
<id>target</id> <id>target</id>
<name>target</name> <name>target</name>
<value>2001:db8::2</value> <value>2001:db8::2</value>
</option> </option>
<option> <option>
<id>csv</id> <id>csv</id>
<name>--csv</name> <name>--csv</name>
</option> </option>
<start>2016-03-21T10:48:55+01:00</start> <start>2016-03-21T10:48:55+01:00</start>
 End of changes. 19 change blocks. 
34 lines changed or deleted 34 lines changed or added

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