draft-ietf-lmap-information-model-10.txt   draft-ietf-lmap-information-model-11.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: January 9, 2017 M. Bagnulo Expires: February 20, 2017 M. Bagnulo
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
J. Schoenwaelder J. Schoenwaelder
Jacobs University Bremen Jacobs University Bremen
July 8, 2016 August 19, 2016
Information Model for Large-Scale Measurement Platforms (LMAP) Information Model for Large-Scale Measurement Platforms (LMAP)
draft-ietf-lmap-information-model-10 draft-ietf-lmap-information-model-11
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 January 9, 2017. This Internet-Draft will expire on February 20, 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 2, line 41 skipping to change at page 2, line 41
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 . . . . . . . . . . . . . . 18
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 . . . . . . . 24
3.5.7. Definition of ma-status-interface-obj . . . . . . . . 24 3.5.7. Definition of ma-status-interface-obj . . . . . . . . 25
3.6. Reporting Information . . . . . . . . . . . . . . . . . . 25 3.6. Reporting Information . . . . . . . . . . . . . . . . . . 25
3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 27 3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 27
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 . . . . . . . . 29 3.6.3. Definition of ma-report-conflict-obj . . . . . . . . 30
3.6.4. Definition of ma-report-table-obj . . . . . . . . . . 29 3.6.4. Definition of ma-report-table-obj . . . . . . . . . . 30
3.6.5. Definition of ma-report-row-obj . . . . . . . . . . . 30 3.6.5. Definition of ma-report-row-obj . . . . . . . . . . . 31
3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 30 3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 31
3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 32 3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 33
3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 33 3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 34
3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 34 3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 35
3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 35 3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 35
3.9. Common Objects: Task Configurations . . . . . . . . . . . 35 3.9. Common Objects: Task Configurations . . . . . . . . . . . 36
3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 37 3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 37
3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 37 3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 38
3.10. Common Objects: Registry Information . . . . . . . . . . 38 3.10. Common Objects: Registry Information . . . . . . . . . . 38
3.10.1. Definition of ma-metric-registry-obj . . . . . . . . 38 3.10.1. Definition of ma-metric-registry-obj . . . . . . . . 39
3.11. Common Objects: Event Information . . . . . . . . . . . . 38 3.11. Common Objects: Event Information . . . . . . . . . . . . 39
3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 39 3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 40
3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 40 3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 41
3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 41 3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 42
3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 43 3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 44
3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 43 3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 44
3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 43 3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 44
3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 44 3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 44
3.11.8. Definition of ma-controller-connected-obj . . . . . 44 3.11.8. Definition of ma-controller-connected-obj . . . . . 45
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 4. Example Execution . . . . . . . . . . . . . . . . . . . . . . 45
5. Security Considerations . . . . . . . . . . . . . . . . . . . 44 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 45 6. Security Considerations . . . . . . . . . . . . . . . . . . . 47
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 45 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 47
7.1. Normative References . . . . . . . . . . . . . . . . . . 45 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.2. Informative References . . . . . . . . . . . . . . . . . 46 8.1. Normative References . . . . . . . . . . . . . . . . . . 47
Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 46 8.2. Informative References . . . . . . . . . . . . . . . . . 48
Appendix B. Non-editorial Changes since -09 . . . . . . . . . . 46 Appendix A. Non-editorial Changes since -10 . . . . . . . . . . 48
Appendix C. Non-editorial Changes since -08 . . . . . . . . . . 47 Appendix B. Non-editorial Changes since -09 . . . . . . . . . . 49
Appendix D. Non-editorial Changes since -07 . . . . . . . . . . 47 Appendix C. Non-editorial Changes since -08 . . . . . . . . . . 49
Appendix E. Non-editorial Changes since -06 . . . . . . . . . . 47 Appendix D. Non-editorial Changes since -07 . . . . . . . . . . 49
Appendix F. Non-editorial Changes since -05 . . . . . . . . . . 48 Appendix E. Non-editorial Changes since -06 . . . . . . . . . . 50
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49 Appendix F. Non-editorial Changes since -05 . . . . . . . . . . 50
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 51
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 7, line 7 skipping to change at page 7, line 7
1. Schedules. A set of Schedules tells the MA to do something. 1. Schedules. A set of Schedules tells the MA to do something.
Without a Schedule no Task (from a measurement to reporting or Without a Schedule no Task (from a measurement to reporting or
communicating with the Controller) is ever executed. Schedules communicating with the Controller) is ever executed. Schedules
are used within the Instruction to specify what tasks should be are used within the Instruction to specify what tasks should be
performed, when, and how to direct their results. A Schedule is performed, when, and how to direct their results. A Schedule is
also used within the pre-Configuration and Configuration also used within the pre-Configuration and Configuration
information in order to execute the Task or Tasks required to information in order to execute the Task or Tasks required to
communicate with the Controller. A specific Schedule can only be communicate with the Controller. A specific Schedule can only be
active once. Attempts to start a Schedule while the same active once. Attempts to start a Schedule while the same
Schedule is still active will fail. Schedule is still running will fail.
2. Channels. A set of Channel objects are used to communicate with 2. Channels. A set of Channel objects are used to communicate with
a number of endpoints (i.e., the Controller and Collectors). a number of endpoints (i.e., the Controller and Collectors).
Each Channel object contains the information required for the Each Channel object contains the information required for the
communication with a single endpoint such as the target location communication with a single endpoint such as the target location
and security details. and security details.
3. Task Configurations. A set of Task Configurations is used to 3. Task Configurations. A set of Task Configurations is used to
configure the Tasks that are run by the MA. This includes the configure the Tasks that are run by the MA. This includes the
registry entries for the Task and any configuration parameters. registry entries for the Task and any configuration parameters.
skipping to change at page 8, line 5 skipping to change at page 8, line 5
: :
: :
`-- executes --> Action N `-- executes --> Action N
|-- using --> Task Configuration |-- using --> Task Configuration
| |
`-- feeding to --> Destination Schedule `-- feeding to --> Destination Schedule
Figure 1: Relationship between Schedules, Events, Actions, Task Figure 1: Relationship between Schedules, Events, Actions, Task
Configurations, and Destination Schedules Configurations, and Destination Schedules
It should be clear that the top-level behavior of an MA is simply to The primary function of an MA is to execute Schedules. Every Action
execute Schedules. Every Action contained in a Schedule is defined contained in a Schedule is defined as a Task. As such, these Actions
as a Task. As such, these Actions are configured through Task are configured through Task Configurations and executed according to
Configurations and executed according to the Event object referenced the Event object referenced by the Schedule in which they appear.
by the Schedule in which they appear. Note, however, that Actions Note, however, that Actions can have Action specific parameters.
can have Action specific parameters.
Tasks can implement a variety of different types of Actions. While Tasks can implement a variety of different types of Actions. While
in terms of the Information Model, all Tasks have the same structure, in terms of the Information Model, all Tasks have the same structure,
it can help conceptually to think of different Task categories: it can help conceptually to think of different Task categories:
1. Measurement Tasks measure some aspect of network performance or 1. Measurement Tasks measure some aspect of network performance or
traffic. They may also capture contextual information from the traffic. They may also capture contextual information from the
MA device or network interfaces such as the device type or MA device or network interfaces such as the device type or
interface speed. interface speed.
skipping to change at page 16, line 34 skipping to change at page 16, line 34
i.e., as if the value would be i.e., as if the value would be
'immediate'. 'immediate'.
ma-suppression-end: The optional event indicating when ma-suppression-end: The optional event indicating when
suppression ends. If not present, the suppression ends. If not present, the
suppression does not have a defined suppression does not have a defined
end, i.e., the suppression remains for end, i.e., the suppression remains for
an indefinite period of time. an indefinite period of time.
ma-suppression-match: An optional and possibly empty ma-suppression-match: An optional and possibly empty
unordered set of match pattern. The unordered set of match patterns. The
suppression will apply to all schedules suppression will apply to all schedules
(and their actions) that have a (and their actions) that have a
matching value in their ma-schedule- matching value in their ma-schedule-
suppression-tags and all actions that suppression-tags and all actions that
have a matching value in their ma- have a matching value in their ma-
action-suppression-tags. Pattern action-suppression-tags. Pattern
matching is done using glob style matching is done using glob style
pattern (see below). pattern (see below).
ma-suppression-stop-running: An optional boolean indicating whether ma-suppression-stop-running: An optional boolean indicating whether
skipping to change at page 19, line 32 skipping to change at page 19, line 32
installed or available on the MA. Status information includes the installed or available on the MA. Status information includes the
times that operations were last performed such as contacting the times that operations were last performed such as contacting the
Controller or producing Reports. Controller or producing Reports.
3.5.1. Definition of ma-capability-obj 3.5.1. Definition of ma-capability-obj
object { object {
string ma-capability-hardware; string ma-capability-hardware;
string ma-capability-firmware; string ma-capability-firmware;
string ma-capability-version; string ma-capability-version;
[string ma-capability-tags<0..*>;]
[ma-capability-task-obj ma-capability-tasks<0..*>;] [ma-capability-task-obj ma-capability-tasks<0..*>;]
} ma-capability-obj; } ma-capability-obj;
The ma-capability-obj provides information about the capabilities of The ma-capability-obj provides information about the capabilities of
the measurement agent and consists of the following elements: the measurement agent and consists of the following elements:
ma-capability-hardware: A description of the hardware of the device ma-capability-hardware: A description of the hardware of the device
the measurement agent is running on. the measurement agent is running on.
ma-capability-firmware: A description of the firmware of the device ma-capability-firmware: A description of the firmware of the device
the measurement agent is running on. the measurement agent is running on.
ma-capability-version: The version of the measurement agent. ma-capability-version: The version of the measurement agent.
ma-capability-tags: An optional unordered set of tags that
provide additional information about the
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-metric-registry-obj ma-capability-task-metrics<0..*>;
string ma-capability-task-version; string ma-capability-task-version;
} ma-capability-task-obj; } ma-capability-task-obj;
skipping to change at page 21, line 40 skipping to change at page 21, line 40
the schedule is currently the schedule is currently
enabled. The value 'suppressed' enabled. The value 'suppressed'
indicates that the schedule is indicates that the schedule is
currently suppressed. The value currently suppressed. The value
'disabled' indicates that the 'disabled' indicates that the
schedule is currently disabled. schedule is currently disabled.
The value 'running' indicates The value 'running' indicates
that the schedule is currently that the schedule is currently
running. running.
ma-status-schedule-storage: The amount of storage allocated ma-status-schedule-storage: The amount of secondary storage
to the schedule in bytes. This (e.g., allocated in a file
object reports the amount of system) holding temporary data
allocated physical storage and allocated to the schedule in
not the storage used by logical bytes. This object reports the
data records. Data models should amount of allocated physical
use a 64-bit integer type. storage and not the storage used
by logical data records. Data
models should use a 64-bit
integer type.
ma-status-schedule-invocations Number of invocations of this ma-status-schedule-invocations Number of invocations of this
schedule. This counter does not schedule. This counter does not
include suppressed invocations or include suppressed invocations or
invocations that were prevented invocations that were prevented
due to an overlap with a previous due to an overlap with a previous
invocation of this schedule. invocation of this schedule.
ma-status-schedule-suppressions Number of suppressed executions ma-status-schedule-suppressions Number of suppressed executions
of this schedule. of this schedule.
skipping to change at page 23, line 18 skipping to change at page 23, line 22
currently enabled. The currently enabled. The
value 'suppressed' indicates value 'suppressed' indicates
that the action is currently that the action is currently
suppressed. The value suppressed. The value
'disabled' indicates that 'disabled' indicates that
the action is currently the action is currently
disabled. The value disabled. The value
'running' indicates that the 'running' indicates that the
action is currently running. action is currently running.
ma-status-action-storage: The amount of storage ma-status-action-storage: The amount of secondary
allocated to the action in storage (e.g., allocated in
bytes. This object reports a file system) holding
the amount of allocated temporary data allocated to
physical storage and not the the action in bytes. This
storage used by logical data object reports the amount of
records. Data models should allocated physical storage
use a 64-bit integer type. and not the storage used by
logical data records. Data
models should use a 64-bit
integer type.
ma-status-action-invocations Number of invocations of ma-status-action-invocations Number of invocations of
this action. This counter this action. This counter
does not include suppressed does not include suppressed
invocations or invocations invocations or invocations
that were prevented due to that were prevented due to
an overlap with a previous an overlap with a previous
invocation of this action. invocation of this action.
ma-status-action-suppressions Number of suppressed ma-status-action-suppressions Number of suppressed
skipping to change at page 28, line 25 skipping to change at page 28, line 25
unordered set of result objects. unordered set of result objects.
3.6.2. Definition of ma-report-result-obj 3.6.2. Definition of ma-report-result-obj
object { object {
string ma-report-result-schedule-name; string ma-report-result-schedule-name;
string ma-report-result-action-name; string ma-report-result-action-name;
string ma-report-result-task-name; string ma-report-result-task-name;
[ma-option-obj ma-report-result-options<0..*>;] [ma-option-obj ma-report-result-options<0..*>;]
[string ma-report-result-tags<0..*>;] [string ma-report-result-tags<0..*>;]
datetime ma-report-result-event-time;
datetime ma-report-result-start-time; datetime ma-report-result-start-time;
[datetime ma-report-result-end-time;] [datetime ma-report-result-end-time;]
[string ma-report-result-cycle-number;]
int ma-report-result-status; int ma-report-result-status;
[ma-report-conflict-obj ma-report-result-conflicts<0..*>;] [ma-report-conflict-obj ma-report-result-conflicts<0..*>;]
[ma-report-table-obj ma-report-result-tables<0..*>;] [ma-report-table-obj ma-report-result-tables<0..*>;]
} ma-report-result-obj; } ma-report-result-obj;
The ma-report-result-obj provides the meta-data of a result report of The ma-report-result-obj provides the meta-data of a result report of
a single executed action. It consists of the following elements: a single executed action. It consists of the following elements:
ma-report-result-schedule-name: The name of the schedule that ma-report-result-schedule-name: The name of the schedule that
produced the result. produced the result.
skipping to change at page 29, line 7 skipping to change at page 29, line 8
options provided by the task object options provided by the task object
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
triggerent the schedule of the action
that produced the reported result
values. The date and time does not
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
task 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 task finished. when the action finished.
ma-report-result-cycle-number: An optional cycle number derived from
ma-report-result-event-time. It is
the time closest to ma-report-result-
event-time that is a multiple of the
ma-event-cycle-interval of the event
that triggered the execution of the
schedule. The value is only present
in an ma-report-result-obj if the
event that triggered the execution of
the schedule has a defined ma-event-
cycle-interval. The cycle number is
represented in the format
YYYYMMDD.HHMMSS where YYYY represents
the year, MM the month (1..12), DD
the day of the months (01..31), HH
the hour (00..23), MM the minute
(00..59), and SS the second (00..59).
ma-report-result-status: The status code returned by the ma-report-result-status: The status code returned by the
execution of the task. execution of the action.
ma-report-result-conflicts: A possibly empty set of conflict ma-report-result-conflicts: A possibly empty set of conflict
actions that might have impacted the actions that might have impacted the
measurement results being reported. measurement results being reported.
ma-report-result-tables: An optional and possibly empty ma-report-result-tables: An optional and possibly empty
unordered set of result tables. unordered set of result tables.
3.6.3. Definition of ma-report-conflict-obj 3.6.3. Definition of ma-report-conflict-obj
skipping to change at page 35, line 36 skipping to change at page 36, line 17
ma-channel-name: A unique name identifying the channel ma-channel-name: A unique name identifying the channel
object. object.
ma-channel-target: A URL identifying the target channel ma-channel-target: A URL identifying the target channel
endpoint. endpoint.
ma-channel-credentials: The security credentials needed to ma-channel-credentials: The security credentials needed to
establish a secure channel. establish a secure channel.
ma-channel-interface-name: An optional name of the network interface ma-channel-interface-name: An optional name of the network interface
to be used. If not present, the system to be used. If not present, the IP
will select a suitable interface. protocol stack will select a suitable
interface.
3.9. Common Objects: Task Configurations 3.9. Common Objects: Task Configurations
Conceptually each Task Configuration defines the parameters of a Task Conceptually each Task Configuration defines the parameters of a Task
that the Measurement Agent (MA) may perform at some point in time. that the Measurement Agent (MA) may perform at some point in time.
It does not by itself actually instruct the MA to perform them at any It does not by itself actually instruct the MA to perform them at any
particular time (this is done by a Schedule). Tasks can be particular time (this is done by a Schedule). Tasks can be
Measurement Tasks (i.e., those Tasks actually performing some type of Measurement Tasks (i.e., those Tasks actually performing some type of
passive or active measurement) or any other scheduled activity passive or active measurement) or any other scheduled activity
performed by the MA such as transferring information to or from the performed by the MA such as transferring information to or from the
skipping to change at page 36, line 41 skipping to change at page 37, line 23
instead of a simple string or numeric value. The implementation of instead of a simple string or numeric value. The implementation of
these name-value pairs will vary between data models. these name-value pairs will vary between data models.
An Option that must be present for Reporting Tasks is the Channel An Option that must be present for Reporting Tasks is the Channel
reference specifying how to communicate with a Collector. This is reference specifying how to communicate with a Collector. This is
included in the task options and will have a value that matches a included in the task options and will have a value that matches a
channel name that has been defined in the Instruction. Similarly channel name that has been defined in the Instruction. Similarly
Control Tasks will have a similar option with the value set to a Control Tasks will have a similar option with the value set to a
specified Control Channel. specified Control Channel.
A reporting task might also have a flag parameter to indicate whether A Reporting Task might also have a flag parameter to indicate whether
to report if there is no measurement result data pending to be to send a report without measurement results if there is no
transferred to the Collector. In addition many tasks will also take measurement result data pending to be transferred to the Collector.
as a parameter which interface to operate over. In addition many tasks will also take as a parameter which interface
to operate over.
In addition the Task Configuration may optionally also be given tags In addition the Task Configuration may optionally also be given tags
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
skipping to change at page 38, line 5 skipping to change at page 38, line 35
[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.
While many of the Task Configuration Options are left to individual The ma-option-obj is used to define Task Configuration Options. Task
tasks to define, some common Options are used by multiple tasks and Configuration Options are generally task specific. For tasks
benefit from standardisation: 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
o Channel is used to specify the details of an endpoint for Control registry [I-D.ietf-ippm-metric-registry]). Control and Reporting
or Reporting Task communications and is detailed elsewhere in this Tasks need to know the Channel they are going to use. The common
document. The common option name for specifying the channel is option name for specifying the channel is "channel" where the
"channel". 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 metrics
registry. A metric is identified by a URI and a metric may have registry. A metric is identified by a URI and a metric may have
associated roles. associated roles.
3.10.1. Definition of ma-metric-registry-obj 3.10.1. Definition of ma-metric-registry-obj
object { object {
skipping to change at page 39, line 50 skipping to change at page 40, line 36
union { union {
ma-periodic-obj ma-event-periodic; ma-periodic-obj ma-event-periodic;
ma-calendar-obj ma-event-calendar; ma-calendar-obj ma-event-calendar;
ma-one-off-obj ma-event-one-off; ma-one-off-obj ma-event-one-off;
ma-immediate-obj ma-event-immediate; ma-immediate-obj ma-event-immediate;
ma-startup-obj ma-event-startup; ma-startup-obj ma-event-startup;
ma-controller-lost-obj ma-event-controller-lost; ma-controller-lost-obj ma-event-controller-lost;
ma-controller-connected-obj ma-event-controller-connected; ma-controller-connected-obj ma-event-controller-connected;
} }
[int ma-event-random-spread;] [int ma-event-random-spread;]
[int ma-event-cycle-interval;]
} ma-event-obj; } ma-event-obj;
The ma-event-obj is the main event object. Event objects are The ma-event-obj is the main event object. Event objects are
identified by a name. A generic event object itself contains a more identified by a name. A generic event object itself contains a more
specific event object. The set of specific event objects should be specific event object. The set of specific event objects should be
extensible. The initial set of specific event objects is further extensible. The initial set of specific event objects is further
described below. The ma-event-obj also includes an optional uniform described below. The ma-event-obj also includes an optional uniform
random spread that can be used to randomize the start times of random spread that can be used to randomize the start times of
schedules triggered by an event. The ma-event-obj consists of the schedules triggered by an event. The ma-event-obj consists of the
following elements: following elements:
skipping to change at page 40, line 43 skipping to change at page 41, line 30
ma-event-controller-lost: The ma-event-controller-lost is ma-event-controller-lost: The ma-event-controller-lost is
present for connectivity to present for connectivity to
controller lost event objects. controller lost event objects.
ma-event-controller-connected: The ma-event-controller-connected is ma-event-controller-connected: The ma-event-controller-connected is
present for connectivity to a present for connectivity to a
controller established event objects. controller established event objects.
ma-event-random-spread: The optional ma-event-random-spread ma-event-random-spread: The optional ma-event-random-spread
adds a random delay defined in adds a random delay defined in
seconds to the event object. seconds to the event object. No
random delay is added if ma-event-
random-spread does not exist.
ma-event-cycle-interval: The optional ma-event-cycle-interval
defines the duration of the time
interval in seconds that is used to
calculate cycle numbers. No cycle
number is calculated if ma-event-
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
skipping to change at page 44, line 34 skipping to change at page 45, line 24
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. IANA Considerations 4. Example Execution
The example execution has two event sources E1 and E2 and three
schedules S1, S2, and S3. The schedule S3 is started by events of
event source E2 while the schedules S1 and S2 are both started by
events of the event source E1. The schedules S1 and S2 have two
actions each and schedule S3 has a single action. The event source
E2 has no randomization while the event source E1 has the
randomization r.
Figure 2 shows a possible timeline of an execution. The time T is
progressing downwards. The dotted vertial line indicates progress of
time while a dotted horizontal line indicates which schedule are
triggered by an event. Tilded lines indicate data flowing from an
action to another schedule. Actions within a schedule are named A1,
A2, etc.
E2 E1 T S1 S2 S3
sequential parallel pipelined
:
e0 +
:
:
e0+r + .......... + .......... ++
: | A1 A1 || A2
: + |+ ~~~~~~~>
: | A2 |
: | + ~~~~~~~~>
: + ~~~~~~~~~~~~~~~~~~~~~>
:
:
e1 +
:
e1+r + .......... + .......... ++
: | A1 A1 ||
: | +|~~~~~~~>
: | | A2
: + +~~~~~~~>
: | A2
: + ~~~~~~~~~~~~~~~~~~~~>
e0 + ................................... +
: | A1
e3 + |
e3+r + .......... + .......... ++ |
: | A1 A1 || A2 |
: + ++ ~~~~~~> |
: | A2 +
: + ~~~~~~~~~~~~~~~~~~~~>
V
Figure 2: Example Execution
Note that implementations must handle possible concurrency issues.
In the example execution, action A1 of schedule S3 is consuming the
data that has been forwarded to schedule S3 while additional data is
arriving from action A2 of schedule S2.
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 RFC Editor: this section may be removed on publication as an
RFC. RFC.
5. 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
administrator employs to pre-configure the MA must also be secure to administrator employs to pre-configure the MA must also be secure to
protect unauthorized parties from modifying pre-configuration protect unauthorized parties from modifying pre-configuration
skipping to change at page 45, line 18 skipping to change at page 47, line 31
pose a risk to confidentiality or privacy given such secure pose a risk to confidentiality or privacy given such secure
communication channels. For this latter reason items such as the MA communication channels. For this latter reason items such as the MA
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.
6. Acknowledgements 7. Acknowledgements
The notation was inspired by the notation used in the ALTO protocol The notation was inspired by the notation used in the ALTO protocol
specification. specification.
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.
7. References 8. References
7.1. Normative References 8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
RFC2119, March 1997, RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
<http://www.rfc-editor.org/info/rfc3339>. <http://www.rfc-editor.org/info/rfc3339>.
[RFC7594] Eardley, P., Morton, A., Bagnulo, M., Burbridge, T., [RFC7594] Eardley, P., Morton, A., Bagnulo, M., Burbridge, T.,
Aitken, P., and A. Akhter, "A Framework for Large-Scale Aitken, P., and A. Akhter, "A Framework for Large-Scale
Measurement of Broadband Performance (LMAP)", RFC 7594, Measurement of Broadband Performance (LMAP)", RFC 7594,
DOI 10.17487/RFC7594, September 2015, DOI 10.17487/RFC7594, September 2015,
<http://www.rfc-editor.org/info/rfc7594>. <http://www.rfc-editor.org/info/rfc7594>.
7.2. Informative References 8.2. Informative References
[I-D.ietf-ippm-metric-registry] [I-D.ietf-ippm-metric-registry]
Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A. Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A.
Akhter, "Registry for Performance Metrics", draft-ietf- Akhter, "Registry for Performance Metrics", draft-ietf-
ippm-metric-registry-06 (work in progress), March 2016. ippm-metric-registry-07 (work in progress), July 2016.
[I-D.ietf-lmap-yang] [I-D.ietf-lmap-yang]
Schoenwaelder, J. and V. Bajpai, "A YANG Data Model for Schoenwaelder, J. and V. Bajpai, "A YANG Data Model for
LMAP Measurement Agents", draft-ietf-lmap-yang-04 (work in LMAP Measurement Agents", draft-ietf-lmap-yang-05 (work in
progress), March 2016. progress), July 2016.
[RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between
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. Open Issues Appendix A. Non-editorial Changes since -10
o There is a proposal to add a cycle number to the result reports o Rewrote the text concerning the well-known "channel" option name.
but it is still unclear how exactly the cycle number is calculated
and how parameters needed to calculate the cycle interval are
conveyed to the MA.
o There is a proposal to remove the well-known Channel option name o Added ma-report-result-event-time, ma-report-result-cycle-number,
from the information model. and ma-event-cycle-interval.
o There is a potentially unresolved discussion around the ma- o Added ma-capability-tags.
schedule-end and ma-schedule-duration.
o It may be useful to add ma-capability-tags so that MAs could be o Added a new section showing an example execution.
tagged with additional information (e.g., dsl, cable, home,
office, nat, ipv4, ipv6, ...). o Several clarifications and bug fixes.
Appendix B. Non-editorial Changes since -09 Appendix B. 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.
 End of changes. 41 change blocks. 
98 lines changed or deleted 200 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/