draft-ietf-lmap-information-model-00.txt   draft-ietf-lmap-information-model-01.txt 
Network Working Group T. Burbridge Network Working Group T. Burbridge
Internet-Draft P. Eardley Internet-Draft P. Eardley
Intended status: Standards Track British Telecom Intended status: Standards Track BT
Expires: August 18, 2014 M. Bagnulo Expires: December 28, 2014 M. Bagnulo
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
J. Schoenwaelder J. Schoenwaelder
Jacobs University Bremen Jacobs University Bremen
February 14, 2014 June 26, 2014
Information Model for Large-Scale Measurement Platforms (LMAP) Information Model for Large-Scale Measurement Platforms (LMAP)
draft-ietf-lmap-information-model-00 draft-ietf-lmap-information-model-01
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.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
Status of this Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 August 18, 2014. This Internet-Draft will expire on December 28, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
skipping to change at page 2, line 19 skipping to change at page 2, line 22
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. LMAP Information Model . . . . . . . . . . . . . . . . . . . . 4 3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 4
3.1. Information Structure . . . . . . . . . . . . . . . . . . 4 3.1. Information Structure . . . . . . . . . . . . . . . . . . 4
3.2. Pre-Configuration Information . . . . . . . . . . . . . . 5 3.2. Pre-Configuration Information . . . . . . . . . . . . . . 8
3.3. Configuration Information . . . . . . . . . . . . . . . . 6 3.3. Configuration Information . . . . . . . . . . . . . . . . 9
3.4. Instruction Information . . . . . . . . . . . . . . . . . 7 3.4. Instruction Information . . . . . . . . . . . . . . . . . 10
3.5. MA to Controller Information . . . . . . . . . . . . . . . 11 3.5. Logging Information . . . . . . . . . . . . . . . . . . . 13
3.6. Capability and Status Information . . . . . . . . . . . . 13 3.6. Capability and Status Information . . . . . . . . . . . . 15
3.7. Reporting Information . . . . . . . . . . . . . . . . . . 14 3.7. Reporting Information . . . . . . . . . . . . . . . . . . 16
3.8. Channels . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.8. Schedules . . . . . . . . . . . . . . . . . . . . . . . . 18
3.9. Timing Information . . . . . . . . . . . . . . . . . . . . 16 3.9. Channels . . . . . . . . . . . . . . . . . . . . . . . . 20
3.9.1. Periodic Timing . . . . . . . . . . . . . . . . . . . 17 3.10. Task Configurations . . . . . . . . . . . . . . . . . . . 21
3.9.2. Calendar Timing . . . . . . . . . . . . . . . . . . . 17 3.11. Timing Information . . . . . . . . . . . . . . . . . . . 22
3.9.3. One-Off Timing . . . . . . . . . . . . . . . . . . . . 18 3.11.1. Periodic Timing . . . . . . . . . . . . . . . . . . 23
3.9.4. Immediate Timing . . . . . . . . . . . . . . . . . . . 18 3.11.2. Calendar Timing . . . . . . . . . . . . . . . . . . 23
3.9.5. Timing Randomness . . . . . . . . . . . . . . . . . . 18 3.11.3. One-Off Timing . . . . . . . . . . . . . . . . . . . 24
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 3.11.4. Immediate Timing . . . . . . . . . . . . . . . . . . 24
5. Security Considerations . . . . . . . . . . . . . . . . . . . 19 3.11.5. Startup Timing . . . . . . . . . . . . . . . . . . . 25
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 19 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5. Security Considerations . . . . . . . . . . . . . . . . . . . 25
7.1. Normative References . . . . . . . . . . . . . . . . . . . 20 6. Appendix: JSON Example . . . . . . . . . . . . . . . . . . . 25
7.2. Informative References . . . . . . . . . . . . . . . . . . 20 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 34
8.1. Normative References . . . . . . . . . . . . . . . . . . 34
8.2. Informative References . . . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34
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 3, line 30 skipping to change at page 3, line 30
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
[I-D.ietf-lmap-framework]. [I-D.ietf-lmap-framework].
A large-scale measurement platform involves basically three A large-scale measurement platform involves basically three
protocols, namely, a Control protocol between a Controller and the protocols, namely, a Control protocol between a Controller and the
MAs, a Report protocol between the MAs and the Collector(s) and MAs, a Report protocol between the MAs and the Collector(s) and
several measurement protocols between the MAs and Measurement Peers several measurement protocols between the MAs and Measurement Peers
(MPs), used to actually perform the measurements. In addition some (MPs), used to actually perform the measurements. In addition some
information is required to be provisioned in the MA prior to any information is required to be configured on the MA prior to any
communication with the initial Controller. communication with the initial Controller.
This document defines the information model for both the Control and This document defines the information model for both the Control and
the Report protocol along with pre-configuration information that is the Report protocol along with pre-configuration information that is
required before communicating with the Controller, broadly named as required before communicating with the Controller, broadly named as
the LMAP Information Model (or LMAP IM for short). The measurement the LMAP Information Model. The measurement protocols are out of the
protocols are out of the scope of this document. scope of this document.
As defined in [RFC3444], the LMAP IM defines the concepts involved in As defined in [RFC3444], the LMAP IM defines the concepts involved in
a large-scale measurement platform at a high level of abstraction, a large-scale measurement platform at a high level of abstraction,
independent of any specific implementation or actual protocol used to independent of any specific implementation or actual protocol used to
exchange the information. It is expected that the proposed exchange the information. It is expected that the proposed
information model can be used with different protocols in different information model can be used with different protocols in different
measurement platform architectures and across different types of MA measurement platform architectures and across different types of MA
devices (e.g., home gateway, smartphone, PC, router). devices (e.g., home gateway, smartphone, PC, router).
The definition of an Information Model serves a number of purposes: The definition of an Information Model serves a number of purposes:
1. To guide the standardisation of one or more Control and Report 1. To guide the standardisation of one or more Control and Report
protocol and data model implementations protocol and data model implementations
2. To enable high-level inter-operability between different Control 2. To enable high-level inter-operability between different Control
and Report protocols by facilitating translation between their and Report protocols by facilitating translation between their
respective data models such that a Controller could instruct sub- respective data models such that a Controller could instruct sub-
populations of MAs using different protocols populations of MAs using different protocols
3. To from agreement of what information needs to be held by an MA 3. To form agreement of what information needs to be held by an MA
and passed over the Control and Report interfaces and support the and passed over the Control and Report interfaces and support the
functionality described in the LMAP framework functionality described in the LMAP framework
4. Enable existing protocols and data models to be assessed for 4. Enable existing protocols and data models to be assessed for
their suitability as part of a large-scale measurement system their suitability as part of a large-scale measurement system
2. Notation 2. Notation
This document use an adaptation of the C-style struct notation to This document use an object-oriented programming-like notation to
define the fields (names/values) of the objects of the information define the parameters (names/values) of the objects of the
model. An optional field is enclosed by [ ], and an array is information model. An optional field is enclosed by [ ], and an
indicated by two numbers in angle brackets, <m..n>>, where m array is indicated by two numbers in angle brackets, <m..n>>, where m
indicates the minimal number of values, and n is the maximum. The indicates the minimal number of values, and n is the maximum. The
symbol * for n means no upper bound. symbol * for n means no upper bound.
3. LMAP Information Model 3. LMAP Information Model
3.1. Information Structure 3.1. Information Structure
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 [I-D.ietf-lmap-framework]. As such, some subsets
of this information model are applicable to the measurement of this information model are applicable to the measurement
Controller, Collector and systems that pre-configure the Measurement Controller, Collector and systems that pre-configure the Measurement
Agent. The information described in these models will be transmitted Agent. The information described in these models will be transmitted
across the protocols and interfaces between the Measurement Agent and by protocols using interfaces between the Measurement Agent and such
such systems according to a Data Model. 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 an initial Controller and whether the device is communicate with a Controller and whether the device is enabled
enabled to participate as an MA. to participate as an MA.
2. Configuration Information. Information delivered to the MA on 2. Configuration Information. Update of the pre-configuration
registration with a Controller or updated during a later information during the registration of the MA or subsequent
communication, in particular detailing how to retrieve communication with the Controller, along with the configuration
measurement and reporting instruction information from a of further parameters about the MA (rather than the Tasks it
Controller along with information specifically about the MA. should perform) that were not mandatory for the initial
communication between the MA and a Controller.
3. Instruction Information. Information that is received by the MA 3. Instruction Information. Information that is received by the MA
from the Controller pertaining to the measurement and reporting from the Controller pertaining to the Tasks that should be
configuration. This includes measurement configuration, report executed. This includes the task execution Schedules (other than
channel configuration, measurement schedules and measurement the Controller communication Schedule supplied as
suppression information. (pre)configuration information) and related information such as
the Task Configuration, communication Channels to Collectors and
schedule Timing information. It also inlcudes Task Suppression
information that is used to over-ride normal Task execution
during emergency situations.
4. MA to Controller Information. Information transmitted from the 4. Logging Information. Information transmitted from the MA to the
MA to the Controller detailing the results of any configuration Controller detailing the results of any configuration operations
operations along with error and status information from the along with error and status information from the operation of the
operation of the MA. MA.
5. Capability and Status Information. Information on the general 5. Capability and Status Information. Information on the general
status and capabilities of the MA. For example, the set of status and capabilities of the MA. For example, the set of
measurements that are supported on the device. measurements that are supported on the device.
6. Reporting Information. Information transmitted from the MA to 6. Reporting Information. Information transmitted from the MA to
the Collector including measurement results and the context in the Collector including measurement results and the context in
which they were conducted. which they were conducted.
In addition the MA may hold further information not described herein, In addition the MA may hold further information not described herein,
and which may be optionally transferred to or from other systems and which may be optionally transferred to or from other systems
including the Controller and Collector. One example of information including the Controller and Collector. One example of information
in this category is subscriber or line information that may be in this category is subscriber or line information that may be
reported by the MA as optional fields in the reporting communication extracted by a task and reported by the MA in the reporting
to a Collector. communication to a Collector.
It should also be noted that the MA may be in communication with It should also be noted that the MA may be in communication with
other management systems which may be responsible for configuring and other management systems which may be responsible for configuring and
retrieving information from the MA device. Such systems, where retrieving information from the MA device. Such systems, where
available, can perform an important role in transferring the pre- available, can perform an important role in transferring the pre-
configuration information to the MA or enabling/disabling the configuration information to the MA or enabling/disabling the
measurement functionality of the MA. measurement functionality of the MA.
The Information Model is divided into sub-sections for a number of The Information Model is divided into sub-sections for a number of
reasons. Firstly the grouping of information facilitates reader reasons. Firstly the grouping of information facilitates reader
understanding. Secondly, the particular groupings chosen are understanding. Secondly, the particular groupings chosen are
expected to map to different protocols or different transmissions expected to map to different protocols or different transmissions
within those protocols. within those protocols.
The granularity of data transmitted in each operation of the Control
and Report Protocols is not dictated by the Information Model. For
example, the Instruction object may be delivered in a single
operation. Alternatively, Schedules and Task Configurations may be
separated or even each Schdule/Task Configuration may be delivered
individually. Similarly the Information Model does not dictate
whether data is read, write, or read/write. For example, some
Control Protocols may have the ability to read back Configuration and
Instruction information which have been previosuly set on the MA.
Lastly, while some protocols may simply overwrite information (for
example refreshing the entire Instruction Information), other
protocols may have the ability to update or delete selected items of
information.
The information in these six sections is captured by a number of
common information objects. These objects are also described later
in this document and comprise of:
1. Schedules. A set of Schedules tell the MA to do something.
Without a Schedule no Task (from a measurement to reporting or
communicating with the Controller) is ever executed. Schedules
are used within the Instruction to specify what tasks should be
performed, when, and how to direct their results. A Schedule is
also used within the pre-Configuration and Configuration
information in order to execute the Task or Tasks required to
communicate with the Controller.
2. Channels. A set of Channel objects are used to communicate with
a number of endpoints (i.e. the Controller and Collectors). Each
Channel object contains the information required for the
communication with a single endpoint such as the target location
and security details. Channels are referenced from within
Schedules in order to say how Tasks should communicate.
3. Task Configurations. A set of Task Configurations is used to
configure the Tasks that are run by the MA. This includes the
registry entry for the Task and any configuration parameters.
Task Configurations are referenced from a Schedule in order to
specify what Tasks the MA should execute.
4. Timings. A set of Timing objects that can be referenced from the
Schedules. Each Schedule always references exactly one Timing
object. A Timing object specfies either a singleton or series of
time events. They are used to indicate when Tasks should be
executed.
The following diagram illustrates the structure in which these common
information objects are referenced. The references are achieved by
each object (Channel, Task Configuration, Timing) being given a short
text name that is used by other objects. The objects shown in
brackets are part of the internal object structure of a Schedule.
Schedule
|----------> Timing
|----------> (Scheduled Tasks)
|----------> Task Configuration
|----------> (Task datasets)
|----------> Channels
|----------> Ouput Tasks
It should be clear that the general capability of an MA is simply to
execute Schedules. Every other action of an MA is implemented as a
Task. As such, these actions are configured through Task
Configurations and executed according to the Timing referenced by the
Schedule in which they appear. Tasks can implement a variety of
different types of actions. While in terms of the Information Model,
all Tasks have the same information, it can help conceptually to
think of different Task categories:
1. Measurement Tasks
A. Active Measurement Tasks implement an active measurement
protocol to a remote network host
B. Passive Measurement Tasks analyse traffic passing through the
MA device or traffic that may be eavesdropped
C. Data Capture Tasks capture and analyse passive information
stored on the MA device such as counters and device/network
status information
2. Data Transfer Tasks
A. Reporting Tasks report the results or Measurement Tasks to
Collectors
B. Control Task(s) implement the Control Protocol and
communicate with the Controller. Depending on the Control
Protocol this 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
Measurement Tasks locally on the MA
4. Data Management Tasks may exist to clean-up, filter or compress
data on the MA such as Measurement Task results
3.2. Pre-Configuration Information 3.2. 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. a Controller during the registration process. The pre-configuration
information is a subset of the Configuration Information along with
some parameters that are not under the control of the LMAP framework
(such as the the device identifier and device security credentials).
This pre-configuration information needs to include a URL of the This pre-configuration information needs to include a URL of the
initial Controller where configuration information can be retrieved initial Controller where configuration information can be retrieved
along with the security information required for the communication along with the security information required for the communication
including the certificate of the Controller (or the certificate of including the certificate of the Controller (or the certificate of
the Certification Authority which was used to issue the certificate the Certification Authority which was used to issue the certificate
for the Controller) as well as the timing for that communication. for the Controller). All this is expressed as a Channel. Multiple
All this is expressed as the Instruction Channel. As part of the channels may be given to the Controller (such as over different
Instruction Channel, the MA's security information is configured interfaces or network protocols).
which can be either a certificate and a private key or a password,
depending on the security solution used.
The MA may already be pre-configured with an MA ID, or may use a Where the MA pulls information from the Controller, the Pre-
Device ID in the initial Controller contact before it is assigned an Configuration Information also needs to contain the timing of the
MA ID. The Device ID may be a MAC address or some other device communication with the Controller as well as the nature of the
identifier expressed as a URN. communication itself (such as the protocol and data to be
transfered). The timing is given as a Schedule that executes the
Task(s) responsible for communication with the Controller. It is
this Task (or Tasks) that implement the Control protocol between the
MA and the Controller. The Task(s) may take additional parameters in
which case a Task Configuration can also be included.
Even where information is pushed to the MA from the Controller
(rather than pulled by the MA), a Schedule still needs to be
supplied. In this case the Schedule will simply execute a Controller
listener task when the MA is started. A Channel is still required
for the MA to establish secure communication with the Controller.
It can be seen that these Channels, Schedules and Task Configurations
for the initial MA-Controller communication are no different in terms
of the Information Model to any other Channel, Schedule or Task
Configuration that might execute a Measurement Task or report the
measurement results (as described later).
The MA may be pre-configured with an MA ID, or may use a Device ID in
the initial Controller contact before it is assigned an MA ID. The
Device ID may be a MAC address or some other device identifier
expressed as a URN.
Detail of the information model elements: Detail of the information model elements:
object { // MA pre-configuration minimal information to communicate initially with Controller
ma-channel-obj ma-instruction-channel;
ma-channel-obj ma-ma-to-controller-channel;
[urn ma-device-id;]
[uuid ma-agent-id;]
} ma-preconfig-obj;
The detail of the Channel object is described later since it is object {
common to several parts of the information model. [uuid ma-agent-id;]
ma-task-obj ma-control-tasks<0..*>;
ma-channel-obj ma-control-channels<1..*>;
ma-schedule-obj ma-control-schedules<0..*>;
[urn ma-device-id;]
credentials ma-credentials;
} ma-config-obj;
The detail of the Channel and Schedule objects are described later
since they are common to several parts of the information model.
3.3. Configuration Information 3.3. 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, the choice of Controller and details for the timing the Controller (or vice-versa), the choice of Controller, details for
of communication with the Controller can be changed (as captured by the timing of communication with the Controller or parameters for the
the Instruction Channel information object). For example the pre- communication Task(s) can be changed (as captured by the Channels,
configured Controller may be replaced with a specific Controller that Schedules and Task Configurations objects). For example the pre-
is more appropriate to the MA device type, location or configured Controller (specified as a Channel or Channels) may be
characteristics of the network (e.g. access technology type or replaced with a specific Controller that is more appropriate to the
broadband product). The initial communication timing object may be MA device type, location or characteristics of the network (e.g.
replaced with one more relevant to routine communications between the access technology type or broadband product). The initial
MA and the Controller. communication Schedule may be replaced with one more relevant to
routine communications between the MA and the Controller.
While some Control protocols and uses may only use a single Schedule,
other protocols and uses may uses several Schedules (and related data
transfer Tasks) to update the Configuration Information, transfer the
Instruction Information, transfer Capability and Status Information
and send other information to the Controller such as log or error
notifications. Multiple Channels may be used to communicate with the
Controller over multiple interfaces (e.g. to send logging information
over a different network).
In addition the MA will be given further items of information that In addition the MA will be given further items of information that
relate specifically to the MA rather than the measurements it is to relate specifically to the MA rather than the measurements it is to
conduct or how to report results. The assignment of an ID to the MA conduct or how to report results. The assignment of an ID to the MA
is mandatory. Optionally a Group ID may also be given which is mandatory. Optionally a Group ID may also be given which
identifies a group of interest to which that MA belongs. For example identifies a group of interest to which that MA belongs. For example
the group could represent an ISP, broadband product, technology, the group could represent an ISP, broadband product, technology,
market classification, geographic region, or a combination of market classification, geographic region, or a combination of
multiple such characteristics. Where the Measurement Group ID is set multiple such characteristics. Where the Measurement Group ID is set
an additional flag (the Report MA ID flag) is required to control an additional flag (the Report MA ID flag) is required to control
whether the Measurement Agent ID is also to be reported. The whether the Measurement Agent ID is also to be reported. The
reporting of a Group ID without the MA ID allows the MA to remain reporting of a Group ID without the MA ID allows the MA to remain
anonymous, which may be particularly useful to prevent tracking of anonymous, which may be particularly useful to prevent tracking of
mobile MA devices. mobile MA devices.
Optionally an MA can also be configured to stop Measurement Tasks if Optionally an MA can also be configured to stopexecuting any
the Controller is unreachable. This can be used as a fail-safe to Instruction Schedule if the Controller is unreachable. This can be
stop Measurement Tasks being conducted when there is doubt that the used as a fail-safe to stop Measurement and other Tasks being
Instruction Information is still valid. This is simply represented conducted when there is doubt that the Instruction Information is
as a number of failed communication attempts before Measurement Tasks still valid. This is simply represented as a time window in
are suspended. The appropriate number of failed attempts will depend milliseconds since the last communication with the Controller after
on the timing of the Instruction Channel and the duration for which which Instruction Schedules are to be suspended. The appropriate
the system is willing to tolerate continued operation with vaue of the time window will depend on the specified communication
potentially stale Instruction Information. Schedule with the Controller and the duration for which the system is
willing to tolerate continued operation with potentially stale
Instruction Information.
Detail of the additional information model elements: While pre-configuration is persistent upon device reset or power
cycle due to its very nature, the persistency of the addtional
configuration information may be control protocol dependent. Some
protocols may assume that reset devices will revert back to their
pre-configuration state, while other protocols may assume that all
configuration and instruction information is held in persistent
storage.
Detail of the additional and updated information model elements:
// MA Configuration
object { object {
uuid ma-agent-id; uuid ma-agent-id;
ma-channel-obj ma-instruction-channel; [ma-task-obj ma-control-tasks<0..*>;]
ma-channel-obj ma-control-channels<1..*>;
[mas-schedule-obj ma-control-schedules<0..*>];
[urn ma-device-id;]
credentials ma-credentials;
[string ma-group-id;] [string ma-group-id;]
[boolean ma-report-ma-id-flag;] [boolean ma-report-ma-id-flag;]
[int ma-instruction-channel-failure-threshold;] [int ma-control-channel-failure-threshold;]
} ma-config-obj; } ma-config-obj;
3.4. Instruction Information 3.4. Instruction Information
The Instruction information model has four sub-elements: The Instruction information model has four sub-elements:
1. Measurement Task Configurations 1. Instruction Task Configurations
2. Report Channels 2. Report Channels
3. Measurement Schedules 3. Instruction Schedules
4. Suppression
4. Measurement Suppression
Conceptually each Measurement Task Configuration defines the
parameters of a Measurement Task 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 particular time (this is done
by a Measurement Schedule).
Example: A Measurement Task Configuration may configure a single
Measurement Task for measuring UDP latency. The Measurement Task
Configuration could define the destination port and address for
the measurement as well as the duration, internal packet timing
strategy and other parameters (for example a stream for one hour
and sending one packet every 500 ms). It may also define the
output type and possible parameters (for example the output type
can be the 95th percentile mean) where the measurement task
accepts such parameters. It does NOT define when the task starts
(this is defined by the Measurement Schedule element), so it does
not by itself instruct the MA to actually perform this measurement
task.
The Measurement Task Configuration will include a local short name
for reference by the Measurement Schedule, along with a registry
entry [I-D.bagnulo-ippm-new-registry] that defines the Measurement
Task. The MA itself will resolve the registry entry to a local
executable program. In addition the Measurement Task is specialised
through a set of configuration Options. The nature and number of
these Options will depend upon the Measurement Task and will be
defined in the Measurement Task Registry. In addition the
Measurement Task Configuration may optionally also be given a
Measurement Cycle ID. The purpose of this ID is to easily identify a
set of measurement results that have been produced by Measurement
Tasks with comparable Options. This ID is manually incremented when
an Option change is implemented which could mean that two sets of
results should not be directly compared.
A Report Channel defines how to report results to a single Collector. The Instruction supports the exceution of all Tasks on the MA except
Several Report Channels can be defined to enable results to be split those that deal with communication with the Controller (specified in
or duplicated across different report intervals or destinations. (pre)configuration information). The Tasks are configured in
E.g. a single Collector may have three Report Channels, one reporting Instruction Task Configurations and inlcuded by reference in
hourly, another reporting daily and a third on which to send Instruction Schdules that specify when to execute them. The results
immediate results for on-demand measurement tasks. Alternatively are communicated to other Tasks or over Report Channels. Suppression
multiple Report Channels can be used to send Measurement Task results is used to temporarily stop the excution of new Tasks as specified by
to different Collectors. The details of the Channel element is the Instruction Schedules (and optionaly to stop ongoing Tasks).
described later as it is common to several objects.
A Measurement Schedule contains the Instruction from the Controller A Task Configuration is used to configure the optional parameters of
to the MA to execute a single or repeated series of Measurement a Task. It also serves to instruct the MA about the Task including
Tasks. Each Measurement Schedule contains basically two elements: a the ability to resolve the Task to an executable and specifying the
reference to a list of Measurement Task Configuration and a timing schema for the Task parameters.
object for the schedule. The schedule basically states what
measurement task to run, how to report the results per Measurement
Task Configuration, and when to run the measurement task. Multiple
measurement tasks in the list will be executed in order with minimal
gaps. Note that the Controller can instruct the MA to report to
several Collectors by specifying several Report Channels.
Each Measurement Task Configuration named in the Measurement Schedule A Report Channel defines how to communicate with a single remote
can be allocated to independent Report Channels, giving flexibility system specified by a URL. A Report Channel is used to send results
to report different Measurement Tasks to different Collectors or on to single Collector but is no different in terms of the Information
different timings. Furthermore, as each Measurement Task may have Model to the Control Channel used to transfer information between the
multiple data outputs, these outputs can each be assigned to MA and the Controller. Several Report Channels can be defined to
different Report Channels. For example a Measurement Task might enable results to be split or duplicated across different
report routine results hourly via the Broadband PPP interface, but destinations. A single Channel can also be used by multiple
also output emergency conditions immediately via a GPRS channel. Schedules to transfer data at different cycles to the same Collector.
E.g. a single Collector may receive data at three different cycle
rates, one Schedule reporting hourly, another reporting daily and a
third specifying that results should be sent immediately for on-
demand measurement tasks. Alternatively multiple Report Channels can
be used to send Measurement Task results to different Collectors.
The details of the Channel element is described later as it is common
to several objects.
Example: a Measurement Schedule references a single Measurement Task Instruction Schedules specify which Tasks to execute according to a
Configuration for the UDP latency defined in the previous example. simngle given Timing (that can execute a single or repeated series of
It references the Report Channel in the previous example to send Tasks). The Schedule also specifies how to deal with Task inputs and
results immediately as available to the specified Collector. The outputs - e.g. sending selected outputs to other Tasks or specifying
timing is specified to run the configured Measurement Task the Report Channels that should be used to report results to
Configuration every hour at 23 minutes past the hour. Collectors.
Measurement Suppression information is used to over-ride the Measurement Suppression information is used to over-ride the
Measurement Schedule and stop measurements from the MA for a defined Instruction Schedule and temporarily stop measurements or other Tasks
or indefinite period. While conceptually measurements can be stopped from running on the MA for a defined or indefinite period. While
by simply removing them from the Measurement Schedule, splitting out conceptually measurements can be stopped by simply removing them from
separate information on Measurement Suppression allows this the Measurement Schedule, splitting out separate information on
information to be updated on the MA on a different timing cycle or Measurement Suppression allows this information to be updated on the
protocol implementation to the Measurement Schedule. It is also MA on a different timing cycle or protocol implementation to the
considered that it will be easier for a human operator to implement a Measurement Schedule. It is also considered that it will be easier
temporary explicit suppression rather than having to move to a for a human operator to implement a temporary explicit suppression
reduced Schedule and then roll-back at a later time. The explicit rather than having to move to a reduced Schedule and then roll-back
Suppression instruction message is able to simply enable/disable all at a later time.
Measurement Tasks as well as having fine control on which Tasks are
suppressed. Suppression of both specified Measurement Tasks The explicit Suppression instruction message is able to simply
Configurations and Measurement Schedules is supported. Support for enable/disable all Instruction Tasks (that are enabled for default
disabling specific Measurement Task Configurations allows suppression) as well as having fine control on which Tasks are
malfunctioning or mis-configured Measurement Tasks or Measurement suppressed. Suppression of both specified Task Configurations and
Measurement Schedules is supported. Support for disabling specific
Task Configurations allows malfunctioning or mis-configured Tasks or
Task Configurations that have an impact on a particular part of the Task Configurations that have an impact on a particular part of the
network infrastructure (e.g., a particular Measurement Peer) to be network infrastructure (e.g., a particular Measurement Peer) to be
targetted. Support for disabling specific Measurement Schedules targetted. Support for disabling specific Schedules allows for
allows for particularly heavy cycles or sets of less essential particularly heavy cycles or sets of less essential Measurement Tasks
Measurement Tasks to be suppressed quickly and effectively. to be suppressed quickly and effectively. Note that Suppression has
no effect on either Controller Tasks or Controller Schedules.
When no tasks or schedules are explicitly listed, all Instruction
tasks will be suppressed as indicated by the suppress-by-default flag
in the Task Configuration. If tasks or schedules are listed
explicitly then these tasks will be suppressed regardless of the
suppress-by-default flag.
Suppression stops new Tasks from executing. In addtion, the
Suppression information also supports an additional Boolean that is
used to select whether on-going tasks are also to be terminated.
Unsuppression is achieved through either overwriting the Measurement Unsuppression is achieved through either overwriting the Measurement
Suppression information (e.g. changing 'enabled' to False) or through Suppression information (e.g. changing 'enabled' to False) or through
the use of an End time such that the Measurement Suppression will no the use of an End time such that the Measurement Suppression will no
longer be in effect beyond this time. longer be in effect beyond this time. The datetime format used for
all elements in the information model (e.g. the suppression start and
end dates) MUST conform to RFC 3339 [RFC3339] and ISO8601.
The goal when defining these four different elements is to allow each The goal when defining these four different elements is to allow each
part of the information model to change without affecting the other part of the information model to change without affecting the other
three elements. For example it is envisaged that the Report Channels three elements. For example it is envisaged that the Report Channels
and the set of Measurement Tasks Configurations will be relatively and the set of Task Configurations will be relatively static. The
static. The Measurement Schedule on the other hand is likely to be Instruction Schedule, on the other hand, is likely to be more
more dynamic as the measurement panel and test frequency are changed dynamic, as the measurement panel and test frequency are changed for
for various business goals. Another example is that measurements can various business goals. Another example is that measurements can be
be suppressed with a Measurement Suppression command without removing suppressed with a Suppression command without removing the existing
the existing Measurement Schedules that would continue to apply after Instruction Schedules that would continue to apply after the
the Measurement Suppression expires or is removed. In terms of the Suppression expires or is removed. In terms of the Controller-MA
Controller-MA communication this can reduce the data overhead. It communication this can reduce the data overhead. It also encourages
also encourages the re-use of the same standard Measurement Task the re-use of the same standard Task Configurations and Reporting
Configurations and Reporting Channels to help ensure consistency and Channels to help ensure consistency and reduce errors.
reduce errors.
Definition of the information model elements: Definition of the information model elements:
object { // Instruction to the MA to configure Tasks, Channels, Schedules and Suppression
ma-task-obj ma-tasks<0..*>;
ma-channel-obj ma-report-channels<0..*>;
ma-schedule-obj ma-schedules<0..*>;
ma-suppression-obj ma-suppression;
} ma-instruction-obj;
object {
string ma-task-name;
urn ma-task-registry;
string ma-task-options<0..*>;
[string ma-task-cycle-id;]
} ma-task-obj;
object { object {
string ma-schedule-name; ma-task-obj ma-instruction-tasks<0..*>;
ma-sched-task-obj ma-schedule-tasks<0..*>; ma-channel-obj ma-report-channels<0..*>;
ma-timing-obj ma-schedule-timing; ma-schedule-obj ma-instruction-schedules<0..*>;
} ma-schedule-obj; ma-suppression-obj ma-suppression;
} ma-instruction-obj;
object { // Suppression object to temporarily override new task execution in Instructions and optionally stop currently running tasks
string ma-schedule-task-name;
ma-sched-report-obj ma-schedule-task-reports<0..*>;
} ma-sched-task-obj;
object { object {
[int ma-schedule-task-filter;] // default: all boolean ma-suppression-enabled;
string ma-schedule-task-report-channel-name; [boolean ma-suppression-stop-ongoing-tasks;] // default: false
} ma-sched-report-obj; [datetime ma-suppression-start;] // default: immediate
object { [datetime ma-suppression-end;] // default: indefinite
boolean ma-suppression-enabled; [string ma-suppression-task-names<0..*>;]
[datetime ma-suppression-start;] // default: immediate // default: all tasks if
[datetime ma-suppression-end;] // default: indefinite // ma-suppression-task-names is empty
[string ma-suppression-task-names<0..*>;] [string ma-suppression-schedule-names<0..*>;]
// default: all tasks if // default: all schedules if
// ma-suppression-task-names is empty // ma-suppression-schedule-names is empty
[string ma-suppression-schedule-names<0..*>;] } ma-suppression-obj;
// default: all schedules if
// ma-suppression-schedule-names is empty
} ma-suppression-obj;
3.5. MA to Controller Information 3.5. 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 simply and flexibly in exactly the same information is achieved simply and flexibly in exactly the same
manner as any Measurement Task. We make no distinction between a manner as any other Task. We make no distinction between a
Measurement Task conducting an active or passive network measurement Measurement Task conducting an active or passive network measurement
and one which solely retrieves static information from the MA such as and one which solely retrieves static or dynamic information from the
logging information. One or more logging tasks can be programmed or MA such as capabilities or logging information. One or more logging
configured to capture subsets of the MA to Controller Information. tasks can be programmed or configured to capture subsets of the
These logging tasks are then executed by Measurement Schedules (if Logging Information. These logging tasks are then executed by
not permanently running) and the resultant data assigned to the MA to Schedules which also specify that the resultant data is to be
Controller Channel. transferred over the Controller Channels.
The type of MA to Controller Information will fall into three The type of Logging Information will fall into three different
different categories: categories:
1. Success/failure/warning messages in response to information 1. Success/failure/warning messages in response to information
updates from the Controller. Failure messages could be produced updates from the Controller. Failure messages could be produced
due to some inability to receive or parse the Controller due to some inability to receive or parse the Controller
communication, or if the MA is not able to act as instructed. communication, or if the MA is not able to act as instructed.
For example: For example:
* "Measurement Schedules updated OK" * "Measurement Schedules updated OK"
* "Unable to parse JSON" * "Unable to parse JSON"
skipping to change at page 12, line 35 skipping to change at page 14, line 46
3. Status updates from the MA. For example: 3. Status updates from the MA. For example:
* "Interface added: eth3 " * "Interface added: eth3 "
* "Supported measurements updated" * "Supported measurements updated"
* "New IP address on eth0: xxx.xxx.xxx.xxx" * "New IP address on eth0: xxx.xxx.xxx.xxx"
This Information Model document does not detail the precise format of This Information Model document does not detail the precise format of
logging information since it is to a large extend protocol and logging information since it is to a large extent protocol and MA
measurement task specific. However, some common information can be specific. However, some common information can be identified.
identified.
MA Logging information model elements: MA Logging information model elements:
// Logging object
object { object {
uuid ma-log-agent-id; uuid ma-log-agent-id;
datetime ma-log-event-time; datetime ma-log-event-time;
code ma-log-code; code ma-log-code;
string ma-log-description; string ma-log-description;
} ma-log-obj; } ma-log-obj;
3.6. Capability and Status Information 3.6. 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 interface details available to Controller. Capabilities include the interface details available to
Measurement Tasks and Reports as well as the set of Measurement Tasks Measurement Tasks and Channels as well as the set of Measurement
that are actually installed or available on the MA. Status Tasks that are actually installed or available on the MA. Status
information includes the times that operations were last performed information includes the times that operations were last performed
such as contacting the Controller or producing Reports. such as contacting the Controller or producing Reports.
MA Status information model elements: MA Status information model elements:
// Main MA Status information object
object { object {
uuid ma-agent-id; uuid ma-agent-id;
urn ma-device-id; urn ma-device-id;
string ma-hardware; string ma-hardware;
string ma-firmware; string ma-firmware;
string ma-software; string ma-version;
ma-interface-obj ma-interfaces<0..*>; ma-interface-obj ma-interfaces<0..*>;
datetime ma-last-measurement; datetime ma-last-measurement;
datetime ma-last-report; datetime ma-last-report;
datetime ma-last-instruction; datetime ma-last-instruction;
datetime ma-last-configuration; datetime ma-last-configuration;
ma-capability-obj ma-supported-measurements<0..*>; ma-task-capability-obj ma-supported-tasks<0..*>;
} ma-status-obj; } ma-status-obj;
// Interface information
object { object {
string ma-interface-name; string ma-interface-name;
string ma-interface-type; string ma-interface-type;
int ma-interface-speed; // mbps [int ma-interface-speed;] // mbps
string ma-link-layer-address; [string ma-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;
// Supported tasks
object { object {
urn ma-measurement-id; string ma-task-name;
[string ma-measurement-version;] uri ma-task-registry;
} ma-capability-obj; } ma-task-capability-obj;
3.7. Reporting Information 3.7. Reporting Information
At a point in time specific by the Report Channel, the MA will At a point in time specified by a Schedule, the MA will execute a
communicate a set of measurement results to the Collector. These task or tasks that communicate a set of measurement results to the
measurement results should be communicated within the context in Collector. Some of these Tasks (notably Reporting Tasks) will
which they were collected. understand how to transmit task results over a specified Report
Channel to a Collector.
It should be noted that Collectors can be implemented by many types It should be noted that the output from Tasks does not need to be
of devices and systems, including the MA itself. In this manner data sent to communication Channels. It can alternatively, or
from Measurement Tasks can (also) be stored locally on the MA and additionally, be sent to other Tasks on the MA. This facilitates
used as input by other Measurement Tasks. This facilitates using a using a first Measurement Task to control the operation of a later
first Measurement Task to control the operation of a later Measurement Task (such as first probing available line speed and then
Measurement Task (such as probing available line speed) and also to adjusting the operation of a video testing measurement) and also to
allow local processing of data to output alarms (e.g. when allow local processing of data to output alarms (e.g. when
performance drops from earlier levels). performance drops from earlier levels). Of course, subsequent Tasks
also include Tasks that implement the reporting protocol(s) and
transfer data to one or more Collector(s).
The report is structured hierarchically to avoid repetition of The report is structured hierarchically to avoid repetition of report
report, Measurement Agent and Measurement Task Configuration header and Measurement Task Configuration information. The report
information. The report starts with the timestamp of the report starts with the timestamp of the report generation on the MA and
generation on the MA and details about the MA including the optional details about the MA including the optional Measurement Agent ID and
Measurement Agent ID and Group ID (controlled by the Configuration Group ID (controlled by the Configuration Information).
Information). In addition optional further MA context information
can be included at this point such as the line sync speed or ISP and
product if known by the MA.
After the MA information the results are reported grouped into the No context information, such as line speed or broadband product are
different Measurement Tasks. Each Measurement Task starts with included within the report header information as this data is
replicating the Measurement Task Configuration information before the reported by individual tasks at the time they execute. Either a
result headers (titles for data columns) and the result data rows. Measurement Task can report contextual parameters that are relevant
The result data rows may optionally include an indication of the to that particular measurement, or specific tasks can be used to
cross-traffic (e.g., the total number of octets of non-measurement gather a set of contextual and environmental data. at certain times
independent of the reporting schedule.
After the report header information the results are reported grouped
according to different Measurement Task Configurations. Each Task
section starts with replicating the Measurement Task Configuration
information before the result headers (titles for data columns) and
the result data rows. The result data rows may optionally include an
indication of the cross-traffic. Cross traffic is defined as the
total number of Bytes both upstream and downstream of non-measurement
traffic passing through the interfaces used by a Measurement Task traffic passing through the interfaces used by a Measurement Task
during the measurement period). during the measurement period.
The datetime format used for all elements in the information model Where the Configuration and Instruction information represent
(i.e., Report Date and Measurement Time in the Reporting Information) information transmitted via the Control Protocol, the Report
MUST conform to RFC 3339 [RFC3339] and ISO8601. represents the information that is transmitted via the Report
Protocol. It is constructed at the time of sending a report and
represents the inherent structure of the information that is sent to
the Collector.
Information model elements: Information model elements:
// Main Report object with report header information
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-context-obj ma-report-context<0..*>;
ma-report-task-obj ma-report-tasks<0..*>; ma-report-task-obj ma-report-tasks<0..*>;
} ma-report-obj; } ma-report-obj;
// Report task header information
object { object {
ma-task-obj ma-report-task-config; ma-task-obj ma-report-task-config;
string ma-report-task-column-headers<0..*>; string ma-report-task-column-labels<0..*>;
ma-result-row-obj ma-report-task-rows<0..*>; ma-result-row-obj ma-report-task-rows<0..*>;
} ma-report-task-obj; } ma-report-task-obj;
object { // Report tasks result rows
datetime ma-report-result-time;
[int ma-report-result-cross-traffic;] object {
data ma-report-result-values<0..*>; datetime ma-report-result-time;
} ma-result-row-obj; string ma-report-conflicting-tasks<0..*>;
[int ma-report-result-cross-traffic;] // Bytes of non-measurement traffic
// on measurement interface during measurement period
data ma-report-result-values<0..*>;
} ma-result-row-obj;
The ma-context-obj, which covers things like line speed or the device The ma-context-obj, which covers things like line speed or the device
type, is not further detailed here. type, is not further detailed here.
3.8. Channels 3.8. Schedules
A Channel defines a communication channel between the MA and other A Schedule specifies the execution of a single or repeated series of
element of the measurement framework i.e. with the Collector to Tasks. Each Schedule contains basically two elements: a list of
report results back, to Controller to retrieve Instructions or other Tasks to be executed and a timing object for the Schedule. The
information exchanged between the parties. Several Channels can be Schedule basically states what Tasks to run (with what
defined to enable results to be split or duplicated across different configuration), how to report the results, and when to run the Tasks.
report intervals or destinations. E.g. a single Collector may have
three Report Channels, one reporting hourly, another reporting daily
and a third on which to send immediate results for on-demand
measurement tasks.
Each Channel contains the details of the target (including location Multiple Tasks in the list of a single Measurement Schedule will be
and security information such as the certificate), and the timing for executed in order with minimal gaps. Tasks in different Schedules
the communication i.e. when to establish the communication. The can execute in parallel with such conflicts beings reported in the
certificate can be the digital certificate associated to the FQDN in Reporting Information.
the URL or it can be the certificate of the Certification Authority
that was used to issue the certificate for the FQDN (Fully Qualified
Domain Name) of the target URL (which will be retrieved later on
using a communication protocol such as SSL). The Channel can use the
same timing information object as a Measurement Schedule and the
Controller Communication Timing defined earlier. There are several
options, such as immediately after the results are obtained or at a
given interval or calendar based cycle). As with the Measurement
task Configuration, each Channel is also given a local short name by
which it can be referenced from a Measurement Schedule or other
elements.
As for Measurement Tasks, multiple interfaces are also supported. As well as specifying which Tasks to execute, the Schedule also
For example the Controller could choose to receive some results over specifies where to send the data outputs from each Task. Specifying
GPRS. This is especially useful when such results indicate the loss this within the Schedule allows the highest level of flexibility
of connectivity on a different network interface. since it is even possible to send the output from different
executions of the same Task to different destinations. Since a
single Task may have multiple outputs, the Schedule can independently
specify which outputs go to which destinations. For example, a
Measurement Task might report routine results to a data Reporting
Task that communicates hourly via the Broadband PPP interface, but
also outputs emergency conditions via an alarm Reporting Task
communicating immediately over a GPRS channel.
Facility is also provided for the Controller to choose whether to The destination options for a Task are either another Task or a
receive empty reports where there is no Measurement Task information. Channel. In this way the output of a Task can be sent to another
In some cases this may be desirable to monitor the health of the Task. For example a Measurement Task may send its output to a data
measurement system. transfer Task that reports the batched data to a Collector at a later
time. Alternatively the output from a Measurement Task may be fed to
an alarm processing task that monitors the results of a series of
Measurement Tasks. Some Tasks will also understand how to send/
receive data to/from Channels using the Reporting/Control protocol.
Since Channels are bi-directional they can be considered inputs as
well as outputs to the Control and Reporting Tasks that utlilise
them. Any Task that does not implement either the Reporting or
Control protocol will ignore any specified Channels (e.g. A
Measurement Task will not know how to report results to a Collector
using the Report Protocol. Instead results can be passed to a
Reporting Task that has the apropriate Collector specified as a
Channel).
Example: A Channel using for reporting results may specify that The tasks outputs and channels are controlled using a series of
results are to be sent to the URL filters. Each filter is an array of integers specifying which Task
(https://collector.foo.org/report/), using the appropriate digital datasets should be mapped to which output tasks and/or channels.
certificate to establish a secure channel. The Channel specifies
that the results are to be sent immediately as available and not Example: A Schedule references a single Measurement Task
batched. Configuration for the UDP latency. It specifies that results are
to be sent to a Reporting Task. This Reporting Task is executed
by a separate Schedule that specifies that it should run hourly at
5 minutes past the hour. When run this Reporting Task takes the
data generated by the UDP latency Task as well as any other data
to be included in the hourly report and transfers it to the
Collector over the Report Channel specified within its own
Schedule.
// main Schedule object with Timing and list of Scheduled Tasks
object { object {
string ma-channel-name; string ma-schedule-name;
url ma-channel-target; ma-sched-task-obj ma-schedule-tasks<0..*>;
certificate ma-channel-certificate; ma-timing-obj ma-schedule-timing;
ma-timing-obj ma-channel-timing; } ma-schedule-obj;
[string ma-channel-interface-name;]
[boolean ma-channel-connect-always;]
// default: false
// (only connect when data is pending)
} ma-channel-obj;
3.9. Timing Information // Scheduled Task object with reference (by name string) to Task Configuration and input/output mapping
// of task datasets to output tasks and channels
object {
string ma-schedule-task-name;
ma-sched-dataset-obj ma-schedule-task-datasets<0..*>;
} ma-sched-task-obj;
// Selected Task interfaces (filtered by Integer list) can be output to other Task Configurations
// (referenced by name string) or connected to input/output Channels (referenced by name string)
object {
[int ma-schedule-task-filters<0..*>;] // default: all
[string ma-schedule-task-output-task-names<0..*>];
[string ma-schedule-task-channel-names<0..*>];
} ma-sched-dataset-obj;
3.9. Channels
A Channel defines a bi-directional communication channel between the
MA and a Controller or Collector. Multiple Channels can be defined
to enable results to be split or duplicated across different
Collectors.
Each Channel contains the details of the endpoint (including location
and security credential information such as the certificate). The
timing of when to communicate over a Channel is specified within the
Schedule. The certificate can be the digital certificate associated
to the FQDN in the URL or it can be the certificate of the
Certification Authority that was used to issue the certificate for
the FQDN (Fully Qualified Domain Name) of the target URL (which will
be retrieved later on using a communication protocol such as TLS).
In order to establish a secure channel, the MA will use it's own
security credentials (in the Configuration Information) and the given
credentials for the individual Channel end-point.
As with theTask Configurations, each Channel is also given a local
short name by which it can be referenced from a Schedule.
Although the same in terms of information, Channels used for
communication with the Controller are refered to as Control Channels
whereas Channels to Collectors are refered to as Report Channels.
Hence Control Channels will be referenced from within the Control
Schedule, whereas Report Channels will be referenced from within the
Instruction Schedule.
Multiple interfaces are also supported. For example the Controller
could choose to receive some results over GPRS. This is especially
useful when such results indicate the loss of connectivity on a
different network interface.
Example: A Channel using for reporting results may specify that
results are to be sent to the URL (https://collector.foo.org/
report/), using the appropriate digital certificate to establish a
secure channel..
// Channel object with name string allowing reference from Schedule. Contains channel endpoint target URL and security
// credentials to establish secure channel. Optionally allows interface specification (by interface name string reference)
// and connection when no data is pending for transfer
object {
string ma-channel-name;
url ma-channel-target;
credentials ma-channel-credentials;
[string ma-channel-interface-name;]
} ma-channel-obj;
3.10. Task Configurations
Conceptually each Task Configuration defines the parameters of a Task
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
particular time (this is done by a Schedule). Tasks can be
Measurement Tasks (i.e. those Tasks actually performing some type of
passive or active measurement) or any other scheduled activity
performed by the MA such as transferring information to or from the
Controller and Collectors. Other examples of Tasks may include data
manipulation or processing Tasks conducted on the MA.
A Measurement Task Configuration is the same in information terms to
any other Task Configuration. Both measurement and non-measurement
Tasks have a registry entry to enable the MA to uniquely identify the
Task it should execute and retrieve the schema for any parameters
that may be passed to the Task. This registry entry is specified as
a URI and can therefore identify the Task within a namespace or point
to a web or local file location for the Task information. As
mentioned previously this entry may refer to the Measurement Task in
a public namespace [I-D.bagnulo-ippm-new-registry] that is used to
define the Measurement Task.
Example: A Measurement Task Configuration may configure a single
Measurement Task for measuring UDP latency. The Measurement Task
Configuration could define the destination port and address for
the measurement as well as the duration, internal packet timing
strategy and other parameters (for example a stream for one hour
and sending one packet every 500 ms). It may also define the
output type and possible parameters (for example the output type
can be the 95th percentile mean) where the measurement task
accepts such parameters. It does NOT define when the task starts
(this is defined by the Schedule element), so it does not by
itself instruct the MA to actually perform this Measurement Task.
The Task Configuration will include a local short name for reference
by a Schedule. Task Configurations will also contain a registry
entry as described above. In addition the Task can be configured
through a set of configuration Options. The nature and number of
these Options will depend upon the Task and will be resolved through
the registry parameter.
A parameter that may be present for Reporting Tasks is whether to
report if there is no measurement result data pending to be
transferred to the Collector.
The Task Configuration also contains a suppress-by-default flag that
specifies the behaviour of a default suppress instruction (that does
not list explicit tasks or schedules). If this flag is set to FALSE
then the Task will not be suppressed. It should be noted that
Controller Tasks are not subject to the suppression instruction and
therefore this flag will be ignored in such cases.
In addition the Task Configuration may optionally also be given a
Measurement Cycle ID. The purpose of this ID is to easily identify a
set of measurement results that have been produced by Measurement
Tasks with comparable Options. This ID could be manually incremented
or otherwise changed when an Option change is implemented which could
mean that two sets of results should not be directly compared.
// Task Configuration object with string name to allow reference from Schedule. Contains URI to link to registry or local
// specification of Task. Options allow the configuration of Task parameters (in the form of name-value pairs)
object {
string ma-task-name;
uri ma-task-registry;
name-value-pair ma-task-options<0..*>;
[boolean ma-task-suppress-by-default;] // default: TRUE
[string ma-task-cycle-id;]
} ma-task-obj;
3.11. Timing Information
The Timing information object used throughout the information models The Timing information object used throughout the information models
can take one of four different forms: can take one of five different forms:
1. Periodic. Specifies a start, end and interval time in 1. Periodic. Specifies a start, end and interval time in
milliseconds milliseconds
2. Calendar: Specifies a calendar based pattern - e.g. 22 minutes 2. Calendar: Specifies a calendar based pattern - e.g. 22 minutes
past each hour of the day on weekdays past each hour of the day on weekdays
3. One Off: A single instance occurring at a specific time 3. One Off: A single instance occurring at a specific time
4. Immediate: Should occur as soon as possible 4. Immediate: Should occur as soon as possible
5. Startup: Should occur whenever the MA is started (e.g. at device
startup)
Optionally each of the first three options may also specify a Optionally each of the options may also specify a randomness that
randomness that should be evaluated and applied separately to each should be evaluated and applied separately to each indicated event.
indicated event.
The datetime format used for all elements in the information model The datetime format used for all elements in the information model
(i.e., Report Date and Measurement Time in the Reporting Information)
MUST conform to RFC 3339 [RFC3339] and ISO8601. MUST conform to RFC 3339 [RFC3339] and ISO8601.
object { // Main Timing object with name string to allow reference by Schedule
[string ma-timing-name;] // Must be specialised by one of the Timing options.
union { // Includes optional uniform random spread in ms from start time given by Timing specialisation
ma-periodic-obj ma-timing-periodic;
ma-calendar-obj ma-timing-calendar;
ma-one-off-obj ma-timing-one-off;
ma-immediate-obj ma-timing-immediate;
}
[ma-randomness-obj ma-timing-randomness;]
} ma-timing-obj;
3.9.1. Periodic Timing object {
[string ma-timing-name;]
union {
ma-periodic-obj ma-timing-periodic;
ma-calendar-obj ma-timing-calendar;
ma-one-off-obj ma-timing-one-off;
ma-immediate-obj ma-timing-immediate;
ma-startup-obj ma-timing-startup;
}
[int ma-timing-random-spread;] // milliseconds
} ma-timing-obj;
3.11.1. Periodic Timing
Information model elements: Information model elements:
object { // Timing specialisation to run a series of Tasks repeated at set intervals
[datetime ma-periodic start;] // default: immediate
[datetime ma-periodic-end;] // default: indefinite
int ma-periodic-interval; // milliseconds
} ma-periodic-obj;
3.9.2. Calendar Timing object {
[datetime ma-periodic start;] // default: immediate
[datetime ma-periodic-end;] // default: indefinite
int ma-periodic-interval; // milliseconds
} ma-periodic-obj;
3.11.2. Calendar Timing
Calendar Timing supports the routine execution of Measurement Tasks Calendar Timing supports the routine execution of Measurement Tasks
at specific times and/or on specific dates. It can support more at specific times and/or on specific dates. It can support more
flexible timing than Periodic Timing since the Measurement Task flexible timing than Periodic Timing since the Measurement Task
execution does not have to be uniformly spaced. For example a execution does not have to be uniformly spaced. For example a
Calendar Timing could support the execution of a Measurement Task Calendar Timing could support the execution of a Measurement Task
every hour between 6pm and midnight on weekdays only. every hour between 6pm and midnight on weekdays only.
Calendar Timing is also required to perform measurements at Calendar Timing is also required to perform measurements at
meaningful instances in relation to network usage (e.g., at peak meaningful instances in relation to network usage (e.g., at peak
times). If the optional timezone offset is not supplied then local times). If the optional timezone offset is not supplied then local
system time is assumed. This is essential in some use cases to system time is assumed. This is essential in some use cases to
ensure consistent peak-time measurements as well as supporting MA ensure consistent peak-time measurements as well as supporting MA
devices that may be in an unknown timezone or roam between different devices that may be in an unknown timezone or roam between different
timezones (but know their own timezone information such as through timezones (but know their own timezone information such as through
the mobile network). the mobile network).
Information model elements: Information model elements:
object { // Timing specialisation to run repeated Tasks at specific times and/or days
[datetime ma-calendar-start;] // default: immediate
[datetime ma-calendar-end;] // default: indefinite
[int ma-calendar-months<0..*>;] // default: 1-12
[days ma-calendar-weekdays<0..*>;] // default: all
[int ma-calendar-hours<0..*>;] // default: 0-23
[int ma-calendar-minutes<0..*>;] // default: 0-59
[int ma-calendar-seconds<0..*>;] // default: 0-59
[int ma-calendar-timezone-offset;]
// default: system timezone offset
} ma-calendar-obj;
3.9.3. One-Off Timing object {
[datetime ma-calendar-start;] // default: immediate
[datetime ma-calendar-end;] // default: indefinite
[int ma-calendar-months<0..*>;] // default: 1-12
[days ma-calendar-days-of-week<0..*>;] // default: all
[int ma-calendar-hours<0..*>;] // default: 0-23
[int ma-calendar-minutes<0..*>;] // default: 0-59
[int ma-calendar-seconds<0..*>;] // default: 0-59
[int ma-calendar-timezone-offset;]
// default: system timezone offset
} ma-calendar-obj;
3.11.3. One-Off Timing
Information model elements: Information model elements:
// Timing specialisation to run once at a specified time/date
object { object {
datetime ma-one-off-time; datetime ma-one-off-time;
} ma-one-off-obj; } ma-one-off-obj;
3.9.4. Immediate Timing 3.11.4. Immediate Timing
The immediate timing object has no further information elements. The The immediate timing object has no further information elements. The
measurement or report is simply to be done as soon as possible. measurement or report is simply to be done as soon as possible.
// Timing specialisation to run immediately
object { object {
// empty // empty
} ma-immediate-obj; } ma-immediate-obj;
3.9.5. Timing Randomness 3.11.5. Startup Timing
The Timing randomness object specifies a random distribution that can The immediate timing object has no further information elements. The
be applied to any scheduled execution event such as a measurement or measurement or report is simply done at MA initiation.
report. The intention it to be able to spread the load on the
Controller, Collector and network in an automated manner for a large
number of Measurement Agents. The randomness is expressed as a
distribution (e.g. Poison, Normal, Uniform etc.) along with the
spread over which the distribution should be applied. In additional
optional upper and lower bounds can be applied to control extreme
spread of timings.
Information model elements: // Timing specialisation to run at MA startup
object { object {
string ma-randomness-distribution; // empty
[int ma-randomness-lower-cut;] } ma-startup-obj;
[int ma-randomness-upper-cut;]
int ma-randomness-spread;
} ma-randomness-obj;
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
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
information. The second consideration is that no mandated information. The second consideration is that no mandated
information items pose a risk to confidentiality or privacy given information items should pose a risk to confidentiality or privacy
such secure communication channels. For this latter reason items given such secure communication channels. For this latter reason
such as the MA context and MA ID are left optional and can be items such as the MA context and MA ID are left optional and can be
excluded from some deployments. This would, for example, allow the excluded from some deployments. This would, for example, allow the
MA to remain anonymous and for information about location or other MA to remain anonymous and for information about location or other
context that might be used to identify or track the MA to be omitted context that might be used to identify or track the MA to be omitted
or blurred. or blurred.
6. Acknowledgements 6. Appendix: JSON Example
In order to give an example of data in the Information Model we need
to select a data model language. In this example we have expressed
the Data Model using JSON as this will be of direct interest to some
Control and Report Protocols. The example is broken down into a
number of different steps that might adhere to the steps within a
Control and Report Protocol:
1. Pre-configuration.
2. Configuration
3. Capabilities
4. Instruction
5. Report
6. Suppression
While the pre-configuration is not delivered as part of the Control
Protocol, the same JSON data model is used for consistency and to aid
the reader.
// Pre-Configuration
{
"ma-config": {
"ma-agent-id": "550e8400-e29b-41d4-a716-446655440000",
"ma-control-tasks": [
{
"ma-task-name": "Controller configuration",
"uri": "urn:ietf:lmap:control:http_controller_configuration"
}
]
"ma-control-channels": [
{
"ma-channel-name": "Controller channel",
"ma-channel-target": "http://www.example.com/lmap/controller",
"ma-channel-credientials": { } // structure of certificate ommitted for brevity
}
]
"ma-control-schedules": [
{
"ma-schedule-name": "pre-configured schedule",
"ma-schedule-tasks": {
{
"ma-schedule-task-name": "Controller configuration",
"ma-schedule-task-datasets": [
{
"ma-schedule-task-channel-names": "Controller channel"
}
]
}
}
"ma-schedule-timing": {
"ma-timing-name": "startup plus up to one hour",
"ma-timing-startup": {
}
"ma-timing-random-spread": "3600000"
}
}
]
"ma-credentials": { } // structure of certificate ommitted for brevity
}
}
Given the pre-configuration information the MA is able to contact the
Controller and receive an updated/expanded Configuration. In this
example additional Control Protocol tasks to post Status and
Capabilities to the Controller and fetch the Instruction are added as
well as moving the schedule timing for contacting the Controller to
hourly.
// Configuration
{
"ma-config": {
"ma-agent-id": "550e8400-e29b-41d4-a716-446655440000",
"ma-control-tasks": [
{
"ma-task-name": "Controller configuration",
"uri": "urn:ietf:lmap:control:http_controller_configuration"
},
{
"ma-task-name": "Controller status and capabilities",
"uri": "urn:ietf:lmap:control:http_controller_status_and_capabilities"
},
{
"ma-task-name": "Controller instruction",
"uri": "urn:ietf:lmap:control:http_controller_instruction"
}
]
"ma-control-channels": [
{
"ma-channel-name": "Controller instruction",
"ma-channel-target": "http://www.example.com/lmap/controller",
"ma-channel-credientials": { } // structure of certificate ommitted for brevity
}
]
"ma-control-schedules": [
{
"ma-schedule-name": "Controller schedule",
"ma-schedule-tasks": {
{
"ma-schedule-task-name": "Controller configuration",
"ma-schedule-task-datasets": [
{
"ma-schedule-task-channel-names": ["Controller channel"]
}
]
},
{
"ma-schedule-task-name": "Controller status and capabilities",
"ma-schedule-task-datasets": [
{
"ma-schedule-task-channel-names": ["Controller channel"]
}
]
},
{
"ma-schedule-task-name": "Controller instruction",
"ma-schedule-task-datasets": [
{
"ma-schedule-task-channel-names": ["Controller channel"]
}
]
}
}
"ma-schedule-timing": {
"ma-timing-name": "hourly randomly",
"ma-timing-calendar": {
"ma-calendar-minutes": ["00"],
"ma-calendar-seconds": ["00"]
}
"ma-timing-random-spread": "3600000"
}
}
]
"ma-credentials": { } // structure of certificate ommitted for brevity
}
}
The above configuration now contacts the Controller randomnly within
each hour. The following is an example of the Status and
Capabilities information that is transferred from the MA to the
Controller.
// Status and Capabilities
{
ma-status-and-capabilities {
"ma-agent-id": "550e8400-e29b-41d4-a716-446655440000",
"ma-device-id": "urn:dev:mac:0024befffe804ff1"
"ma-hardware": "mfr-home-gateway-v10"
"ma-firmware": "25637748-rev2a"
"ma-version": "ispa-v1.01"
"ma-interfaces: [
{
"ma-interface-name": "broadband",
"ma-interface-type": "PPPoE"
}
]
"ma-last-measurement: "",
"ma-last-report: "",
"ma-last-instruction: "",
"ma-last-configuration: "2014-06-08T22:47:31+00:00",
"ma-supported-tasks: [
{
"ma-task-name": "Controller configuration",
"ma-task-registry": "urn:ietf:lmap:control:http_controller_configuration"
},
{
"ma-task-name": "Controller status and capabilities",
"ma-task-registry": "urn:ietf:lmap:control:http_controller_status_and_capabilities"
},
{
"ma-task-name": "Controller instruction",
"ma-task-registry": "urn:ietf:lmap:control:http_controller_instruction"
},
{
"ma-task-name": "Report",
"ma-task-registry": "urn:ietf:lmap:report:http_report"
},
{
"ma-task-name": "UDP Latency",
"ma-task-registry": "urn:ietf:ippm:measurement:UDPLatency-Poisson-XthPercentileMean"
}
]
}
}
After fetching the status and capabilties the Controller issues and
Instruction to the MA to perform a single UDP latency measurement
task 4 times a day and to report the results immediately.
// Instruction
{
"ma-instruction": {
"ma-instruction-tasks": [
{
"ma-task-name": "UDP Latency",
"uri": "urn:ietf:ippm:measurement:UDPLatency-Poisson-XthPercentileMean",
"ma-task-options": [
{"name": "X", "value": "99"},
{"name":"rate", "value": "5"},
{"name":"duration", "value": "30.000"},
{"name":"interface", "value": "broadband"},
{"name":"destination-ip", "value": {"version":"ipv4", "ip-address":"192.168.2.54"}},
{"name":"destination-port", "value": "50000"},
{"name":"source-port", "value": "50000"}
],
"ma-task-suppress-by-default": "TRUE"
},
{
"ma-task-name": "Report",
"uri": "urn:ietf:lmap:report:http_report",
"ma-task-options": [
{"name": "report-with-no-data", "value": "FALSE"}
],
"ma-task-suppress-by-default": "FALSE"
}
]
"ma-report-channels": [
{
"ma-channel-name": "Collector A",
"ma-channel-target": "http://www.example2.com/lmap/collector",
"ma-channel-credientials": { } // structure of certificate ommitted for brevity
}
]
"ma-instruction-schedules": [
{
"ma-schedule-name": "4 times daily test UDP latency and report",
"ma-schedule-tasks": {
{
"ma-schedule-task-name": "UDP Latency",
"ma-schedule-task-datasets": [
{
"ma-schedule-task-output-task-names": "Report"
}
]
},
{
"ma-schedule-task-name": "Report",
"ma-schedule-task-datasets": [
{
"ma-schedule-task-channel-names": "Collector A"
}
]
}
}
"ma-schedule-timing": {
"ma-timing-name": "once every 6 hours",
"ma-timing-calendar": {
"ma-calendar-hours": ["00", "06", "12", "18"],
"ma-calendar-minutes": ["00"],
"ma-calendar-seconds": ["00"]
}
"ma-timing-random-spread": "21600000"
}
}
]
}
}
The report task in the Instruction is executed immediately after the
UDP test and transfers the following data to the Collector.
// Report
{
ma-report: {
"ma-report-date": "2014-06-09T02:30:45+00:00",
"ma-report-agent-id": "550e8400-e29b-41d4-a716-446655440000",
"ma-report-tasks": [
"ma-report-task-config": {
"ma-task-name": "UDP Latency",
"uri": "urn:ietf:ippm:measurement:UDPLatency-Poisson-XthPercentileMean",
"ma-task-options": [
{"name": "X", "value": "99"},
{"name":"rate", "value": "5"},
{"name":"duration", "value": "30.000"},
{"name":"interface", "value": "broadband"},
{"name":"destination-ip", "value": {"version":"ipv4", "ip-address":"192.168.2.54"}},
{"name":"destination-port", "value": "50000"},
{"name":"source-port", "value": "50000"}
]
},
"ma-report-task-column-labels": ["time", "conflicting-tasks", "cross-traffic", "mean"],
"ma-report-task-rows": [
{"2014-06-09T02:30:10+00:00", "", "0", "20.13"}
]
]
}
}
The Controller decides that there is a problem with the UDP L:atency
test and issues a Suppression Instruction. Since the task is marked
as suppressable by default, simply turning on suppression will stop
the task being executed in future.
// Suppression
{
"ma-instruction": {
"ma-suppression": {
"ma-suppression-enabled": "TRUE"
{
}
}
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 work in part on the Leone research project, which Schoenwaelder work in part on the Leone research project, which
receives funding from the European Union Seventh Framework Programme receives funding from the European Union Seventh Framework Programme
[FP7/2007-2013] under grant agreement number 317647. [FP7/2007-2013] under grant agreement number 317647.
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, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the [RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the
Internet: Timestamps", RFC 3339, July 2002. Internet: Timestamps", RFC 3339, July 2002.
7.2. Informative References 8.2. Informative References
[I-D.bagnulo-ippm-new-registry] [I-D.bagnulo-ippm-new-registry]
Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and
A. Morton, "A registry for commonly used metrics", A. Morton, "A registry for commonly used metrics", draft-
draft-bagnulo-ippm-new-registry-01 (work in progress), bagnulo-ippm-new-registry-01 (work in progress), July
July 2013. 2013.
[I-D.ietf-lmap-framework] [I-D.ietf-lmap-framework]
Eardley, P., Morton, A., Bagnulo, M., Burbridge, T., 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 platforms (LMAP)", measurement platforms (LMAP)", draft-ietf-lmap-
draft-ietf-lmap-framework-03 (work in progress), framework-03 (work in progress), January 2014.
January 2014.
[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, Information Models and Data Models", RFC 3444, January
January 2003. 2003.
Authors' Addresses Authors' Addresses
Trevor Burbridge Trevor Burbridge
British Telecom BT
Adastral Park, Martlesham Heath Adastral Park, Martlesham Heath
Ipswich, IP5 3RE Ipswich IP5 3RE
United Kingdom United Kingdom
Email: trevor.burbridge@bt.com
Philip Eardley Philip Eardley
British Telecom BT
Adastral Park, Martlesham Heath Adastral Park, Martlesham Heath
Ipswich, IP5 3RE Ipswich IP5 3RE
United Kingdom United Kingdom
Email: philip.eardley@bt.com
Marcelo Bagnulo Marcelo Bagnulo
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
Av. Universidad 30 Av. Universidad 30
Leganes, Madrid, 28911 Leganes, Madrid 28911
Spain Spain
Email: marcelo@it.uc3m.es
Juergen Schoenwaelder Juergen Schoenwaelder
Jacobs University Bremen Jacobs University Bremen
Campus Ring 1 Campus Ring 1
Bremen, 28759 Bremen 28759
Germany Germany
Email: j.schoenwaelder@jacobs-university.de
 End of changes. 110 change blocks. 
415 lines changed or deleted 1030 lines changed or added

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