draft-ietf-lmap-information-model-11.txt   draft-ietf-lmap-information-model-12.txt 
Network Working Group T. Burbridge Network Working Group T. Burbridge
Internet-Draft P. Eardley Internet-Draft P. Eardley
Intended status: Standards Track BT Intended status: Standards Track BT
Expires: February 20, 2017 M. Bagnulo Expires: May 4, 2017 M. Bagnulo
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
J. Schoenwaelder J. Schoenwaelder
Jacobs University Bremen Jacobs University Bremen
August 19, 2016 October 31, 2016
Information Model for Large-Scale Measurement Platforms (LMAP) Information Model for Large-Scale Measurement Platforms (LMAP)
draft-ietf-lmap-information-model-11 draft-ietf-lmap-information-model-12
Abstract Abstract
This Information Model applies to the Measurement Agent within a This Information Model applies to the Measurement Agent within a
Large-Scale Measurement Platform. As such it outlines the Large-Scale Measurement Platform. As such it outlines the
information that is (pre-)configured on the Measurement Agent or information that is (pre-)configured on the Measurement Agent or
exists in communications with a Controller or Collector within an exists in communications with a Controller or Collector within an
LMAP framework. The purpose of such an Information Model is to LMAP framework. The purpose of such an Information Model is to
provide a protocol and device independent view of the Measurement provide a protocol and device independent view of the Measurement
Agent that can be implemented via one or more Control and Report Agent that can be implemented via one or more Control and Report
skipping to change at page 1, line 47 skipping to change at page 1, line 47
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 February 20, 2017. This Internet-Draft will expire on May 4, 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 5 3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 5
3.1. Pre-Configuration Information . . . . . . . . . . . . . . 8 3.1. Pre-Configuration Information . . . . . . . . . . . . . . 9
3.1.1. Definition of ma-preconfig-obj . . . . . . . . . . . 9 3.1.1. Definition of ma-preconfig-obj . . . . . . . . . . . 10
3.2. Configuration Information . . . . . . . . . . . . . . . . 10 3.2. Configuration Information . . . . . . . . . . . . . . . . 10
3.2.1. Definition of ma-config-obj . . . . . . . . . . . . . 11 3.2.1. Definition of ma-config-obj . . . . . . . . . . . . . 12
3.3. Instruction Information . . . . . . . . . . . . . . . . . 13 3.3. Instruction Information . . . . . . . . . . . . . . . . . 13
3.3.1. Definition of ma-instruction-obj . . . . . . . . . . 15 3.3.1. Definition of ma-instruction-obj . . . . . . . . . . 15
3.3.2. Definition of ma-suppression-obj . . . . . . . . . . 16 3.3.2. Definition of ma-suppression-obj . . . . . . . . . . 16
3.4. Logging Information . . . . . . . . . . . . . . . . . . . 17 3.4. Logging Information . . . . . . . . . . . . . . . . . . . 17
3.4.1. Definition of ma-log-obj . . . . . . . . . . . . . . 18 3.4.1. Definition of ma-log-obj . . . . . . . . . . . . . . 19
3.5. Capability and Status Information . . . . . . . . . . . . 19 3.5. Capability and Status Information . . . . . . . . . . . . 19
3.5.1. Definition of ma-capability-obj . . . . . . . . . . . 19 3.5.1. Definition of ma-capability-obj . . . . . . . . . . . 19
3.5.2. Definition of ma-capability-task-obj . . . . . . . . 20 3.5.2. Definition of ma-capability-task-obj . . . . . . . . 20
3.5.3. Definition of ma-status-obj . . . . . . . . . . . . . 20 3.5.3. Definition of ma-status-obj . . . . . . . . . . . . . 20
3.5.4. Definition of ma-status-schedule-obj . . . . . . . . 21 3.5.4. Definition of ma-status-schedule-obj . . . . . . . . 21
3.5.5. Definition of ma-status-action-obj . . . . . . . . . 22 3.5.5. Definition of ma-status-action-obj . . . . . . . . . 22
3.5.6. Definition of ma-status-suppression-obj . . . . . . . 24 3.5.6. Definition of ma-status-suppression-obj . . . . . . . 25
3.5.7. Definition of ma-status-interface-obj . . . . . . . . 25 3.5.7. Definition of ma-status-interface-obj . . . . . . . . 25
3.6. Reporting Information . . . . . . . . . . . . . . . . . . 25 3.6. Reporting Information . . . . . . . . . . . . . . . . . . 26
3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 27 3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 28
3.6.2. Definition of ma-report-result-obj . . . . . . . . . 28 3.6.2. Definition of ma-report-result-obj . . . . . . . . . 28
3.6.3. Definition of ma-report-conflict-obj . . . . . . . . 30 3.6.3. Definition of ma-report-conflict-obj . . . . . . . . 30
3.6.4. Definition of ma-report-table-obj . . . . . . . . . . 30 3.6.4. Definition of ma-report-table-obj . . . . . . . . . . 31
3.6.5. Definition of ma-report-row-obj . . . . . . . . . . . 31 3.6.5. Definition of ma-report-row-obj . . . . . . . . . . . 31
3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 31 3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 31
3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 33 3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 33
3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 34 3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 34
3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 35 3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 35
3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 35 3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 36
3.9. Common Objects: Task Configurations . . . . . . . . . . . 36 3.9. Common Objects: Task Configurations . . . . . . . . . . . 36
3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 37 3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 38
3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 38 3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 38
3.10. Common Objects: Registry Information . . . . . . . . . . 38 3.10. Common Objects: Registry Information . . . . . . . . . . 39
3.10.1. Definition of ma-metric-registry-obj . . . . . . . . 39 3.10.1. Definition of ma-registry-obj . . . . . . . . . . . 39
3.11. Common Objects: Event Information . . . . . . . . . . . . 39 3.11. Common Objects: Event Information . . . . . . . . . . . . 39
3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 40 3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 40
3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 41 3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 42
3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 42 3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 42
3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 44 3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 44
3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 44 3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 45
3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 44 3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 45
3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 44 3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 45
3.11.8. Definition of ma-controller-connected-obj . . . . . 45 3.11.8. Definition of ma-controller-connected-obj . . . . . 45
4. Example Execution . . . . . . . . . . . . . . . . . . . . . . 45 4. Example Execution . . . . . . . . . . . . . . . . . . . . . . 46
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 47
6. Security Considerations . . . . . . . . . . . . . . . . . . . 47 6. Security Considerations . . . . . . . . . . . . . . . . . . . 48
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 47 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 48
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 47 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.1. Normative References . . . . . . . . . . . . . . . . . . 47 8.1. Normative References . . . . . . . . . . . . . . . . . . 49
8.2. Informative References . . . . . . . . . . . . . . . . . 48 8.2. Informative References . . . . . . . . . . . . . . . . . 49
Appendix A. Non-editorial Changes since -10 . . . . . . . . . . 48 Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 49
Appendix B. Non-editorial Changes since -09 . . . . . . . . . . 49 A.1. Configuration of the device-id . . . . . . . . . . . . . 50
Appendix C. Non-editorial Changes since -08 . . . . . . . . . . 49 A.2. Reporting of agent-id and group-id . . . . . . . . . . . 50
Appendix D. Non-editorial Changes since -07 . . . . . . . . . . 49 Appendix B. Change History . . . . . . . . . . . . . . . . . . . 50
Appendix E. Non-editorial Changes since -06 . . . . . . . . . . 50 B.1. Non-editorial changes since -12 . . . . . . . . . . . . . 50
Appendix F. Non-editorial Changes since -05 . . . . . . . . . . 50 B.2. Non-editorial changes since -11 . . . . . . . . . . . . . 50
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 51 B.3. Non-editorial changes since -10 . . . . . . . . . . . . . 50
B.4. Non-editorial changes since -09 . . . . . . . . . . . . . 51
B.5. Non-editorial changes since -08 . . . . . . . . . . . . . 51
B.6. Non-editorial changes since -07 . . . . . . . . . . . . . 51
B.7. Non-editorial changes since -06 . . . . . . . . . . . . . 52
B.8. Non-editorial changes since -05 . . . . . . . . . . . . . 52
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 53
1. Introduction 1. Introduction
A large-scale measurement platform is a collection of components that A large-scale measurement platform is a collection of components that
work in a coordinated fashion to perform measurements from a large work in a coordinated fashion to perform measurements from a large
number of vantage points. The main components of a large-scale number of vantage points. The main components of a large-scale
measurement platform are the Measurement Agents (hereafter MAs), the measurement platform are the Measurement Agents (hereafter MAs), the
Controller(s) and the Collector(s). Controller(s) and the Collector(s).
The MAs are the elements actually performing the measurements. The The MAs are the elements actually performing the measurements. The
skipping to change at page 20, line 8 skipping to change at page 20, line 20
ma-capability-tags: An optional unordered set of tags that ma-capability-tags: An optional unordered set of tags that
provide additional information about the provide additional information about the
capabilities of the measurement agent. capabilities of the measurement agent.
ma-capability-tasks: An optional unordered set of capability ma-capability-tasks: An optional unordered set of capability
objects for each supported task. objects for each supported task.
3.5.2. Definition of ma-capability-task-obj 3.5.2. Definition of ma-capability-task-obj
object { object {
string ma-capability-task-name; string ma-capability-task-name;
ma-metric-registry-obj ma-capability-task-metrics<0..*>; ma-registry-obj ma-capability-task-functions<0..*>;
string ma-capability-task-version; string ma-capability-task-version;
} ma-capability-task-obj; } ma-capability-task-obj;
The ma-capability-task-obj provides information about the capability The ma-capability-task-obj provides information about the capability
of a task and consists of the following elements: of a task and consists of the following elements:
ma-capability-task-name: A name uniquely identifying a task. ma-capability-task-name: A name uniquely identifying a task.
ma-capability-task-metrics: A possibly empty unordered set of ma-capability-task-functions: A possibly empty unordered set of
registered metrics and associated roles registry entries identifying
this task implements. functions this task implements.
ma-capability-task-version: The version of the measurement task. ma-capability-task-version: The version of the measurement task.
3.5.3. Definition of ma-status-obj 3.5.3. Definition of ma-status-obj
object { object {
uuid ma-status-agent-id; uuid ma-status-agent-id;
uri ma-status-device-id; uri ma-status-device-id;
datetime ma-status-last-started; datetime ma-status-last-started;
ma-status-interface-obj ma-status-interfaces<0..*>; ma-status-interface-obj ma-status-interfaces<0..*>;
[ma-status-schedule-obj ma-status-schedules<0..*>;] [ma-status-schedule-obj ma-status-schedules<0..*>;]
[ma-status-suppression-obj ma-status-suppressions<0..*>;] [ma-status-suppression-obj ma-status-suppressions<0..*>;]
skipping to change at page 24, line 43 skipping to change at page 25, line 15
3.5.6. Definition of ma-status-suppression-obj 3.5.6. Definition of ma-status-suppression-obj
object { object {
string ma-status-suppression-name; string ma-status-suppression-name;
string ma-status-suppression-state; string ma-status-suppression-state;
} ma-status-suppression-obj; } ma-status-suppression-obj;
The ma-status-suppression-obj provides status information about that The ma-status-suppression-obj provides status information about that
status of a suppression and consists of the following elements: status of a suppression and consists of the following elements:
ma-status-schedule-name: The name of the suppression this status ma-status-suppression-name: The name of the suppression this status
object refers to. object refers to.
ma-status-schedule-state: The state of the suppression. The value ma-status-suppression-state: The state of the suppression. The
'enabled' indicates that the suppression value 'enabled' indicates that the
is currently enabled. The value 'active suppression is currently enabled. The
indicates that the suppression is value 'active indicates that the
currently active. The value 'disabled' suppression is currently active. The
indicates that the suppression is value 'disabled' indicates that the
currently disabled. suppression is currently disabled.
3.5.7. Definition of ma-status-interface-obj 3.5.7. Definition of ma-status-interface-obj
object { object {
string ma-status-interface-name; string ma-status-interface-name;
string ma-status-interface-type; string ma-status-interface-type;
[int ma-status-interface-speed;] [int ma-status-interface-speed;]
[string ma-status-interface-link-layer-address;] [string ma-status-interface-link-layer-address;]
[ip-address ma-status-interface-ip-addresses<0..*>;] [ip-address ma-status-interface-ip-addresses<0..*>;]
[ip-address ma-status-interface-gateways<0..*>;] [ip-address ma-status-interface-gateways<0..*>;]
skipping to change at page 29, line 9 skipping to change at page 29, line 43
and the action object when the action and the action object when the action
was started. was started.
ma-report-result-tags: An optional unordered set of tags. ma-report-result-tags: An optional unordered set of tags.
This is the joined set of tags This is the joined set of tags
provided by the task object and the provided by the task object and the
action object and schedule object action object and schedule object
when the action was started. when the action was started.
ma-report-result-event-time: The date and time of the event that ma-report-result-event-time: The date and time of the event that
triggerent the schedule of the action triggered the schedule of the action
that produced the reported result that produced the reported result
values. The date and time does not values. The date and time does not
include any added randomization. include any added randomization.
ma-report-result-start-time: The date and time of the start of the ma-report-result-start-time: The date and time of the start of the
action that produced the reported action that produced the reported
result values. result values.
ma-report-result-end-time: An optional date and time indicating ma-report-result-end-time: An optional date and time indicating
when the action finished. when the action finished.
skipping to change at page 30, line 30 skipping to change at page 31, line 15
ma-report-result-action-name: The name of the action in the ma-report-result-action-name: The name of the action in the
schedule that may have impacted the schedule that may have impacted the
result. result.
ma-report-result-task-name: The name of the task that may have ma-report-result-task-name: The name of the task that may have
impacted the result. impacted the result.
3.6.4. Definition of ma-report-table-obj 3.6.4. Definition of ma-report-table-obj
object { object {
[ma-metric-registry-obj ma-report-table-metrics<0..*>;] [ma-registry-obj ma-report-table-functions<0..*>;]
[string] ma-report-table-column-labels<0..*>;] [string] ma-report-table-column-labels<0..*>;]
[ma-report-row-obj ma-report-table-rows<0..*>;] [ma-report-row-obj ma-report-table-rows<0..*>;]
} ma-report-table-obj; } ma-report-table-obj;
The ma-report-table-obj represents a result table and consists of the The ma-report-table-obj represents a result table and consists of the
following elements: following elements:
ma-report-table-metrics: An optional and possibly empty ma-report-table-functions: An optional and possibly empty
unordered set of registered metrics unordered set of registry entries
and associated roles that are identifying the functions for which
reported. results that are reported.
ma-report-table-column-labels: An optional and possibly empty ma-report-table-column-labels: An optional and possibly empty
ordered list of column labels. ordered list of column labels.
ma-report-table-rows: A possibly empty ordered list of ma-report-table-rows: A possibly empty ordered list of
result rows. result rows.
3.6.5. Definition of ma-report-row-obj 3.6.5. Definition of ma-report-row-obj
object { object {
skipping to change at page 32, line 31 skipping to change at page 33, line 12
the test target URL) are defined within as option parameters of the the test target URL) are defined within as option parameters of the
Action in the schedule. A single Tasks Configuration can even be Action in the schedule. A single Tasks Configuration can even be
used multiple times in the same schedule with different additional used multiple times in the same schedule with different additional
parameters. This allows for efficiency in creating and transferring parameters. This allows for efficiency in creating and transferring
the Instruction. Note that the semantics of what happens if an the Instruction. Note that the semantics of what happens if an
option is defined multiple times (either in the Task Configuration, option is defined multiple times (either in the Task Configuration,
Action or in both) is not standardised and will depend upon the Task. Action or in both) is not standardised and will depend upon the Task.
For example, some tasks may legitimately take multiple values for a For example, some tasks may legitimately take multiple values for a
single parameter. single parameter.
Where Options are specified in both the Schedule and the Task Where Options are specified in both the Action and the Task
Configuration, the Schedule Options are appended to those specified Configuration, the Action Options are appended to those specified in
in the Task Configuration. the Task Configuration.
Example: An Action of a Schedule references a single Measurement Example: An Action of a Schedule references a single Measurement
Task Configuration for measuring UDP latency. It specifies that Task Configuration for measuring UDP latency. It specifies that
results are to be sent to a Schedule with a Reporting Action. results are to be sent to a Schedule with a Reporting Action.
This Reporting Task of the Reporting Action is executed by a This Reporting Task of the Reporting Action is executed by a
separate Schedule that specifies that it should run hourly at 5 separate Schedule that specifies that it should run hourly at 5
minutes past the hour. When run this Reporting Action takes the minutes past the hour. When run this Reporting Action takes the
data generated by the UDP latency Measurement Task as well as any data generated by the UDP latency Measurement Task as well as any
other data to be included in the hourly report and transfers it to other data to be included in the hourly report and transfers it to
the Collector over the Report Channel specified within its own the Collector over the Report Channel specified within its own
skipping to change at page 37, line 40 skipping to change at page 38, line 19
that can carry a Measurement Cycle ID. The purpose of this ID is to that can carry a Measurement Cycle ID. The purpose of this ID is to
easily identify a set of measurement results that have been produced easily identify a set of measurement results that have been produced
by Measurement Tasks with comparable Options. This ID could be by Measurement Tasks with comparable Options. This ID could be
manually incremented or otherwise changed when an Option change is manually incremented or otherwise changed when an Option change is
implemented which could mean that two sets of results should not be implemented which could mean that two sets of results should not be
directly compared. directly compared.
3.9.1. Definition of ma-task-obj 3.9.1. Definition of ma-task-obj
object { object {
string ma-task-name; string ma-task-name;
ma-metric-registry-obj ma-task-metrics<0..*>; ma-registry-obj ma-task-functions<0..*>;
[ma-option-obj ma-task-options<0..*>;] [ma-option-obj ma-task-options<0..*>;]
[string ma-task-tags<0..*>;] [string ma-task-tags<0..*>;]
} ma-task-obj; } ma-task-obj;
The ma-task-obj defines a configured task that can be invoked as part The ma-task-obj defines a configured task that can be invoked as part
of an action. A configured task can be referenced by its name and it of an action. A configured task can be referenced by its name and it
contains a set of URIs to link to a metrics registry or a local contains a set of URIs to link to registry entries or a local
specification of the task. Options allow the configuration of task specification of the task. Options allow the configuration of task
parameters (in the form of name-value pairs). The ma-task-obj parameters (in the form of name-value pairs). The ma-task-obj
consists of the following elements: consists of the following elements:
ma-task-name: A name uniquely identifying a ma-task-name: A name uniquely identifying a configured
configured task object. task object.
ma-task-metrics: A possibly empty unordered set of ma-task-functions: A possibly empty unordered set of registry
registered metrics and associated roles entries identifying the functions of the
the configured measurement task will configured task.
use.
ma-task-options: An optional and possibly empty ordered ma-task-options: An optional and possibly empty ordered list
list of options (name-value pairs) that of options (name-value pairs) that are
are passed to the configured task. passed to the configured task.
ma-task-tags: An optional unordered set of tags that ma-task-tags: An optional unordered set of tags that are
are reported together with the reported together with the measurement
measurement results to a collector. results to a collector.
3.9.2. Definition of ma-option-obj 3.9.2. Definition of ma-option-obj
object { object {
string ma-option-name; string ma-option-name;
[object ma-option-value;] [object ma-option-value;]
} ma-option-obj; } ma-option-obj;
The ma-option-obj models a name-value pair and consists of the The ma-option-obj models a name-value pair and consists of the
following elements: following elements:
ma-option-name: The name of the option. ma-option-name: The name of the option.
ma-option-value: The optional value of the option. ma-option-value: The optional value of the option.
The ma-option-obj is used to define Task Configuration Options. Task The ma-option-obj is used to define Task Configuration Options. Task
Configuration Options are generally task specific. For tasks Configuration Options are generally task specific. For tasks
associated with an entry in a registry, the registry may define well- associated with an entry in a registry, the registry may define well-
known option names (e.g., the so-called parameters in the IPPM metric known option names (e.g., the so-called parameters in the IPPM metric
registry [I-D.ietf-ippm-metric-registry]). Control and Reporting registry [I-D.ietf-ippm-metric-registry]). Control and Reporting
Tasks need to know the Channel they are going to use. The common Tasks need to know the Channel they are going to use. The common
option name for specifying the channel is "channel" where the option name for specifying the channel is "channel" where the
option's value refers to the name of an ma-channel-obj. option's value refers to the name of an ma-channel-obj.
3.10. Common Objects: Registry Information 3.10. Common Objects: Registry Information
Tasks and actions can be associated with entries in a metrics Tasks and actions can be associated with entries in a registry. A
registry. A metric is identified by a URI and a metric may have registry object refers to an entry in a registry (identified by a
associated roles. URI) and it may define a set of roles.
3.10.1. Definition of ma-metric-registry-obj 3.10.1. Definition of ma-registry-obj
object { object {
uri ma-metric-registry-entry; uri ma-registry-uri;
[string ma-metric-registry-role<0..*>;] [string ma-registry-role<0..*>;]
} ma-metric-registry-obj; } ma-registry-obj;
The ma-metric-registry-obj defines a registered metric and the The ma-registry-obj refers to an entry of a registry and it defines
associated role(s). The ma-metric-registry-obj consists of the the associated role(s). The ma-registry-obj consists of the
following elements: following elements:
ma-metric-registry-entry: A URI identifying a metric in a metric ma-registry-uri: A URI identifying an entry in a registry.
registry.
ma-metric-registry-role: An optional and possibly empty unordered ma-registry-role: An optional and possibly empty unordered
set of roles for the metric. set of roles for the identified registry
entry.
3.11. Common Objects: Event Information 3.11. Common Objects: Event Information
The Event information object used throughout the information models The Event information object used throughout the information models
can initially take one of several different forms. Additional forms can initially take one of several different forms. Additional forms
may be defined later in order to bind the execution of schedules to may be defined later in order to bind the execution of schedules to
additional events. The initially defined Event forms are: additional events. The initially defined Event forms are:
1. Periodic Timing: Emits multiple events periodically according to 1. Periodic Timing: Emits multiple events periodically according to
an interval time defined in seconds an interval time defined in seconds
skipping to change at page 41, line 44 skipping to change at page 42, line 25
ma-event-cycle-interval: The optional ma-event-cycle-interval ma-event-cycle-interval: The optional ma-event-cycle-interval
defines the duration of the time defines the duration of the time
interval in seconds that is used to interval in seconds that is used to
calculate cycle numbers. No cycle calculate cycle numbers. No cycle
number is calculated if ma-event- number is calculated if ma-event-
cycle-interval does not exist. cycle-interval does not exist.
3.11.2. Definition of ma-periodic-obj 3.11.2. Definition of ma-periodic-obj
object { object {
[datetime ma-periodic-start;] [datetime ma-periodic-start;]
[datetime ma-periodic-end;] [datetime ma-periodic-end;]
int ma-periodic-interval; int ma-periodic-interval;
} ma-periodic-obj; } ma-periodic-obj;
The ma-periodic-obj timing object has an optional start and an The ma-periodic-obj timing object has an optional start and an
optional end time plus a periodic interval. Schedules using an ma- optional end time plus a periodic interval. Schedules using an ma-
periodic-obj are started periodically between the start and end time. periodic-obj are started periodically between the start and end time.
The ma-periodic-obj consists of the following elements: The ma-periodic-obj consists of the following elements:
ma-periodic-start: The optional date and time at which ma-periodic-start: The optional date and time at which
Schedules using this object are first Schedules using this object are first
started. If not present it defaults to started. If not present it defaults to
skipping to change at page 42, line 42 skipping to change at page 43, line 23
that may be in an unknown timezone or roam between different that may be in an unknown timezone or roam between different
timezones (but know their own timezone information such as through timezones (but know their own timezone information such as through
the mobile network). the mobile network).
The calendar elements within the Calendar Timing do not have defaults The calendar elements within the Calendar Timing do not have defaults
in order to avoid accidental high-frequency execution of Tasks. If in order to avoid accidental high-frequency execution of Tasks. If
all possible values for an element are desired then the wildcard * is all possible values for an element are desired then the wildcard * is
used. used.
object { object {
[datetime ma-calendar-start;] [datetime ma-calendar-start;]
[datetime ma-calendar-end;] [datetime ma-calendar-end;]
[string ma-calendar-months<0..*>;] [string ma-calendar-months<0..*>;]
[string ma-calendar-days-of-week<0..*>;] [string ma-calendar-days-of-week<0..*>;]
[string ma-calendar-days-of-month<0..*>;] [string ma-calendar-days-of-month<0..*>;]
[string ma-calendar-hours<0..*>;] [string ma-calendar-hours<0..*>;]
[string ma-calendar-minutes<0..*>;] [string ma-calendar-minutes<0..*>;]
[string ma-calendar-seconds<0..*>;] [string ma-calendar-seconds<0..*>;]
[int ma-calendar-timezone-offset;] [int ma-calendar-timezone-offset;]
} ma-calendar-obj; } ma-calendar-obj;
ma-calendar-start: The optional date and time at which ma-calendar-start: The optional date and time at which
Schedules using this object are first Schedules using this object are first
started. If not present it defaults to started. If not present it defaults to
immediate. immediate.
ma-calendar-end: The optional date and time at which ma-calendar-end: The optional date and time at which
Schedules using this object are last Schedules using this object are last
started. If not present it defaults to started. If not present it defaults to
skipping to change at page 44, line 29 skipping to change at page 45, line 11
Schedules using an ma-one-off-obj are started once at the specified Schedules using an ma-one-off-obj are started once at the specified
date and time. The ma-one-off-obj consists of the following date and time. The ma-one-off-obj consists of the following
elements: elements:
ma-one-off-time: The date and time at which Schedules using ma-one-off-time: The date and time at which Schedules using
this object are started. this object are started.
3.11.5. Definition of ma-immediate-obj 3.11.5. Definition of ma-immediate-obj
object { object {
// empty // empty
} ma-immediate-obj; } ma-immediate-obj;
The ma-immediate-obj event object has no further information The ma-immediate-obj event object has no further information
elements. Schedules using an ma-immediate-obj are started as soon as elements. Schedules using an ma-immediate-obj are started as soon as
possible. possible.
3.11.6. Definition of ma-startup-obj 3.11.6. Definition of ma-startup-obj
object { object {
// empty // empty
} ma-startup-obj; } ma-startup-obj;
The ma-startup-obj event object has no further information elements. The ma-startup-obj event object has no further information elements.
Schedules or suppressions using an ma-startup-obj are started at MA Schedules or suppressions using an ma-startup-obj are started at MA
initialization time. initialization time.
3.11.7. Definition of ma-controller-lost-obj 3.11.7. Definition of ma-controller-lost-obj
object { object {
// empty // empty
} ma-controller-lost-obj; } ma-controller-lost-obj;
The ma-controller-lost-obj event object has no further information The ma-controller-lost-obj event object has no further information
elements. The ma-controller-lost-obj indicates that connectivity to elements. The ma-controller-lost-obj indicates that connectivity to
the controller has been lost. This is determined by a timer started the controller has been lost. This is determined by a timer started
after each successful contact with a controller. When the timer after each successful contact with a controller. When the timer
reaches the controller-timeout (measured in seconds), an ma- reaches the controller-timeout (measured in seconds), an ma-
controller-lost-obj event is generated. This event may be used to controller-lost-obj event is generated. This event may be used to
start a suppression. start a suppression.
3.11.8. Definition of ma-controller-connected-obj 3.11.8. Definition of ma-controller-connected-obj
object { object {
// empty // empty
} ma-controller-connected-obj; } ma-controller-connected-obj;
The ma-controller-connected-obj event object has no further The ma-controller-connected-obj event object has no further
information elements. The ma-controller-connected-obj indicates that information elements. The ma-controller-connected-obj indicates that
connectivity to the controller has been established again after it connectivity to the controller has been established again after it
was lost. This event may be used to end a suppression. was lost. This event may be used to end a suppression.
4. Example Execution 4. Example Execution
The example execution has two event sources E1 and E2 and three The example execution has two event sources E1 and E2 and three
skipping to change at page 46, line 49 skipping to change at page 47, line 49
Note that implementations must handle possible concurrency issues. Note that implementations must handle possible concurrency issues.
In the example execution, action A1 of schedule S3 is consuming the In the example execution, action A1 of schedule S3 is consuming the
data that has been forwarded to schedule S3 while additional data is data that has been forwarded to schedule S3 while additional data is
arriving from action A2 of schedule S2. arriving from action A2 of schedule S2.
5. IANA Considerations 5. IANA Considerations
This document makes no request of IANA. This document makes no request of IANA.
Note to RFC Editor: this section may be removed on publication as an Note to the RFC Editor: this section may be removed on publication as
RFC. an RFC.
6. Security Considerations 6. Security Considerations
This Information Model deals with information about the control and This Information Model deals with information about the control and
reporting of the Measurement Agent. There are broadly two security reporting of the Measurement Agent. There are broadly two security
considerations for such an Information Model. Firstly the considerations for such an Information Model. Firstly the
Information Model has to be sufficient to establish secure Information Model has to be sufficient to establish secure
communication channels to the Controller and Collector such that communication channels to the Controller and Collector such that
other information can be sent and received securely. Additionally, other information can be sent and received securely. Additionally,
any mechanisms that the Network Operator or other device any mechanisms that the Network Operator or other device
skipping to change at page 47, line 33 skipping to change at page 48, line 33
context and MA ID are left optional and can be excluded from some context and MA ID are left optional and can be excluded from some
deployments. This would, for example, allow the MA to remain deployments. This would, for example, allow the MA to remain
anonymous and for information about location or other context that anonymous and for information about location or other context that
might be used to identify or track the MA to be omitted or blurred. might be used to identify or track the MA to be omitted or blurred.
The Information Model should support wherever relevant, all the The Information Model should support wherever relevant, all the
security and privacy requirements associated with the LMAP Framework. security and privacy requirements associated with the LMAP Framework.
7. Acknowledgements 7. Acknowledgements
The notation was inspired by the notation used in the ALTO protocol Several people contributed to this specification by reviewing early
specification. versions and actively participating in the LMAP working group
(apologies to those unintentionally omitted): Vaibhav Bajpai, Timothy
Carey, Al Morton, Dan Romascanu, Andrea Soppera, and Barbara Stark.
(XXX: complete this list)
Philip Eardley, Trevor Burbridge, Marcelo Bagnulo and Juergen Philip Eardley, Trevor Burbridge, Marcelo Bagnulo and Juergen
Schoenwaelder worked in part on the Leone research project, which Schoenwaelder worked in part on the Leone research project, which
received funding from the European Union Seventh Framework Programme received funding from the European Union Seventh Framework Programme
[FP7/2007-2013] under grant agreement number 317647. [FP7/2007-2013] under grant agreement number 317647.
Juergen Schoenwaelder was partly funded by Flamingo, a Network of Juergen Schoenwaelder was partly funded by Flamingo, a Network of
Excellence project (ICT-318488) supported by the European Commission Excellence project (ICT-318488) supported by the European Commission
under its Seventh Framework Programme. under its Seventh Framework Programme.
skipping to change at page 48, line 38 skipping to change at page 49, line 44
Information Models and Data Models", RFC 3444, DOI 10 Information Models and Data Models", RFC 3444, DOI 10
.17487/RFC3444, January 2003, .17487/RFC3444, January 2003,
<http://www.rfc-editor.org/info/rfc3444>. <http://www.rfc-editor.org/info/rfc3444>.
[RFC7398] Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and [RFC7398] Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and
A. Morton, "A Reference Path and Measurement Points for A. Morton, "A Reference Path and Measurement Points for
Large-Scale Measurement of Broadband Performance", RFC Large-Scale Measurement of Broadband Performance", RFC
7398, DOI 10.17487/RFC7398, February 2015, 7398, DOI 10.17487/RFC7398, February 2015,
<http://www.rfc-editor.org/info/rfc7398>. <http://www.rfc-editor.org/info/rfc7398>.
Appendix A. Non-editorial Changes since -10 Appendix A. Open Issues
Note to the RFC Editor: this section should be removed on publication
as an RFC.
A.1. Configuration of the device-id
Is it the job of the LMAP information model to configure a device-id?
If not, remove ma-preconfig-device-id from ma-preconfig-obj and ma-
config-device-id from ma-config-obj.
A.2. Reporting of agent-id and group-id
The description of ma-config-report-agent-id is not consistent with
some other text where it is stated that setting ma-config-report-
agent-id to false will have no effect if the group-id is not set.
This behavior is somewhat surprising; it seems simpler to have two
controls, namely ma-config-report-agent-id and ma-config-report-
group-id, each independently controlling whether the agent-id or the
group-id is contained in reports.
Appendix B. Change History
Note to the RFC Editor: this section should be removed on publication
as an RFC.
B.1. Non-editorial changes since -12
o Renamed the ma-metrics-registry-obj to ma-registry-obj since tasks
may refer to different registries (not just a metrics registry).
o Clarifications and bug fixes.
B.2. Non-editorial changes since -11
o Clarifications and bug fixes.
B.3. Non-editorial changes since -10
o Rewrote the text concerning the well-known "channel" option name. o Rewrote the text concerning the well-known "channel" option name.
o Added ma-report-result-event-time, ma-report-result-cycle-number, o Added ma-report-result-event-time, ma-report-result-cycle-number,
and ma-event-cycle-interval. and ma-event-cycle-interval.
o Added ma-capability-tags. o Added ma-capability-tags.
o Added a new section showing an example execution. o Added a new section showing an example execution.
o Several clarifications and bug fixes. o Several clarifications and bug fixes.
Appendix B. Non-editorial Changes since -09 B.4. Non-editorial changes since -09
o Added ma-status-schedule-storage and ma-status-action-storage. o Added ma-status-schedule-storage and ma-status-action-storage.
o Removed suppress-by-default. o Removed suppress-by-default.
o Moved ma-report-result-metrics of the ma-report-result-obj to ma- o Moved ma-report-result-metrics of the ma-report-result-obj to ma-
report-table-metrics of the ma-report-table-obj so that the report-table-metrics of the ma-report-table-obj so that the
relationship between metrics and result tables is clear. relationship between metrics and result tables is clear.
o Added ma-report-conflict-obj. o Added ma-report-conflict-obj.
o Added ma-report-result-status to ma-report-result-obj. o Added ma-report-result-status to ma-report-result-obj.
o Several clarifications and bug fixes. o Several clarifications and bug fixes.
Appendix C. Non-editorial Changes since -08 B.5. Non-editorial changes since -08
o Refactored the ma-report-task-obj into the ma-report-result-obj. o Refactored the ma-report-task-obj into the ma-report-result-obj.
o Introduced the ma-report-table-obj so that a result can contain o Introduced the ma-report-table-obj so that a result can contain
multiple tables. multiple tables.
o Report schedule, action, and task name as part of the ma-report- o Report schedule, action, and task name as part of the ma-report-
result-obj. result-obj.
o Report conflicts per ma-report-result-obj and not per ma-report- o Report conflicts per ma-report-result-obj and not per ma-report-
row-obj. row-obj.
o Report the start/end time as part of the ma-report-result-obj. o Report the start/end time as part of the ma-report-result-obj.
Appendix D. Non-editorial Changes since -07 B.6. Non-editorial changes since -07
o Added ma-schedule-end and ma-schedule-duration. o Added ma-schedule-end and ma-schedule-duration.
o Changed the granularity of scheduler timings to seconds. o Changed the granularity of scheduler timings to seconds.
o Added ma-status-suppression-obj to report the status of o Added ma-status-suppression-obj to report the status of
suppressions as done in the YANG data model. suppressions as done in the YANG data model.
o Added counters to schedule and action status objects to match the o Added counters to schedule and action status objects to match the
counters in the YANG data model. counters in the YANG data model.
o Using tags to pass information such as a measurement cycle o Using tags to pass information such as a measurement cycle
identifier to the collector. identifier to the collector.
o Using suppression tags and glob-style matching to select schedules o Using suppression tags and glob-style matching to select schedules
and actions to be suppressed. and actions to be suppressed.
Appendix E. Non-editorial Changes since -06 B.7. Non-editorial changes since -06
o The default execution mode is pipelined (LI12) o The default execution mode is pipelined (LI12)
o Added text to define which action consumes data in sequential, o Added text to define which action consumes data in sequential,
pipelines, and parallel execution mode (LI11) pipelines, and parallel execution mode (LI11)
o Added ma-config-measurement-point, ma-report-measurement-point, o Added ma-config-measurement-point, ma-report-measurement-point,
and ma-config-report-measurement-point to configure and report the and ma-config-report-measurement-point to configure and report the
measurement point (LI10) measurement point (LI10)
skipping to change at page 50, line 43 skipping to change at page 52, line 43
o Introduced ma-capability-obj and ma-capability-task-obj to expose o Introduced ma-capability-obj and ma-capability-task-obj to expose
the capabilities of a measurement agent (LI05) the capabilities of a measurement agent (LI05)
o Use 'ordered list' or 'unordered set' instead of list, collection, o Use 'ordered list' or 'unordered set' instead of list, collection,
etc. (LI02) etc. (LI02)
o Clarification that Actions are part of a Schedule (LI03) o Clarification that Actions are part of a Schedule (LI03)
o Deleted terms that are not strictly needed (LI04) o Deleted terms that are not strictly needed (LI04)
Appendix F. Non-editorial Changes since -05 B.8. Non-editorial changes since -05
o A task can now reference multiply registry entries. o A task can now reference multiply registry entries.
o Consistent usage of the term Action and Task. o Consistent usage of the term Action and Task.
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).
 End of changes. 54 change blocks. 
121 lines changed or deleted 166 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/