draft-ietf-lmap-information-model-06.txt   draft-ietf-lmap-information-model-07.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 4, 2016 M. Bagnulo Expires: May 4, 2016 M. Bagnulo
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
J. Schoenwaelder J. Schoenwaelder
Jacobs University Bremen Jacobs University Bremen
July 3, 2015 November 1, 2015
Information Model for Large-Scale Measurement Platforms (LMAP) Information Model for Large-Scale Measurement Platforms (LMAP)
draft-ietf-lmap-information-model-06 draft-ietf-lmap-information-model-07
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 MA or exists in information that is (pre-)configured on the MA or exists in
communications with a Controller or Collector within an LMAP communications with a Controller or Collector within an LMAP
framework. The purpose of such an Information Model is to provide a framework. The purpose of such an Information Model is to provide a
protocol and device independent view of the MA that can be protocol and device independent view of the MA that can be
implemented via one or more Control and Report protocols. implemented via one or more Control and Report protocols.
skipping to change at page 1, line 46 skipping to change at page 1, line 46
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 4, 2016. This Internet-Draft will expire on May 4, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 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 29 skipping to change at page 2, line 29
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 4 3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 4
3.1. Pre-Configuration Information . . . . . . . . . . . . . . 8 3.1. Pre-Configuration Information . . . . . . . . . . . . . . 8
3.1.1. Definition of ma-preconfig-obj . . . . . . . . . . . 9 3.1.1. Definition of ma-preconfig-obj . . . . . . . . . . . 9
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 . . . . . . . . . . . . . 11
3.3. Instruction Information . . . . . . . . . . . . . . . . . 12 3.3. Instruction Information . . . . . . . . . . . . . . . . . 13
3.3.1. Definition of ma-instruction-obj . . . . . . . . . . 14 3.3.1. Definition of ma-instruction-obj . . . . . . . . . . 15
3.3.2. Definition of ma-suppression-obj . . . . . . . . . . 15 3.3.2. Definition of ma-suppression-obj . . . . . . . . . . 16
3.4. Logging Information . . . . . . . . . . . . . . . . . . . 16 3.4. Logging Information . . . . . . . . . . . . . . . . . . . 17
3.4.1. Definition of ma-log-obj . . . . . . . . . . . . . . 17 3.4.1. Definition of ma-log-obj . . . . . . . . . . . . . . 18
3.5. Capability and Status Information . . . . . . . . . . . . 17 3.5. Capability and Status Information . . . . . . . . . . . . 18
3.5.1. Definition of ma-status-obj . . . . . . . . . . . . . 18 3.5.1. Definition of ma-capability-obj . . . . . . . . . . . 19
3.5.2. Definition of ma-task-status-obj . . . . . . . . . . 18 3.5.2. Definition of ma-capability-task-obj . . . . . . . . 19
3.5.3. Definition of ma-interface-obj . . . . . . . . . . . 19 3.5.3. Definition of ma-status-obj . . . . . . . . . . . . . 20
3.6. Reporting Information . . . . . . . . . . . . . . . . . . 20 3.5.4. Definition of ma-status-schedule-obj . . . . . . . . 20
3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 22 3.5.5. Definition of ma-status-action-obj . . . . . . . . . 21
3.6.2. Definition of ma-report-task-obj . . . . . . . . . . 23 3.5.6. Definition of ma-interface-obj . . . . . . . . . . . 22
3.6.3. Definition of ma-report-row-obj . . . . . . . . . . . 23 3.6. Reporting Information . . . . . . . . . . . . . . . . . . 23
3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 24 3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 25
3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 25 3.6.2. Definition of ma-report-task-obj . . . . . . . . . . 25
3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 26 3.6.3. Definition of ma-report-row-obj . . . . . . . . . . . 26
3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 27 3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 27
3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 28 3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 28
3.9. Common Objects: Task Configurations . . . . . . . . . . . 28 3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 29
3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 30 3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 30
3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 30 3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 30
3.10. Common Objects: Event Information . . . . . . . . . . . . 31 3.9. Common Objects: Task Configurations . . . . . . . . . . . 31
3.10.1. Definition of ma-event-obj . . . . . . . . . . . . . 32 3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 33
3.10.2. Definition of ma-periodic-obj . . . . . . . . . . . 33 3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 33
3.10.3. Definition of ma-calendar-obj . . . . . . . . . . . 33
3.10.4. Definition of ma-one-off-obj . . . . . . . . . . . . 35 3.10. Common Objects: Registry Information . . . . . . . . . . 34
3.10.5. Definition of ma-immediate-obj . . . . . . . . . . . 35 3.10.1. Definition of ma-metric-registry-obj . . . . . . . . 34
3.10.6. Definition of ma-startup-obj . . . . . . . . . . . . 36 3.11. Common Objects: Event Information . . . . . . . . . . . . 34
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 35
5. Security Considerations . . . . . . . . . . . . . . . . . . . 36 3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 37
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 37 3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 37
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 39
7.1. Normative References . . . . . . . . . . . . . . . . . . 37 3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 39
7.2. Informative References . . . . . . . . . . . . . . . . . 37 3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 40
Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 37 3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 40
Appendix B. Non-editorial Changes since -05 . . . . . . . . . . 38 3.11.8. Definition of ma-controller-ok-obj . . . . . . . . . 40
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 38 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40
5. Security Considerations . . . . . . . . . . . . . . . . . . . 40
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 41
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.1. Normative References . . . . . . . . . . . . . . . . . . 41
7.2. Informative References . . . . . . . . . . . . . . . . . 42
Appendix A. Non-editorial Changes since -06 . . . . . . . . . . 42
Appendix B. Non-editorial Changes since -05 . . . . . . . . . . 43
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43
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
MAs are controlled by exactly one Controller at a time and the MAs are controlled by exactly one Controller at a time and the
Collectors gather the results generated by the MAs. In a nutshell, Collectors gather the results generated by the MAs. In a nutshell,
the normal operation of a large-scale measurement platform starts the normal operation of a large-scale measurement platform starts
with the Controller instructing a set of one or more MAs to perform a with the Controller instructing a set of one or more MAs to perform a
set of one or more Measurement Tasks at a certain point in time. The set of one or more Measurement Tasks at a certain point in time. The
MAs execute the instructions from a Controller, and once they have MAs execute the instructions from a Controller, and once they have
done so, they report the results of the measurements to one or more done so, they report the results of the measurements to one or more
Collectors. The overall framework for a Large Measurement platform Collectors. The overall framework for a Large Measurement platform
as used in this document is described in detail in as used in this document is described in detail in [RFC7594].
[I-D.ietf-lmap-framework].
A large-scale measurement platform involves basically three types of A large-scale measurement platform involves basically three types of
protocols, namely, a Control protocol (or protocols) between a protocols, namely, a Control protocol (or protocols) between a
Controller and the MAs, a Report protocol (or protocols) between the Controller and the MAs, a Report protocol (or protocols) between the
MAs and the Collector(s) and several measurement protocols between MAs and the Collector(s) and several measurement protocols between
the MAs and Measurement Peers (MPs), used to actually perform the the MAs and Measurement Peers (MPs), used to actually perform the
measurements. In addition some information is required to be measurements. In addition some information is required to be
configured on the MA prior to any communication with a Controller. configured on the MA prior to any communication with a Controller.
This document defines the information model for both Control and the This document defines the information model for both Control and the
skipping to change at page 4, line 45 skipping to change at page 4, line 51
properties of the objects of the information model. An optional properties of the objects of the information model. An optional
property is enclosed by square brackets, [ ], and a list property is property is enclosed by square brackets, [ ], and a list property is
indicated by two numbers in angle brackets, <m..n>, where m indicates indicated by two numbers in angle brackets, <m..n>, where m indicates
the minimal number of values, and n is the maximum. The symbol * for the minimal number of values, and n is the maximum. The symbol * for
n means no upper bound. n means no upper bound.
3. LMAP Information Model 3. LMAP Information Model
The information described herein relates to the information stored, The information described herein relates to the information stored,
received or transmitted by a Measurement Agent as described within received or transmitted by a Measurement Agent as described within
the LMAP framework [I-D.ietf-lmap-framework]. As such, some subsets the LMAP framework [RFC7594]. As such, some subsets of this
of this information model are applicable to the measurement information model are applicable to the measurement Controller,
Controller, Collector and any device management system that pre- Collector and any device management system that pre-configures the
configures the Measurement Agent. The information described in these Measurement Agent. The information described in these models will be
models will be transmitted by protocols using interfaces between the transmitted by protocols using interfaces between the Measurement
Measurement Agent and such systems according to a Data Model. Agent and such systems according to a Data Model.
For clarity the information model is divided into six sections: For clarity the information model is divided into six sections:
1. Pre-Configuration Information. Information pre-configured on the 1. Pre-Configuration Information. Information pre-configured on the
Measurement Agent prior to any communication with other Measurement Agent prior to any communication with other
components of the LMAP architecture (i.e., the Controller, components of the LMAP architecture (i.e., the Controller,
Collector and Measurement Peers), specifically detailing how to Collector and Measurement Peers), specifically detailing how to
communicate with a Controller and whether the device is enabled communicate with a Controller and whether the device is enabled
to participate as an MA. to participate as an MA.
skipping to change at page 7, line 19 skipping to change at page 7, line 25
commonly used kind of Event objects are Timing objects. commonly used kind of Event objects are Timing objects.
Figure 1 illustrates the structure in which these common information Figure 1 illustrates the structure in which these common information
objects are referenced. The references are achieved by each object objects are referenced. The references are achieved by each object
(Task Configuration, Event) being given a short textual name that is (Task Configuration, Event) being given a short textual name that is
used by other objects. The objects shown in parenthesis are part of used by other objects. The objects shown in parenthesis are part of
the internal object structure of a Schedule. Channels are not shown the internal object structure of a Schedule. Channels are not shown
in the diagram since they are only used as an option by selected Task in the diagram since they are only used as an option by selected Task
Configurations but are similarly referenced using a short text name. Configurations but are similarly referenced using a short text name.
Schedule Schedule
|------> Event |--- triggered by ---> Event
|------> Action 1 |
| |------> Task Configuration |--- executes ---> Action 1
| `------> Destination Schedule | |--- using ---> Task Configuration
: | |
: | `--- feeding to ---> Destination Schedule
`------> Action N :
|------> Task Configuration :
`------> Destination Schedule `--- exceutes ---> Action N
|--- using ---> Task Configuration
|
`----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 It should be clear that the top-level behavior of an MA is simply to
execute Schedules. Every Action referenced by a Schedule is defined execute Schedules. Every Action contained in a Schedule is defined
as a Task. As such, these Actions are configured through Task as a Task. As such, these Actions are configured through Task
Configurations and executed according to the Event object referenced Configurations and executed according to the Event object referenced
by the Schedule in which they appear. Note, however, that Actions by the Schedule in which they appear. 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.
2. Data Transfer Tasks 2. Data Transfer Tasks
A. Reporting Tasks report the results of Measurement Tasks to A. Reporting Tasks report the results of Measurement Tasks to
Collectors Collectors
B. Control Task(s) implement the Control Protocol and B. Control Task(s) implement the Control Protocol and
communicate with the Controller. Depending on the Control communicate with the Controller.
Protocol there may be a number of specialist tasks such as:
Configuration Task; Instruction Task; Suppression Task;
Capabilities Task; Logging Task etc.
3. Data Analysis Tasks can exist to analyse data from other 3. Data Analysis Tasks can exist to analyse data from other
Measurement Tasks locally on the MA Measurement Tasks locally on the MA
4. Data Management Tasks may exist to clean-up, filter or compress 4. Data Management Tasks may exist to clean-up, filter or compress
data on the MA such as Measurement Task results data on the MA such as Measurement Task results
Figure 1 indicates that Actions can produce data that is fed into Figure 1 indicates that Actions can produce data that is fed into
Destination Schedules. This can by used by Actions implementing Destination Schedules. This can by used by Actions implementing
Measurement Tasks to feed measurement results to a Schedule that Measurement Tasks to feed measurement results to a Schedule that
triggers Actions implementing Reporting Tasks. triggers Actions implementing Reporting Tasks. Data fed to a
Destination Schedule is consumed by the first Action of the
Destination Schedule if the Destination Schedule is using sequential
or pipelined execution mode and it is consumed by all Actions of the
Destination Schedule if the Destination Schedule is using parallel
execution mode.
3.1. Pre-Configuration Information 3.1. Pre-Configuration Information
This information is the minimal information that needs to be pre- This information is the minimal information that needs to be pre-
configured to the MA in order for it to successfully communicate with configured to the MA in order for it to successfully communicate with
a Controller during the registration process. Some of the Pre- a Controller during the registration process. Some of the Pre-
Configuration Information elements are repeated in the Configuration Configuration Information elements are repeated in the Configuration
Information in order to allow an LMAP Controller to update these Information in order to allow an LMAP Controller to update these
items. The pre-configuration information also contains some elements items. The pre-configuration information also contains some elements
that are not under the control of the LMAP framework (such as the that are not under the control of the LMAP framework (such as the
skipping to change at page 9, line 26 skipping to change at page 9, line 39
The MA may be pre-configured with an MA ID, or may use a Device ID in The MA may be pre-configured with an MA ID, or may use a Device ID in
the first Controller contact before it is assigned an MA ID. The the first Controller contact before it is assigned an MA ID. The
Device ID may be a MAC address or some other device identifier Device ID may be a MAC address or some other device identifier
expressed as a URI. If the MA ID is not provided at this stage then expressed as a URI. If the MA ID is not provided at this stage then
it must be provided by the Controller during Configuration. it must be provided by the Controller during Configuration.
3.1.1. Definition of ma-preconfig-obj 3.1.1. Definition of ma-preconfig-obj
object { object {
[uuid ma-agent-id;] [uuid ma-preconfig-agent-id;]
ma-task-obj ma-control-tasks<1..*>; ma-task-obj ma-preconfig-control-tasks<1..*>;
ma-channel-obj ma-control-channels<1..*>; ma-channel-obj ma-preconfig-control-channels<1..*>;
ma-schedule-obj ma-control-schedules<1..*>; ma-schedule-obj ma-preconfig-control-schedules<1..*>;
[uri ma-device-id;] [uri ma-preconfig-device-id;]
credentials ma-credentials; credentials ma-preconfig-credentials;
} ma-preconfig-obj; } ma-preconfig-obj;
The ma-preconfig-obj is essentially a subset of the ma-config-obj The ma-preconfig-obj is essentially a subset of the ma-config-obj
described below. The ma-preconfig-obj consists of the following described below. The ma-preconfig-obj consists of the following
elements: elements:
ma-agent-id: An optional uuid uniquely identifying the ma-preconfig-agent-id: An optional uuid uniquely identifying
measurement agent. the measurement agent.
ma-control-tasks: A collection of tasks objects. ma-preconfig-control-tasks: An unordered set of tasks objects.
ma-control-channels: A collection of channel objects. ma-preconfig-control-channels: An unordered set of channel objects.
ma-control-schedules: A collection of scheduling objects. ma-preconfig-control-schedules: An unordered set of scheduling
objects.
ma-device-id: An optional identifier for the device. ma-preconfig-device-id: An optional identifier for the
device.
ma-credentials: The security credentials used by the ma-preconfig-credentials: The security credentials used by the
measurement agent. measurement agent.
3.2. Configuration Information 3.2. Configuration Information
During registration or at any later point at which the MA contacts During registration or at any later point at which the MA contacts
the Controller (or vice-versa), the choice of Controller, details for the Controller (or vice-versa), the choice of Controller, details for
the timing of communication with the Controller or parameters for the the timing of communication with the Controller or parameters for the
communication Task(s) can be changed (as captured by the Channels, communication Task(s) can be changed (as captured by the Channels,
Schedules and Task Configurations objects). For example the pre- Schedules and Task Configurations objects). For example the pre-
configured Controller (specified as a Channel or Channels) may be configured Controller (specified as a Channel or Channels) may be
over-ridden with a specific Controller that is more appropriate to over-ridden with a specific Controller that is more appropriate to
skipping to change at page 11, line 23 skipping to change at page 12, line 4
Configuration and Instruction information by examining the Capability Configuration and Instruction information by examining the Capability
and Status information for the MA. and Status information for the MA.
It should be noted that control schedules and tasks cannot be It should be noted that control schedules and tasks cannot be
suppressed as evidenced by the lack of suppression information in the suppressed as evidenced by the lack of suppression information in the
Configuration. The control schedule must only reference tasks listed Configuration. The control schedule must only reference tasks listed
as control tasks (i.e., within the Configuration information). Any as control tasks (i.e., within the Configuration information). Any
suppress-by-default flag against control tasks will be ignored. suppress-by-default flag against control tasks will be ignored.
3.2.1. Definition of ma-config-obj 3.2.1. Definition of ma-config-obj
object { object {
uuid ma-agent-id; uuid ma-config-agent-id;
ma-task-obj ma-control-tasks<1..*>; ma-task-obj ma-config-control-tasks<1..*>;
ma-channel-obj ma-control-channels<1..*>; ma-channel-obj ma-config-control-channels<1..*>;
ma-schedule-obj ma-control-schedules<1..*>; ma-schedule-obj ma-config-control-schedules<1..*>;
[uri ma-device-id;] [uri ma-config-device-id;]
credentials ma-credentials; credentials ma-config-credentials;
[string ma-group-id;] [string ma-config-group-id;]
[boolean ma-report-agent-id;] [string ma-config-measurement-point;]
[int ma-controller-timeout;] [boolean ma-config-report-agent-id;]
[boolean ma-config-report-measurement-point;]
[int ma-config-controller-timeout;]
} ma-config-obj; } ma-config-obj;
The ma-config-obj consists of the following elements: The ma-config-obj consists of the following elements:
ma-agent-id: A uuid uniquely identifying the measurement ma-config-agent-id: A uuid uniquely identifying the
agent. measurement agent.
ma-control-tasks: A collection of task objects. ma-config-control-tasks: An unordered set of task objects.
ma-control-channels: A collection of channel objects. ma-config-control-channels: An unordered set of channel
objects.
ma-control-schedules: A collection of scheduling objects. ma-config-control-schedules: An unordered set of scheduling
objects.
ma-device-id: An optional identifier for the device. ma-config-device-id: An optional identifier for the
device.
ma-credentials: The security credentials used by the ma-config-credentials: The security credentials used by
measurement agent. the measurement agent.
ma-group-id: An optional identifier of the group of ma-config-group-id: An optional identifier of the
measurement agents this measurement agent group of measurement agents this
belongs to. measurement agent belongs to.
ma-report-agent-id: An optional flag indicating whether the ma-config-measurement-point: An optional identifier for the
identifier (ma-agent-id) should be included measurement point indicating
in reports. where the measurement agent is
located on a path (see [RFC7398]
for further details).
ma-controller-timeout: A timer is started after each successful ma-config-report-agent-id: An optional flag indicating
contact with a controller. When the timer whether the identifier (ma-
reaches the controller-timeout (measured in config-agent-id) should be
seconds), all schedules will be disabled, included in reports. The default
i.e., no new actions will be executed (and value is false.
hence no new tasks started). The disabled
schedules will be reenabled automatically ma-config-report-measurement-point: An optional flag indicating
once contact with a controller has been whether the measurement point
established successfully again. Note that (ma-config-measurement-point)
this will not affect the execution of should be included in reports.
actions that are essential to establish The default value is false.
contact with the controller or that perform
critical housekeeping functions. ma-config-controller-timeout: A timer is started after each
successful contact with a
controller. When the timer
reaches the controller-timeout
(measured in seconds), an event
is raised indicating that
connectivity to the controller
has been lost (see ma-controller-
lost-obj).
3.3. Instruction Information 3.3. Instruction Information
The Instruction information model has four sub-elements: The Instruction information model has four sub-elements:
1. Instruction Task Configurations 1. Instruction Task Configurations
2. Report Channels 2. Report Channels
3. Instruction Schedules 3. Instruction Schedules
skipping to change at page 14, line 46 skipping to change at page 15, line 39
Instruction Schedules that would continue to apply after the Instruction Schedules that would continue to apply after the
Suppression expires or is removed. In terms of the Controller-MA Suppression expires or is removed. In terms of the Controller-MA
communication this can reduce the data overhead. It also encourages communication this can reduce the data overhead. It also encourages
the re-use of the same standard Task Configurations and Reporting the re-use of the same standard Task Configurations and Reporting
Channels to help ensure consistency and reduce errors. Channels to help ensure consistency and reduce errors.
3.3.1. Definition of ma-instruction-obj 3.3.1. Definition of ma-instruction-obj
object { object {
ma-task-obj ma-instruction-tasks<0..*>; ma-task-obj ma-instruction-tasks<0..*>;
ma-channel-obj ma-report-channels<0..*>; ma-channel-obj ma-instruction-channels<0..*>;
ma-schedule-obj ma-instruction-schedules<0..*>; ma-schedule-obj ma-instruction-schedules<0..*>;
ma-suppression-obj ma-suppression; [ma-suppression-obj ma-instruction-suppressions<0..*>;]
} ma-instruction-obj; } ma-instruction-obj;
An ma-instruction-obj consists of the following elements: An ma-instruction-obj consists of the following elements:
ma-task-obj: A possibly empty collection of task objects. ma-instruction-tasks: A possibly empty unordered set of task
objects.
ma-channel-obj: A possibly empty collection of channel objects. ma-instruction-channels: A possibly empty unordered set of
channel objects.
ma-schedule-obj: A possibly empty collection of schedule objects. ma-instruction-schedules: A possibly empty unordered set of
schedule objects.
ma-suppression-obj: A suppression object. ma-instruction-suppressions: An optional possibly empty unordered
set of suppression objects.
3.3.2. Definition of ma-suppression-obj 3.3.2. Definition of ma-suppression-obj
object { object {
boolean ma-suppression-enabled; string ma-suppression-name;
[ma-event-obj ma-suppression-start;]
[ma-event-obj ma-suppression-end;]
[string ma-suppression-tags<0..*>;]
[boolean ma-suppression-stop-running;] [boolean ma-suppression-stop-running;]
[datetime ma-suppression-start;]
[datetime ma-suppression-end;]
[string ma-suppression-task-names<0..*>;]
[string ma-suppression-schedule-names<0..*>;]
} ma-suppression-obj; } ma-suppression-obj;
The ma-suppression-obj consists of the following elements: The ma-suppression-obj controls the suppression of schedules or
actions and consists of the following elements:
ma-suppression-enabled: A boolean indicating whether
suppression is enabled or not. The
default value is false.
ma-suppression-stop-running: An optional boolean indicating ma-suppression-name: A name uniquely identifying a
whether suppression will stop any suppression.
running tasks. The default value for
this boolean is false.
ma-suppression-start: The optional date and time when ma-suppression-start: The optional event indicating when
suppression starts. The default suppression starts. The default value
value is 'immediate'. is 'immediate'.
ma-suppression-end: The optional date and time when ma-suppression-end: The optional event indicating when
suppression ends. The default value suppression ends. The default value is
is 'indefinite'. 'indefinite'.
ma-suppression-task-names: An optional and possibly empty ma-suppression-tags: An optional and possibly empty
collection of task names. If not unordered set of suppression tags. The
present, this defaults to all tasks. suppression will apply to all schedules
and their actions that have a matching
value in their ma-schedule-suppression-
tags and all actions that have a
matching value in their ma-action-
suppression-tags. If not present, this
defaults to all measurement schedules
and measurement actions.
ma-suppression-schedule-names: An optional and possibly empty ma-suppression-stop-running: An optional boolean indicating whether
collection of schedule names. If not suppression will stop any running
present, this defaults to all schedules or actions. The default
schedules. value for this boolean is false.
3.4. Logging Information 3.4. Logging Information
The MA may report on the success or failure of Configuration or The MA may report on the success or failure of Configuration or
Instruction communications from the Controller. In addition further Instruction communications from the Controller. In addition further
operational logs may be produced during the operation of the MA and operational logs may be produced during the operation of the MA and
updates to capabilities may also be reported. Reporting this updates to capabilities may also be reported. Reporting this
information is achieved in exactly the same manner as scheduling any information is achieved in exactly the same manner as scheduling any
other Task. We make no distinction between a Measurement Task other Task. We make no distinction between a Measurement Task
conducting an active or passive network measurement and one which conducting an active or passive network measurement and one which
skipping to change at page 18, line 9 skipping to change at page 19, line 9
3.5. Capability and Status Information 3.5. Capability and Status Information
The MA will hold Capability Information that can be retrieved by a The MA will hold Capability Information that can be retrieved by a
Controller. Capabilities include the device interface details Controller. Capabilities include the device interface details
available to Measurement Tasks as well as the set of Measurement available to Measurement Tasks as well as the set of Measurement
Tasks/Roles (specified by registry entries) that are actually Tasks/Roles (specified by registry entries) that are actually
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-status-obj 3.5.1. Definition of ma-capability-obj
object { object {
uuid ma-agent-id; string ma-capability-hardware;
uri ma-device-id; string ma-capability-firmware;
string ma-hardware; string ma-capability-version;
string ma-firmware; [ma-capability-task-obj ma-capability-tasks<0..*>;]
string ma-version; } ma-capability-obj;
ma-interface-obj ma-interfaces<0..*>;
datetime ma-last-started; The ma-capability-obj provides information about the capabilities of
[ma-task-status-obj ma-task-status<0..*>;] the measurement agent and consists of the following elements:
ma-capability-hardware: A description of the hardware of the device
the measurement agent is running on.
ma-capability-firmware: A description of the firmware of the device
the measurement agent is running on.
ma-capability-version: The version of the measurement agent.
ma-capability-tasks: An optional unordered set of capability
objects for each supported task.
3.5.2. Definition of ma-capability-task-obj
object {
string ma-capability-task-name;
ma-metric-registry-obj ma-capability-task-metrics<0..*>;
string ma-capability-task-version;
} ma-capability-task-obj;
The ma-capability-task-obj provides information about the capability
of a task and consists of the following elements:
ma-capability-task-name: A name uniquely identifying a task.
ma-capability-task-metrics: A possibly empty unordered set of
registered metrics and associated roles
this task implements.
ma-capability-task-version: The version of the measurement task.
3.5.3. Definition of ma-status-obj
object {
uuid ma-status-agent-id;
uri ma-status-device-id;
datetime ma-status-last-started;
ma-interface-obj ma-status-interfaces<0..*>;
[ma-status-schedule-obj ma-status-schedules<0..*>;]
} ma-status-obj; } ma-status-obj;
The ma-status-obj provides status information about the measurement The ma-status-obj provides status information about the measurement
agent and consists of the following elements: agent and consists of the following elements:
ma-agent-id: A uuid uniquely identifying the measurement ma-status-agent-id: A uuid uniquely identifying the measurement
agent. agent.
ma-device-id: A URI identifying the device. ma-status-device-id: A URI identifying the device.
ma-hardware: A description of the hardware of the device ma-status-last-started: The date and time the measurement agent
the measurement agent is running on. last started.
ma-firmware: A description of the firmware of the device ma-status-interfaces: An unordered set of network interfaces
the measurement agent is running on. available on the device.
ma-version: The version of the measurement agent. ma-status-schedules: An optional unordered set of status objects
for each schedule.
ma-interfaces: A list of network interfaces available on 3.5.4. Definition of ma-status-schedule-obj
the device.
ma-last-started: The date and time the measurement agent object {
last started. string ma-status-schedule-name;
string ma-status-schedule-state;
datetime ma-status-schedule-last-invocation;
[ma-status-action-obj ma-status-schedule-actions<0..*>;]
} ma-status-schedule-obj;
ma-task-status: An optional list of status objects for each The ma-status-schedule-obj provides status information about that
supported task. status of a schedule and consists of the following elements:
ma-status-schedule-name: The name of the schedule this
status object refers to.
ma-status-schedule-state: The state of the schedule. The
value 'enabled' indicates that
the schedule is currently active
and enabled. The value
'suppressed' indicates that the
schedule is currently suppressed.
The value 'disabled' indicates
that the schedule is currently
disabled.
ma-status-schedule-last-invocation: The date and time of the last
invocation of this schedule.
ma-status-schedule-last-invocation: The date and time of the last
invocation of this schedule.
ma-status-schedule-actions: An optional ordered list of
status objects for each action of
the schedule.
3.5.5. Definition of ma-status-action-obj
3.5.2. Definition of ma-task-status-obj
object { object {
string ma-task-name; string ma-status-action-name;
uri ma-task-registry-entries<1..*>; string ma-status-action-state;
[string ma-task-role<0..*>;] datetime ma-status-action-last-invocation;
datetime ma-task-last-invocation; datetime ma-status-action-last-completion;
datetime ma-task-last-completion; int ma-status-action-last-status;
int ma-task-last-status; string ma-status-action-last-message;
string ma-task-last-message; datetime ma-status-action-last-failed-completion;
datetime ma-task-last-failed-completion; int ma-status-action-last-failed-status;
int ma-task-last-failed-status; string ma-status-action-last-failed-message;
string ma-task-last-failed-message; } ma-status-action-obj;
} ma-task-status-obj;
The ma-task-status-obj provides status information about a task and The ma-status-action-obj provides status information about an action
consists of the following elements: of a schedule and consists of the following elements:
ma-task-name: A name uniquely identifying a task. ma-status-action-name: The name of the action of a
schedule this status object
refers to.
ma-task-registry-entries: A possibly empty list of URIs ma-status-action-state: The state of the action.
identifying the metrics a measurement The value 'enabled'
task supports. indicates that the action is
currently active and
enabled. The value
'suppressed' indicates that
the action is currently
suppressed. The value
'disabled' indicates that
the action is currently
disabled.
ma-task-role: An optional and possibly empty list ma-status-action-last-invocation: The date and time of the
of roles of a task. last invocation of this
action.
ma-task-last-completion: The date and time of the last ma-status-action-last-completion: The date and time of the
completion of this task. last completion of this
action.
ma-task-last-status: The status code returned by the last ma-status-action-last-status: The status code returned by
execution of this task. the last execution of this
action.
ma-task-last-message: The status message produced by the ma-status-action-last-message: The status message produced
last execution of this task. by the last execution of
this action.
ma-task-last-failed-completion: The date and time of the last failed ma-status-action-last-failed-completion: The date and time of the
completion of this task. last failed completion of
this action.
ma-task-last-failed-status: The status code returned by the last ma-status-action-last-failed-status: The status code returned by
failed execution of this task. the last failed execution of
this action.
ma-task-last-failed-message: The status message produced by the ma-status-action-last-failed-message: The status message produced
last failed execution of this task. by the last failed execution
of this action.
3.5.6. Definition of ma-interface-obj
3.5.3. Definition of ma-interface-obj
object { object {
string ma-interface-name; string ma-interface-name;
string ma-interface-type; string ma-interface-type;
[int ma-interface-speed;] [int ma-interface-speed;]
[string ma-interface-link-layer-address;] [string ma-interface-link-layer-address;]
[ip-address ma-interface-ip-addresses<0..*>]; [ip-address ma-interface-ip-addresses<0..*>;]
[ip-address ma-interface-gateways<0..*>;] [ip-address ma-interface-gateways<0..*>;]
[ip-address ma-interface-dns-servers<0..*>;] [ip-address ma-interface-dns-servers<0..*>;]
} ma-interface-obj; } ma-interface-obj;
The ma-interface-obj provides status information about network The ma-interface-obj provides status information about network
interfaces and consists of the following elements: interfaces and consists of the following elements:
ma-interface-name: A name uniquely identifying a ma-interface-name: A name uniquely identifying a
network interface. network interface.
ma-interface-type: The type of the network interface. ma-interface-type: The type of the network interface.
ma-interface-speed: An optional indication of the speed ma-interface-speed: An optional indication of the speed
of the interface (measured in bits- of the interface (measured in bits-
per-second). per-second).
ma-interface-link-layer-address: An optional link-layer address of ma-interface-link-layer-address: An optional link-layer address of
the interface. the interface.
ma-interface-ip-addresses: An optional list of IP addresses ma-interface-ip-addresses: An optional ordered list of IP
assigned to the interface. addresses assigned to the
interface.
ma-interface-gateways: An optional list of gateways ma-interface-gateways: An optional ordered list of
assigned to the interface. gateways assigned to the interface.
ma-interface-dns-servers: An optional list of DNS servers ma-interface-dns-servers: An optional ordered list of DNS
assigned to the interface. servers assigned to the interface.
3.6. Reporting Information 3.6. Reporting Information
At a point in time specified by a Schedule, the MA will execute a At a point in time specified by a Schedule, the MA will execute a
task or tasks that communicate a set of measurement results to the task or tasks that communicate a set of measurement results to the
Collector. These Reporting Tasks will be configured to transmit task Collector. These Reporting Tasks will be configured to transmit task
results over a specified Report Channel to a Collector. results over a specified Report Channel to a Collector.
It should be noted that the output from Tasks does not need to be It should be noted that the output from Tasks does not need to be
sent to communication Channels. It can alternatively, or sent to communication Channels. It can alternatively, or
skipping to change at page 22, line 31 skipping to change at page 25, line 15
Protocol. It is constructed at the time of sending a report and Protocol. It is constructed at the time of sending a report and
represents the inherent structure of the information that is sent to represents the inherent structure of the information that is sent to
the Collector. the Collector.
3.6.1. Definition of ma-report-obj 3.6.1. Definition of ma-report-obj
object { object {
datetime ma-report-date; datetime ma-report-date;
[uuid ma-report-agent-id;] [uuid ma-report-agent-id;]
[string ma-report-group-id;] [string ma-report-group-id;]
[ma-report-task-obj ma-report-tasks<0..*>]; [string ma-report-measurement-point;]
[ma-report-task-obj ma-report-tasks<0..*>;]
} ma-report-obj; } ma-report-obj;
The ma-report-obj provides the meta-data of a single report and The ma-report-obj provides the meta-data of a single report and
consists of the following elements: consists of the following elements:
ma-report-date: The date and time when the report was sent ma-report-date: The date and time when the report was
to a collector. sent to a collector.
ma-report-agent-id: An optional uuid uniquely identifying the ma-report-agent-id: An optional uuid uniquely identifying
measurement agent. the measurement agent.
ma-report-group-id: An optional identifier of the group of ma-report-group-id: An optional identifier of the group of
measurement agents this measurement agent measurement agents this measurement
belongs to. agent belongs to.
ma-report-tasks: An optional and possibly empty list of ma-report-measurement-point: An optional identifier for the
tasks result objects. measurement point indicating where the
measurement agent is located on a path
(see [RFC7398] for further details).
ma-report-tasks: An optional and possibly empty
unordered set of tasks result objects.
3.6.2. Definition of ma-report-task-obj 3.6.2. Definition of ma-report-task-obj
object { object {
string ma-report-task-name; string ma-report-task-name;
[uri ma-report-task-registry-entries<1..*>;] [ma-metric-registry-obj ma-report-task-metrics<0..*>;]
[ma-option-obj ma-report-task-options<0..*>]; [ma-option-obj ma-report-task-options<0..*>;]
[ma-option-obj ma-report-task-action-options<0..*>]; [ma-option-obj ma-report-task-action-options<0..*>;]
[string ma-report-task-cycle-id;] [string ma-report-task-cycle-id;]
[string ma-report-task-column-labels<0..*>;] [string ma-report-task-column-labels<0..*>;]
[ma-report-row-obj ma-report-task-rows<0..*>;] [ma-report-row-obj ma-report-task-rows<0..*>;]
} ma-report-task-obj; } ma-report-task-obj;
The ma-report-task-obj provides the meta-data of a result report of a The ma-report-task-obj provides the meta-data of a result report of a
single task. It consists of the following elements: single task. It consists of the following elements:
ma-report-task-name: A name uniquely identifying the ma-report-task-name: A name uniquely identifying the task
task that produced the results that produced the results being
being reported. reported.
ma-report-task-registry-entries: An optional possibly empty list of ma-report-task-metrics: An optional and possibly empty
URIs identifying the metrics unordered set of registered metrics
reported. and associated rulels that are
reported.
ma-report-task-options: An optional list of task options ma-report-task-options: An optional ordered list of task
provided by the task object. options provided by the task object.
ma-report-task-action-options: An optional list of action options ma-report-task-action-options: An optional ordered list of action
provided by the scheduling object. options provided by the action
object.
ma-report-task-cycle-id: An optional measurement cycle ma-report-task-cycle-id: An optional measurement cycle
identifier. identifier.
ma-report-task-column-labels: An optional and possibly empty list ma-report-task-column-labels: An optional and possibly empty
of column labels. ordered list of column labels.
ma-report-task-rows: An optional and possibly empty list ma-report-task-rows: An optional and possibly empty
of result rows. ordered list of result rows.
3.6.3. Definition of ma-report-row-obj 3.6.3. Definition of ma-report-row-obj
object { object {
datetime ma-report-result-start-time; datetime ma-report-row-start-time;
[datetime ma-report-result-end-time;] [datetime ma-report-row-end-time;]
string ma-report-result-conflicts<0..*>; string ma-report-row-conflicts<0..*>;
data ma-report-result-values<0..*>; data ma-report-row-values<0..*>;
} ma-report-row-obj; } ma-report-row-obj;
The ma-report-row-obj represents a result row and consists of the The ma-report-row-obj represents a result row and consists of the
following elements: following elements:
ma-report-result-start-time: The date and time of the start of the ma-report-row-start-time: The date and time of the start of the
measurement task that produced the measurement task that produced the reported
reported result values. result values.
ma-report-result-end-time: An optional date and time indicating ma-report-row-end-time: An optional date and time indicating when
when the measurement task that produced the measurement task that produced the
the reported result values finished. reported result values finished.
ma-report-result-conflicts: A possibly empty set of names of task ma-report-row-conflicts: A possibly empty set of names of task that
that might have impacted the might have impacted the measurement being
measurement being reported. reported.
ma-report-result-values: A possibly empty set of result values. ma-report-row-values: A possibly empty ordered list of result
When present, it contains an ordered values. When present, it contains an
set of values that align to the set of ordered list of values that align to the
column labels for the report. set of column labels for the report.
3.7. Common Objects: Schedules 3.7. Common Objects: Schedules
A Schedule specifies the execution of a single or repeated series of A Schedule specifies the execution of a single or repeated series of
Actions. An Action is a Task with additional specific parameters. Actions. An Action is a Task with additional specific parameters.
Each Schedule contains basically two elements: a list of Actions to Each Schedule contains basically two elements: an ordered list of
be executed and an Event object for the Schedule. The Schedule Actions to be executed and an Event object for the Schedule. The
states what Actions to run (with what configuration) and when to run Schedule states what Actions to run (with what configuration) and
the Actions. when to run the Actions.
Multiple Actions in the list of a single Measurement Schedule will be Multiple Actions contained as an ordered list of a single Measurement
executed according to the execution mode of the Schedule. In Schedule will be executed according to the execution mode of the
sequential mode, Actions will be executed sequentially and in Schedule. In sequential mode, Actions will be executed sequentially
parallel mode, all Actions will be executed concurrently. In and in parallel mode, all Actions will be executed concurrently. In
pipelined mode, data produced by one Action is passed to the pipelined mode, data produced by one Action is passed to the
subsequent Action. Actions in different Schedules execute in subsequent Action. Actions contained in different Schedules execute
parallel with such conflicts being reported in the Reporting in parallel with such conflicts being reported in the Reporting
Information where necessary. If two or more Schedules have the same Information where necessary. If two or more Schedules have the same
start time, then the two will execute in parallel. There is no start time, then the two will execute in parallel. There is no
mechanism to prioritise one schedule over another or to mutex mechanism to prioritise one schedule over another or to mutex
scheduled tasks. scheduled tasks.
As well as specifying which Actions to execute, the Schedule also As well as specifying which Actions to execute, the Schedule also
specifies how to link the data outputs from each Action to other specifies how to link the data outputs from each Action to other
Schedules. Specifying this within the Schedule allows the highest Schedules. Specifying this within the Schedule allows the highest
level of flexibility since it is even possible to send the output level of flexibility since it is even possible to send the output
from different executions of the same Task Configuration to different from different executions of the same Task Configuration to different
skipping to change at page 26, line 4 skipping to change at page 28, line 36
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
Schedule. Schedule.
3.7.1. Definition of ma-schedule-obj 3.7.1. Definition of ma-schedule-obj
object { object {
string ma-schedule-name; string ma-schedule-name;
ma-event-obj ma-schedule-event; ma-event-obj ma-schedule-event;
ma-action-obj ma-schedule-actions<0..*>; ma-action-obj ma-schedule-actions<0..*>;
string ma-schedule-execution-mode; string ma-schedule-execution-mode;
[string ma-schedule-suppression-tags<0..*>;]
} ma-schedule-obj; } ma-schedule-obj;
The ma-schedule-obj is the main scheduling object. It consists of The ma-schedule-obj is the main scheduling object. It consists of
the following elements: the following elements:
ma-schedule-name: A name uniquely identifying a scheduling ma-schedule-name: A name uniquely identifying a
object. scheduling object.
ma-schedule-event: An event object indicating when the ma-schedule-event: An event object indicating when the
schedule fires. schedule fires.
ma-schedule-actions: A possibly empty list of actions to ma-schedule-actions: A possibly empty ordered list of
invoke when the schedule fires. actions to invoke when the schedule
fires.
ma-schedule-execution-mode: Indicates whether the actions should be ma-schedule-execution-mode: Indicates whether the actions should be
executed sequentially, in parallel, or in executed sequentially, in parallel, or
a pipelined mode (where data produced by in a pipelined mode (where data
one action is passed to the subsequent produced by one action is passed to the
action). subsequent action). The default
execution mode is pipelined.
ma-schedule-suppression-tags: An optional unordered set of
suppression tags.
3.7.2. Definition of ma-action-obj 3.7.2. Definition of ma-action-obj
object { object {
string ma-action-name; string ma-action-name;
string ma-action-task-name; string ma-action-config-task-name;
[ma-option-obj ma-action-task-options<0..*>]; [ma-option-obj ma-action-task-options<0..*>;]
[string ma-action-destinations<0..*>;] [string ma-action-destinations<0..*>;]
[string ma-action-suppression-tags<0..*>;]
} ma-action-obj; } ma-action-obj;
The ma-action-obj models an a task together with its schedule The ma-action-obj models an a task together with its schedule
specific options and destination tasks. It consists of the following specific task options and destination tasks. It consists of the
elements: following elements:
ma-action-name: A name uniquely identifying an action of a ma-action-name: A name uniquely identifying an action
scheduling object. of a scheduling object.
ma-action-task-name: A name identifying the task to be invoked ma-action-config-task-name: A name identifying the configured task
by the action. to be invoked by the action.
ma-action-task-options: An optional and possibly empty list of ma-action-task-options: An optional and possibly empty ordered
options (name-value pairs) that are passed list of options (name-value pairs) that
to the task by appending them to the are passed to the task by appending
options configured for the task object. them to the options configured for the
task object.
ma-action-destinations: An optional and possibly empty list of ma-action-destinations: An optional and possibly empty
names of destination schedules that consume unordered set of names of destination
output produced by this action. schedules that consume output produced
by this action.
ma-action-suppression-tags: An optional unordered set of
suppression tags.
3.8. Common Objects: Channels 3.8. Common Objects: Channels
A Channel defines a bi-directional communication channel between the A Channel defines a bi-directional communication channel between the
MA and a Controller or Collector. Multiple Channels can be defined MA and a Controller or Collector. Multiple Channels can be defined
to enable results to be split or duplicated across different to enable results to be split or duplicated across different
Collectors. Collectors.
Each Channel contains the details of the remote endpoint (including Each Channel contains the details of the remote endpoint (including
location and security credential information such as the location and security credential information such as the
skipping to change at page 30, line 8 skipping to change at page 33, line 8
In addition the Task Configuration may optionally also be given a In addition the Task Configuration may optionally also be given a
Measurement Cycle ID. The purpose of this ID is to easily identify a Measurement Cycle ID. The purpose of this ID is to easily identify a
set of measurement results that have been produced by Measurement set of measurement results that have been produced by Measurement
Tasks with comparable Options. This ID could be manually incremented Tasks with comparable Options. This ID could be manually incremented
or otherwise changed when an Option change is implemented which could or otherwise changed when an Option change is implemented which could
mean that two sets of results should not be directly compared. mean that two sets of results should not be 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;
uri ma-task-registry-entries<1..*>; ma-metric-registry-obj ma-task-metrics<0..*>;
[ma-option-obj ma-task-options<0..*>]; [ma-option-obj ma-task-options<0..*>;]
[boolean ma-task-suppress-by-default;] [boolean ma-task-suppress-by-default;]
[string ma-task-cycle-id;] [string ma-task-cycle-id;]
} ma-task-obj; } ma-task-obj;
The ma-task-obj defines a task that can be invoked. A task can be The ma-task-obj defines a configured task that can be invoked as part
referenced by its name and it contains a set of URIs to link to a of an action. A configured task can be referenced by its name and it
metrics registry or a local specification of the task. Options allow contains a set of URIs to link to a metrics registry or a local
the configuration of task parameter (in the form of name-value specification of the task. Options allow the configuration of task
pairs). The ma-task-obj consists of the following elements: parameters (in the form of name-value pairs). The ma-task-obj
consists of the following elements:
ma-task-name: A name uniquely identifying a task ma-task-name: A name uniquely identifying a
object. configured task object.
ma-task-registry-entries: A possibly empty list of URIs ma-task-metrics: A possibly empty unordered set of
identifying the metrics a measurement registered metrics and associated roles
task supports. the configured measurement task will
use.
ma-task-options: A optional and possibly empty list of ma-task-options: An optional and possibly empty ordered
options (name-value pairs) that are list of options (name-value pairs) that
passed to the task. are passed to the configured task.
ma-task-suppress-by-default: A boolean flag indicating whether the ma-task-suppress-by-default: A boolean flag indicating whether this
task will be suppressed by default. configured task will be suppressed by
The default value of the flag is true. default. The default value of the flag
is true.
ma-task-cycle-id: An optional measurement cycle ma-task-cycle-id: An optional measurement cycle
identifier that can be used to identify identifier that can be used to identify
set of measurement results that have set of measurement results that have
been produced by tasks with comparable been produced by this configured tasks
options. with comparable options.
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:
skipping to change at page 31, line 20 skipping to change at page 34, line 25
o Channel is used to specify the details of an endpoint for Control o Channel is used to specify the details of an endpoint for Control
or Reporting Task communications and is detailed elsewhere in this or Reporting Task communications and is detailed elsewhere in this
document. The common option name for specifying the channel is document. The common option name for specifying the channel is
"channel". "channel".
o Role is used to specify which Role the task should be performing o Role is used to specify which Role the task should be performing
(as defined in the registry) if multiple roles are available. The (as defined in the registry) if multiple roles are available. The
common option name for specifying the role is "role". common option name for specifying the role is "role".
3.10. Common Objects: Event Information 3.10. Common Objects: Registry Information
Tasks and actions can be associated with entries in a metrics
registry. A metric is identified by a URI and a metric may have
associated roles.
3.10.1. Definition of ma-metric-registry-obj
object {
uri ma-metric-registry-entry;
[string ma-metric-registry-role<0..*>;]
} ma-metric-registry-obj;
The ma-metric-registry-obj defines a registered metric and the
associated role(s). The ma-metric-registry-obj consists of the
following elements:
ma-metric-registry-entry: A URI identifying a metric in a metric
registry.
ma-metric-registry-role: An optional and possibly empty unordered
set of roles for the metric.
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 five different forms. Additional forms may can initially take one of five different forms. Additional forms may
be defined later in order to bind the execution of schedules to be defined later in order to bind the execution of schedules to
additional events. The initially defined five Event forms are: additional events. The initially defined five 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 milliseconds an interval time defined in milliseconds
2. Calendar Timing: Emits multiple events according to a calendar 2. Calendar Timing: Emits multiple events according to a calendar
skipping to change at page 32, line 14 skipping to change at page 35, line 42
Startup events are only created on device startup, not when a new Startup events are only created on device startup, not when a new
Instruction is transferred to the MA. If scheduled task execution is Instruction is transferred to the MA. If scheduled task execution is
desired both on the transfer of the Instruction and on device restart desired both on the transfer of the Instruction and on device restart
then both the Immediate and Startup timing needs to be used in then both the Immediate and Startup timing needs to be used in
conjunction. conjunction.
The datetime format used for all elements in the information model The datetime format used for all elements in the information model
MUST conform to RFC 3339 [RFC3339]. MUST conform to RFC 3339 [RFC3339].
3.10.1. Definition of ma-event-obj 3.11.1. Definition of ma-event-obj
object { object {
string ma-event-name; string ma-event-name;
union { union {
ma-periodic-obj ma-timing-periodic; ma-periodic-obj ma-timing-periodic;
ma-calendar-obj ma-timing-calendar; ma-calendar-obj ma-timing-calendar;
ma-one-off-obj ma-timing-one-off; ma-one-off-obj ma-timing-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;
} }
[int ma-event-random-spread;] [int ma-event-random-spread;]
} ma-event-obj; } ma-event-obj;
skipping to change at page 33, line 12 skipping to change at page 37, line 5
ma-timing-immediate: The ma-event-immediate is present for ma-timing-immediate: The ma-event-immediate is present for
immediate event objects. immediate event objects.
ma-timing-startup: The ma-event-startup is present for startup ma-timing-startup: The ma-event-startup is present for startup
event objects. event objects.
ma-timing-random-spread: The optional ma-event-random-spread adds a ma-timing-random-spread: The optional ma-event-random-spread adds a
random delay defined in milliseconds to the random delay defined in milliseconds to the
event object. event object.
3.10.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.
skipping to change at page 33, line 39 skipping to change at page 37, line 32
ma-periodic-end: The optional date and time at which ma-periodic-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
indefinite. indefinite.
ma-periodic-interval: The interval defines the time in ma-periodic-interval: The interval defines the time in
milliseconds between two consecutive starts milliseconds between two consecutive starts
of tasks. of tasks.
3.10.3. Definition of ma-calendar-obj 3.11.3. Definition of ma-calendar-obj
Calendar Timing supports the routine execution of Actions at specific Calendar Timing supports the routine execution of Actions at specific
times and/or on specific dates. It can support more flexible timing times and/or on specific dates. It can support more flexible timing
than Periodic Timing since the execution of Actions does not have to than Periodic Timing since the execution of Actions does not have to
be uniformly spaced. For example a Calendar Timing could support the be uniformly spaced. For example a Calendar Timing could support the
execution of a Measurement Task every hour between 6pm and midnight execution of a Measurement Task every hour between 6pm and midnight
on weekdays only. on weekdays only.
Calendar Timing is also required to perform measurements at Calendar Timing is also required to perform measurements at
meaningful times in relation to network usage (e.g., at peak times). meaningful times in relation to network usage (e.g., at peak times).
skipping to change at page 35, line 32 skipping to change at page 39, line 26
seconds of an hour. If not present, it seconds of an hour. If not present, it
defaults to no seconds. defaults to no seconds.
ma-calendar-timezone-offset: The optional timezone offest in hours. ma-calendar-timezone-offset: The optional timezone offest in hours.
If not present, it defaults to the If not present, it defaults to the
system's local timezone. system's local timezone.
If a day of the month is specified that does not exist in the month If a day of the month is specified that does not exist in the month
(e.g., 29th of Feburary) then those values are ignored. (e.g., 29th of Feburary) then those values are ignored.
3.10.4. Definition of ma-one-off-obj 3.11.4. Definition of ma-one-off-obj
object { object {
datetime ma-one-off-time; datetime ma-one-off-time;
} ma-one-off-obj; } ma-one-off-obj;
The ma-one-off-obj timing object specifies a fixed point in time. The ma-one-off-obj timing object specifies a fixed point in time.
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.10.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.10.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 using an ma-startup-obj are started at MA initiation time. Schedules or suppressions using an ma-startup-obj are started at MA
initialization time.
3.11.7. Definition of ma-controller-lost-obj
object {
// empty
} ma-controller-lost-obj;
The ma-controller-lost-obj event object has no further information
elements. The ma-controller-lost-obj indicates that connectivity to
the controller has been lost. This is determined by a timer started
after each successful contact with a controller. When the timer
reaches the controller-timeout (measured in seconds), an ma-
controller-lost-obj event is generated. This event may be used to
start a suppression.
3.11.8. Definition of ma-controller-ok-obj
object {
// empty
} ma-controller-ok-obj;
The ma-controller-ok-obj event object has no further information
elements. This ma-controller-ok-obj event indicates that
connectivity to the controller has been established again after it
was lost. This is commonly used to end a suppression.
4. IANA Considerations 4. 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 5. Security Considerations
skipping to change at page 37, line 11 skipping to change at page 41, line 29
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 6. 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 work in part on the Leone research project, which Schoenwaelder worked in part on the Leone research project, which
receives 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
Excellence project (ICT-318488) supported by the European Commission
under its Seventh Framework Programme.
7. References 7. References
7.1. Normative References 7.1. Normative References
[I-D.ietf-lmap-framework]
Eardley, P., Morton, A., Bagnulo, M., Burbridge, T.,
Aitken, P., and A. Akhter, "A framework for Large-Scale
Measurement of Broadband Performance (LMAP)", draft-ietf-
lmap-framework-12 (work in progress), March 2015.
[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, March 1997. Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
Internet: Timestamps", RFC 3339, July 2002. Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
<http://www.rfc-editor.org/info/rfc3339>.
[RFC7594] Eardley, P., Morton, A., Bagnulo, M., Burbridge, T.,
Aitken, P., and A. Akhter, "A Framework for Large-Scale
Measurement of Broadband Performance (LMAP)", RFC 7594,
DOI 10.17487/RFC7594, September 2015,
<http://www.rfc-editor.org/info/rfc7594>.
7.2. Informative References 7.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-02 (work in progress), February 2015. ippm-metric-registry-05 (work in progress), October 2015.
[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-00 (work in LMAP Measurement Agents", draft-ietf-lmap-yang-01 (work in
progress), April 2015. progress), July 2015.
[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, January Information Models and Data Models", RFC 3444, DOI 10
2003. .17487/RFC3444, January 2003,
<http://www.rfc-editor.org/info/rfc3444>.
Appendix A. Open Issues [RFC7398] Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and
A. Morton, "A Reference Path and Measurement Points for
Large-Scale Measurement of Broadband Performance", RFC
7398, DOI 10.17487/RFC7398, February 2015,
<http://www.rfc-editor.org/info/rfc7398>.
o Should the execution-mode have a default? If so, which one? Appendix A. Non-editorial Changes since -06
o Is the current handling of lost connectivity to the controller o The default execution mode is pipelined (LI12)
sufficient?
o There should be status objects for schedules and actions instead o Added text to define which action consumes data in sequential,
of tasks (since what is being invoked are schedules and actions, pipelines, and parallel execution mode (LI11)
not configured tasks). The status objects should also indicate
whether a schedule is enabled, suppressed, disabled (e.g. due to o Added ma-config-measurement-point, ma-report-measurement-point,
loss of controller connectivity), or disabled for any other and ma-config-report-measurement-point to configure and report the
reason. measurement point (LI10)
o Turned ma-suppression-obj into a list that uses a start event and
a stop event to define the start and end of suppression; this
unifies the handling of suppression and loss of controller
connectivity (LI09)
o Added ma-controller-lost-obj and ma-controller-ok-obj event
objects (LI09)
o Added ma-status-schedule-obj to report the status of a schedule
and refactored ma-task-status-obj into ma-status-action-obj to
report the status of an action (LI07, LI08)
o Introduced a common ma-metric-registry-obj that identifies a
metric and a set of associated roles and added this object to
expose metric capabilities and to support the configuration of
metrics and to report the metrics used (LI06)
o Introduced ma-capability-obj and ma-capability-task-obj to expose
the capabilities of a measurement agent (LI05)
o Use 'ordered list' or 'unordered set' instead of list, collection,
etc. (LI02)
o Clarification that Actions are part of a Schedule (LI03)
o Deleted terms that are not strictly needed (LI04)
Appendix B. Non-editorial Changes since -05 Appendix B. 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.
 End of changes. 133 change blocks. 
357 lines changed or deleted 586 lines changed or added

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