draft-ietf-lmap-information-model-09.txt   draft-ietf-lmap-information-model-10.txt 
Network Working Group T. Burbridge Network Working Group T. Burbridge
Internet-Draft P. Eardley Internet-Draft P. Eardley
Intended status: Standards Track BT Intended status: Standards Track BT
Expires: September 22, 2016 M. Bagnulo Expires: January 9, 2017 M. Bagnulo
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
J. Schoenwaelder J. Schoenwaelder
Jacobs University Bremen Jacobs University Bremen
March 21, 2016 July 8, 2016
Information Model for Large-Scale Measurement Platforms (LMAP) Information Model for Large-Scale Measurement Platforms (LMAP)
draft-ietf-lmap-information-model-09 draft-ietf-lmap-information-model-10
Abstract Abstract
This Information Model applies to the Measurement Agent within a This Information Model applies to the Measurement Agent within a
Large-Scale Measurement Platform. As such it outlines the Large-Scale Measurement Platform. As such it outlines the
information that is (pre-)configured on the Measurement Agent or information that is (pre-)configured on the Measurement Agent or
exists in communications with a Controller or Collector within an exists in communications with a Controller or Collector within an
LMAP framework. The purpose of such an Information Model is to LMAP framework. The purpose of such an Information Model is to
provide a protocol and device independent view of the Measurement provide a protocol and device independent view of the Measurement
Agent that can be implemented via one or more Control and Report Agent that can be implemented via one or more Control and Report
skipping to change at page 1, line 47 skipping to change at page 1, line 47
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 22, 2016. This Internet-Draft will expire on January 9, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 5 3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 5
3.1. Pre-Configuration Information . . . . . . . . . . . . . . 9 3.1. Pre-Configuration Information . . . . . . . . . . . . . . 8
3.1.1. Definition of ma-preconfig-obj . . . . . . . . . . . 10 3.1.1. Definition of ma-preconfig-obj . . . . . . . . . . . 9
3.2. Configuration Information . . . . . . . . . . . . . . . . 10 3.2. Configuration Information . . . . . . . . . . . . . . . . 10
3.2.1. Definition of ma-config-obj . . . . . . . . . . . . . 12 3.2.1. Definition of ma-config-obj . . . . . . . . . . . . . 11
3.3. Instruction Information . . . . . . . . . . . . . . . . . 13 3.3. Instruction Information . . . . . . . . . . . . . . . . . 13
3.3.1. Definition of ma-instruction-obj . . . . . . . . . . 16 3.3.1. Definition of ma-instruction-obj . . . . . . . . . . 15
3.3.2. Definition of ma-suppression-obj . . . . . . . . . . 16 3.3.2. Definition of ma-suppression-obj . . . . . . . . . . 16
3.4. Logging Information . . . . . . . . . . . . . . . . . . . 17 3.4. Logging Information . . . . . . . . . . . . . . . . . . . 17
3.4.1. Definition of ma-log-obj . . . . . . . . . . . . . . 19 3.4.1. Definition of ma-log-obj . . . . . . . . . . . . . . 18
3.5. Capability and Status Information . . . . . . . . . . . . 19 3.5. Capability and Status Information . . . . . . . . . . . . 19
3.5.1. Definition of ma-capability-obj . . . . . . . . . . . 19 3.5.1. Definition of ma-capability-obj . . . . . . . . . . . 19
3.5.2. Definition of ma-capability-task-obj . . . . . . . . 20 3.5.2. Definition of ma-capability-task-obj . . . . . . . . 20
3.5.3. Definition of ma-status-obj . . . . . . . . . . . . . 20 3.5.3. Definition of ma-status-obj . . . . . . . . . . . . . 20
3.5.4. Definition of ma-status-schedule-obj . . . . . . . . 21 3.5.4. Definition of ma-status-schedule-obj . . . . . . . . 21
3.5.5. Definition of ma-status-action-obj . . . . . . . . . 22 3.5.5. Definition of ma-status-action-obj . . . . . . . . . 22
3.5.6. Definition of ma-status-suppression-obj . . . . . . . 24 3.5.6. Definition of ma-status-suppression-obj . . . . . . . 24
3.5.7. Definition of ma-interface-obj . . . . . . . . . . . 25 3.5.7. Definition of ma-status-interface-obj . . . . . . . . 24
3.6. Reporting Information . . . . . . . . . . . . . . . . . . 26 3.6. Reporting Information . . . . . . . . . . . . . . . . . . 25
3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 27 3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 27
3.6.2. Definition of ma-report-result-obj . . . . . . . . . 28 3.6.2. Definition of ma-report-result-obj . . . . . . . . . 28
3.6.3. Definition of ma-report-table-obj . . . . . . . . . . 29 3.6.3. Definition of ma-report-conflict-obj . . . . . . . . 29
3.6.4. Definition of ma-report-row-obj . . . . . . . . . . . 29 3.6.4. Definition of ma-report-table-obj . . . . . . . . . . 29
3.6.5. Definition of ma-report-row-obj . . . . . . . . . . . 30
3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 30 3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 30
3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 31 3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 32
3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 32 3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 33
3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 33 3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 34
3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 34 3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 35
3.9. Common Objects: Task Configurations . . . . . . . . . . . 35 3.9. Common Objects: Task Configurations . . . . . . . . . . . 35
3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 36 3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 37
3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 37 3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 37
3.10. Common Objects: Registry Information . . . . . . . . . . 37 3.10. Common Objects: Registry Information . . . . . . . . . . 38
3.10.1. Definition of ma-metric-registry-obj . . . . . . . . 38 3.10.1. Definition of ma-metric-registry-obj . . . . . . . . 38
3.11. Common Objects: Event Information . . . . . . . . . . . . 38 3.11. Common Objects: Event Information . . . . . . . . . . . . 38
3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 39 3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 39
3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 40 3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 40
3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 41 3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 41
3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 42 3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 43
3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 43 3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 43
3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 43 3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 43
3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 43 3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 44
3.11.8. Definition of ma-controller-connected-obj . . . . . 43 3.11.8. Definition of ma-controller-connected-obj . . . . . 44
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44
5. Security Considerations . . . . . . . . . . . . . . . . . . . 44 5. Security Considerations . . . . . . . . . . . . . . . . . . . 44
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 44 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 45
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 45 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.1. Normative References . . . . . . . . . . . . . . . . . . 45 7.1. Normative References . . . . . . . . . . . . . . . . . . 45
7.2. Informative References . . . . . . . . . . . . . . . . . 45 7.2. Informative References . . . . . . . . . . . . . . . . . 46
Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 46 Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 46
A.1. Remove suppress-by-default . . . . . . . . . . . . . . . 46 Appendix B. Non-editorial Changes since -09 . . . . . . . . . . 46
A.2. Overlapping schedules/actions are skipped . . . . . . . . 46 Appendix C. Non-editorial Changes since -08 . . . . . . . . . . 47
A.3. Storage usage reporting and control . . . . . . . . . . . 46 Appendix D. Non-editorial Changes since -07 . . . . . . . . . . 47
A.4. Configuration vs. instruction: ma-task-obj . . . . . . . 46 Appendix E. Non-editorial Changes since -06 . . . . . . . . . . 47
A.5. Streamline the reporting model . . . . . . . . . . . . . 46 Appendix F. Non-editorial Changes since -05 . . . . . . . . . . 48
Appendix B. Non-editorial Changes since -08 . . . . . . . . . . 47 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49
Appendix C. Non-editorial Changes since -07 . . . . . . . . . . 47
Appendix D. Non-editorial Changes since -06 . . . . . . . . . . 47
Appendix E. Non-editorial Changes since -05 . . . . . . . . . . 48
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 48
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 4, line 45 skipping to change at page 4, line 43
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 form 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. To 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 uses a programming language-like notation to define the This document uses a programming language-like notation to define the
properties of the objects of the information model. An optional properties of the objects of the information model. An optional
property is enclosed by square brackets, [ ], and a list property is property is enclosed by square brackets, [ ], and a list property is
indicated by two numbers in angle brackets, <m..n>, where m indicates indicated by two numbers in angle brackets, <m..n>, where m indicates
the minimal number of values, and n is the maximum. The symbol * for the minimal number of values, and n is the maximum. The symbol * for
n means no upper bound. n means no upper bound.
skipping to change at page 5, line 37 skipping to change at page 5, line 30
1. Pre-Configuration Information. Information pre-configured on the 1. Pre-Configuration Information. Information pre-configured on the
Measurement Agent prior to any communication with other Measurement Agent prior to any communication with other
components of the LMAP architecture (i.e., the Controller, components of the LMAP architecture (i.e., the Controller,
Collector and Measurement Peers), specifically detailing how to Collector and Measurement Peers), specifically detailing how to
communicate with a Controller and whether the device is enabled communicate with a Controller and whether the device is enabled
to participate as an MA. to participate as an MA.
2. Configuration Information. Update of the pre-configuration 2. Configuration Information. Update of the pre-configuration
information during the registration of the MA or subsequent information during the registration of the MA or subsequent
communication with the Controller, along with the configuration communication with the Controller, along with the configuration
of further parameters about the MA (rather than the Tasks it of further parameters about the MA (rather than the Measurement
should perform) that were not mandatory for the initial Tasks it should perform) that were not mandatory for the initial
communication between the MA and a Controller. 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 Tasks that should be from the Controller pertaining to the Measurement Tasks that
executed. This includes the task execution Schedules (other than should be executed. This includes the task execution Schedules
the Controller communication Schedule supplied as (other than the Controller communication Schedule supplied as
(pre)configuration information) and related information such as (pre)configuration information) and related information such as
the Task Configuration, communication Channels to Collectors and the Task Configuration, communication Channels to Collectors and
schedule Timing information. It also includes Task Suppression schedule Event and Timing information. It also includes Task
information that is used to over-ride normal Task execution. Suppression information that is used to over-ride normal Task
execution.
4. Logging Information. Information transmitted from the MA to the 4. Logging Information. Information transmitted from the MA to the
Controller detailing the results of any configuration operations Controller detailing the results of any configuration operations
along with error and status information from the operation of the along with error and status information from 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.
skipping to change at page 7, line 5 skipping to change at page 6, line 47
Instruction information which have been previously set on the MA. Instruction information which have been previously set on the MA.
Lastly, while some protocols may simply overwrite information (for Lastly, while some protocols may simply overwrite information (for
example refreshing the entire Instruction Information), other example refreshing the entire Instruction Information), other
protocols may have the ability to update or delete selected items of protocols may have the ability to update or delete selected items of
information. information.
The information in these six sections is captured by a number of The information in these six sections is captured by a number of
common information objects. These objects are also described later common information objects. These objects are also described later
in this document and comprise of: in this document and comprise of:
1. Schedules. A set of Schedules tell the MA to do something. 1. Schedules. A set of Schedules tells the MA to do something.
Without a Schedule no Task (from a measurement to reporting or Without a Schedule no Task (from a measurement to reporting or
communicating with the Controller) is ever executed. Schedules communicating with the Controller) is ever executed. Schedules
are used within the Instruction to specify what tasks should be are used within the Instruction to specify what tasks should be
performed, when, and how to direct their results. A Schedule is performed, when, and how to direct their results. A Schedule is
also used within the pre-Configuration and Configuration also used within the pre-Configuration and Configuration
information in order to execute the Task or Tasks required to information in order to execute the Task or Tasks required to
communicate with the Controller. communicate with the Controller. A specific Schedule can only be
active once. Attempts to start a Schedule while the same
Schedule is still active will fail.
2. Channels. A set of Channel objects are used to communicate with 2. Channels. A set of Channel objects are used to communicate with
a number of endpoints (i.e., the Controller and Collectors). a number of endpoints (i.e., the Controller and Collectors).
Each Channel object contains the information required for the Each Channel object contains the information required for the
communication with a single endpoint such as the target location communication with a single endpoint such as the target location
and security details. and security details.
3. Task Configurations. A set of Task Configurations is used to 3. Task Configurations. A set of Task Configurations is used to
configure the Tasks that are run by the MA. This includes the configure the Tasks that are run by the MA. This includes the
registry entries for the Task and any configuration parameters. registry entries for the Task and any configuration parameters.
Task Configurations are referenced from a Schedule in order to Task Configurations are referenced from a Schedule in order to
specify what Tasks the MA should execute. specify what Tasks the MA should execute.
4. Events. A set of Event objects that can be referenced from the 4. Events. A set of Event objects that can be referenced from the
Schedules. Each Schedule always references exactly one Event Schedules. Each Schedule always references exactly one Event
object. An Event object specifies either a singleton or series object that determines when the schedule is executed. An Event
of events that indicate when Tasks should be executed. A object specifies either a singleton or series of events that
commonly used kind of Event objects are Timing objects. indicate when Tasks should be executed. A commonly used kind of
Event objects are Timing objects.
Figure 1 illustrates the structure in which these common information Figure 1 illustrates the structure in which these common information
objects are referenced. The references are achieved by each object objects are referenced. The references are achieved by each object
(Task Configuration, Event) being given a short textual name that is (Task Configuration, Event) being given a short textual name that is
used by other objects. The objects shown in parenthesis are part of used by other objects. The objects shown in parenthesis are part of
the internal object structure of a Schedule. Channels are not shown the internal object structure of a Schedule. Channels are not shown
in the diagram since they are only used as an option by selected Task in the diagram since they are only used as an option by selected Task
Configurations but are similarly referenced using a short text name. Configurations but are similarly referenced using a short text name.
Schedule Schedule
|-- triggered by --> Event |-- triggered by --> Event
| |
|-- executes --> Action 1 |-- executes --> Action 1
| |-- using --> Task Configuration | |-- using --> Task Configuration
| | | |
| `-- feeding to --> Destination Schedule | `-- feeding to --> Destination Schedule
: :
: :
`-- exceutes --> Action N `-- executes --> Action N
|-- using --> Task Configuration |-- using --> Task Configuration
| |
`-- feeding to --> Destination Schedule `-- feeding to --> Destination Schedule
Figure 1: Relationship between Schedules, Events, Actions, Task Figure 1: Relationship between Schedules, Events, Actions, Task
Configurations, and Destination Schedules Configurations, and Destination Schedules
It should be clear that the top-level behavior of an MA is simply to It should be clear that the top-level behavior of an MA is simply to
execute Schedules. Every Action contained in a Schedule is defined execute Schedules. Every Action contained in a Schedule is defined
as a Task. As such, these Actions are configured through Task as a Task. As such, these Actions are configured through Task
skipping to change at page 8, line 38 skipping to change at page 8, line 21
Tasks can implement a variety of different types of Actions. While Tasks can implement a variety of different types of Actions. While
in terms of the Information Model, all Tasks have the same structure, in terms of the Information Model, all Tasks have the same structure,
it can help conceptually to think of different Task categories: it can help conceptually to think of different Task categories:
1. Measurement Tasks measure some aspect of network performance or 1. Measurement Tasks measure some aspect of network performance or
traffic. They may also capture contextual information from the traffic. They may also capture contextual information from the
MA device or network interfaces such as the device type or MA device or network interfaces such as the device type or
interface speed. interface speed.
2. Data Transfer Tasks 2. Data Transfer Tasks support the communication with a Controller
and Collectors:
A. Reporting Tasks report the results of Measurement Tasks to A. Reporting Tasks report the results of Measurement Tasks to
Collectors Collectors
B. Control Task(s) implement the Control Protocol and B. Control Task(s) implement the Control Protocol and
communicate with the Controller. communicate with the Controller.
3. Data Analysis Tasks can exist to analyse data from other 3. Data Analysis Tasks can exist to analyse data from other
Measurement Tasks locally on the MA Measurement Tasks locally on the MA
skipping to change at page 11, line 43 skipping to change at page 11, line 29
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 executing any Optionally an MA can also be configured to stop executing any
Instruction Schedule if the Controller is unreachable. This can be Instruction Schedule if the Controller is unreachable. This can be
used as a fail-safe to stop Measurement and other Tasks being used as a fail-safe to stop Measurement and other Tasks being
conducted when there is doubt that the Instruction Information is conducted when there is doubt that the Instruction Information is
still valid. This is simply represented as a time window in seconds still valid. This is simply represented as a time window in seconds
since the last communication with the Controller after which since the last communication with the Controller after which an Event
Instruction Schedules are to be suspended. The appropriate value of is generated that can trigger the suspension of Instruction
the time window will depend on the specified communication Schedule Schedules. The appropriate value of the time window will depend on
with the Controller and the duration for which the system is willing the specified communication Schedule with the Controller and the
to tolerate continued operation with potentially stale Instruction duration for which the system is willing to tolerate continued
Information. operation with potentially stale Instruction Information.
While Pre-Configuration Information is persistent upon device reset While Pre-Configuration Information is persistent upon device reset
or power cycle, the persistency of the Configuration Information may or power cycle, the persistency of the Configuration Information may
be device dependent. Some devices may revert back to their pre- be device dependent. Some devices may revert back to their pre-
configuration state upon reboot or factory reset, while other devices configuration state upon reboot or factory reset, while other devices
may store all Configuration and Instruction information in persistent may store all Configuration and Instruction information in persistent
storage. A Controller can check whether an MA has the latest storage. A Controller can check whether an MA has the latest
Configuration and Instruction information by examining the Capability Configuration and Instruction information by examining the Capability
and Status information for the MA. and Status information for the MA.
It should be noted that control schedules and tasks cannot be
suppressed as evidenced by the lack of suppression information in the
Configuration. The control schedule must only reference tasks listed
as control tasks (i.e., within the Configuration information). Any
suppress-by-default flag against control tasks will be ignored.
3.2.1. Definition of ma-config-obj 3.2.1. Definition of ma-config-obj
object { object {
uuid ma-config-agent-id; uuid ma-config-agent-id;
ma-task-obj ma-config-control-tasks<1..*>; ma-task-obj ma-config-control-tasks<1..*>;
ma-channel-obj ma-config-control-channels<1..*>; ma-channel-obj ma-config-control-channels<1..*>;
ma-schedule-obj ma-config-control-schedules<1..*>; ma-schedule-obj ma-config-control-schedules<1..*>;
[uri ma-config-device-id;] [uri ma-config-device-id;]
credentials ma-config-credentials; credentials ma-config-credentials;
[string ma-config-group-id;] [string ma-config-group-id;]
[string ma-config-measurement-point;] [string ma-config-measurement-point;]
[boolean ma-config-report-agent-id;] [boolean ma-config-report-agent-id;]
skipping to change at page 14, line 18 skipping to change at page 13, line 51
specified by the Instruction Schedules (and optionally to stop specified by the Instruction Schedules (and optionally to stop
ongoing Tasks). ongoing Tasks).
A Task Configuration is used to configure the mandatory and optional A Task Configuration is used to configure the mandatory and optional
parameters of a Task. It also serves to instruct the MA about the parameters of a Task. It also serves to instruct the MA about the
Task including the ability to resolve the Task to an executable and Task including the ability to resolve the Task to an executable and
specifying the schema for the Task parameters. specifying the schema for the Task parameters.
A Report Channel defines how to communicate with a single remote A Report Channel defines how to communicate with a single remote
system specified by a URL. A Report Channel is used to send results system specified by a URL. A Report Channel is used to send results
to single Collector but is no different in terms of the Information to a single Collector but is no different in terms of the Information
Model to the Control Channel used to transfer information between the Model to the Control Channel used to transfer information between the
MA and the Controller. Several Report Channels can be defined to MA and the Controller. Several Report Channels can be defined to
enable results to be split or duplicated across different enable results to be split or duplicated across different
destinations. A single Channel can be used by multiple (reporting) destinations. A single Channel can be used by multiple (reporting)
Task Configurations to transfer data to the same Collector. A single Task Configurations to transfer data to the same Collector. A single
Reporting Task Configuration can also be included in multiple Reporting Task Configuration can also be included in multiple
Schedules. E.g., a single Collector may receive data at three Schedules. E.g., a single Collector may receive data at three
different cycle rates, one Schedule reporting hourly, another different cycle rates, one Schedule reporting hourly, another
reporting daily and a third specifying that results should be sent reporting daily and a third specifying that results should be sent
immediately for on-demand measurement tasks. Alternatively multiple immediately for on-demand measurement tasks. Alternatively multiple
skipping to change at page 15, line 5 skipping to change at page 14, line 35
from running on the MA for a defined or indefinite period. While from running on the MA for a defined or indefinite period. While
conceptually measurements can be stopped by simply removing them from conceptually measurements can be stopped by simply removing them from
the Measurement Schedule, splitting out separate information on the Measurement Schedule, splitting out separate information on
Measurement Suppression allows this information to be updated on the Measurement Suppression allows this information to be updated on the
MA on a different timing cycle or protocol implementation to the MA on a different timing cycle or protocol implementation to the
Measurement Schedule. It is also considered that it will be easier Measurement Schedule. It is also considered that it will be easier
for a human operator to implement a temporary explicit suppression for a human operator to implement a temporary explicit suppression
rather than having to move to a reduced Schedule and then roll-back rather than having to move to a reduced Schedule and then roll-back
at a later time. at a later time.
The explicit Suppression instruction message is able to simply It should be noted that control schedules and tasks cannot be
enable/disable all Instruction Tasks (that are enabled for default suppressed as evidenced by the lack of suppression information in the
suppression) as well as having fine control on which Tasks are Configuration. The control schedule must only reference tasks listed
suppressed. Suppression of both specified Task Configurations and as control tasks (i.e., within the Configuration information).
Measurement Schedules is supported. Support for disabling specific
Task Configurations allows malfunctioning or mis-configured Tasks or A single Suppression object is able to enable/disable a set of
Task Configurations that have an impact on a particular part of the Instruction Tasks that are tagged for suppression. This enabled fine
grained control on which Tasks are suppressed. Suppression of both
matching Actions and Measurement Schedules is supported. Support for
disabling specific Actions allows malfunctioning or mis-configured
Tasks or Actions 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
targeted. Support for disabling specific Schedules allows for targeted. Support for disabling specific Schedules allows for
particularly heavy cycles or sets of less essential Measurement Tasks particularly heavy cycles or sets of less essential Measurement Tasks
to be suppressed quickly and effectively. Note that Suppression has to be suppressed quickly and effectively. Note that Suppression has
no effect on either Controller Tasks or Controller Schedules. no effect on either Controller Tasks or Controller Schedules.
When no tasks or schedules are explicitly listed, all Instruction
tasks will be suppressed (or not) as indicated by the suppress-by-
default flag in the Task Configuration. If tasks or schedules are
listed explicitly then only these listed tasks or schedules will be
suppressed regardless of the suppress-by-default flag. If both
individual tasks and individual schedules are listed then only the
listed schedules, plus the listed tasks where present in other
schedules, will be suppressed regardless of the suppress-by-default
flag.
Suppression stops new Tasks from executing. In addition, the Suppression stops new Tasks from executing. In addition, the
Suppression information also supports an additional Boolean that is Suppression information also supports an additional Boolean that is
used to select whether on-going tasks are also to be terminated. 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 Suppression information (e.g., changing 'enabled' to False) or
through the use of an End time such that the Measurement Suppression through the use of an End time such that the Measurement Suppression
will no longer be in effect beyond this time. The datetime format will no longer be in effect beyond this time. The datetime format
used for all elements in the information model (e.g., the suppression used for all elements in the information model (e.g., the suppression
start and end dates) MUST conform to RFC 3339 [RFC3339]. start and end dates) MUST conform to RFC 3339 [RFC3339].
skipping to change at page 16, line 45 skipping to change at page 16, line 22
[boolean ma-suppression-stop-running;] [boolean ma-suppression-stop-running;]
} ma-suppression-obj; } ma-suppression-obj;
The ma-suppression-obj controls the suppression of schedules or The ma-suppression-obj controls the suppression of schedules or
actions and consists of the following elements: actions and consists of the following elements:
ma-suppression-name: A name uniquely identifying a ma-suppression-name: A name uniquely identifying a
suppression. suppression.
ma-suppression-start: The optional event indicating when ma-suppression-start: The optional event indicating when
suppression starts. The default value suppression starts. If not present,
is 'immediate'. the suppression starts immediately,
i.e., as if the value would be
'immediate'.
ma-suppression-end: The optional event indicating when ma-suppression-end: The optional event indicating when
suppression ends. The default value is suppression ends. If not present, the
'indefinite'. suppression does not have a defined
end, i.e., the suppression remains for
an indefinite period of time.
ma-suppression-match: An optional and possibly empty ma-suppression-match: An optional and possibly empty
unordered set of match pattern. The unordered set of match pattern. The
suppression will apply to all schedules suppression will apply to all schedules
(and their actions) that have a (and their actions) that have a
matching value in their ma-schedule- matching value in their ma-schedule-
suppression-tags and all actions that suppression-tags and all actions that
have a matching value in their ma- have a matching value in their ma-
action-suppression-tags. If not action-suppression-tags. Pattern
present, the suppression affects matching is done using glob style
actions that refer to a task with pattern (see below).
suppress-by-default set to true.
Pattern matching is done using glob
style pattern (see below).
ma-suppression-stop-running: An optional boolean indicating whether ma-suppression-stop-running: An optional boolean indicating whether
suppression will stop any running suppression will stop any running
schedules or actions. The default matching schedules or actions. The
value for this boolean is false. default value for this boolean is
false.
Glob style pattern matching is following POSIX.2 fnmatch() without Glob style pattern matching is following POSIX.2 fnmatch() without
special treatment of file paths: special treatment of file paths:
* matches a sequence of characters * matches a sequence of characters
? matches a single character ? matches a single character
[seq] matches any character in seq [seq] matches any character in seq
[!seq] matches any character not in seq [!seq] matches any character not in seq
A backslash followed by a character matches the following character. A backslash followed by a character matches the following character.
skipping to change at page 21, line 4 skipping to change at page 20, line 25
ma-capability-task-name: A name uniquely identifying a task. ma-capability-task-name: A name uniquely identifying a task.
ma-capability-task-metrics: A possibly empty unordered set of ma-capability-task-metrics: A possibly empty unordered set of
registered metrics and associated roles registered metrics and associated roles
this task implements. this task implements.
ma-capability-task-version: The version of the measurement task. ma-capability-task-version: The version of the measurement task.
3.5.3. Definition of ma-status-obj 3.5.3. Definition of ma-status-obj
object { object {
uuid ma-status-agent-id; uuid ma-status-agent-id;
uri ma-status-device-id; uri ma-status-device-id;
datetime ma-status-last-started; datetime ma-status-last-started;
ma-interface-obj ma-status-interfaces<0..*>; ma-status-interface-obj ma-status-interfaces<0..*>;
[ma-status-schedule-obj ma-status-schedules<0..*>;] [ma-status-schedule-obj ma-status-schedules<0..*>;]
[ma-status-suppression-obj ma-status-suppressions<0..*>;] [ma-status-suppression-obj ma-status-suppressions<0..*>;]
} ma-status-obj; } ma-status-obj;
The ma-status-obj provides status information about the measurement The ma-status-obj provides status information about the measurement
agent and consists of the following elements: agent and consists of the following elements:
ma-status-agent-id: A uuid uniquely identifying the measurement ma-status-agent-id: A uuid uniquely identifying the measurement
agent. agent.
skipping to change at page 21, line 38 skipping to change at page 21, line 13
for each schedule. for each schedule.
ma-status-suppressions: An optional unordered set of status objects ma-status-suppressions: An optional unordered set of status objects
for each suppression. for each suppression.
3.5.4. Definition of ma-status-schedule-obj 3.5.4. Definition of ma-status-schedule-obj
object { object {
string ma-status-schedule-name; string ma-status-schedule-name;
string ma-status-schedule-state; string ma-status-schedule-state;
int ma-status-schedule-storage;
counter ma-status-schedule-invocations; counter ma-status-schedule-invocations;
counter ma-status-schedule-suppressions; counter ma-status-schedule-suppressions;
counter ma-status-schedule-overlaps; counter ma-status-schedule-overlaps;
counter ma-status-schedule-failures; counter ma-status-schedule-failures;
datetime ma-status-schedule-last-invocation; datetime ma-status-schedule-last-invocation;
[ma-status-action-obj ma-status-schedule-actions<0..*>;] [ma-status-action-obj ma-status-schedule-actions<0..*>;]
} ma-status-schedule-obj; } ma-status-schedule-obj;
The ma-status-schedule-obj provides status information about that The ma-status-schedule-obj provides status information about the
status of a schedule and consists of the following elements: status of a schedule and consists of the following elements:
ma-status-schedule-name: The name of the schedule this ma-status-schedule-name: The name of the schedule this
status object refers to. status object refers to.
ma-status-schedule-state: The state of the schedule. The ma-status-schedule-state: The state of the schedule. The
value 'enabled' indicates that value 'enabled' indicates that
the schedule is currently the schedule is currently
enabled. The value 'suppressed' enabled. The value 'suppressed'
indicates that the schedule is indicates that the schedule is
currently suppressed. The value currently suppressed. The value
'disabled' indicates that the 'disabled' indicates that the
schedule is currently disabled. schedule is currently disabled.
The value 'running' indicates The value 'running' indicates
that the schedule is currently that the schedule is currently
running. running.
ma-status-schedule-storage: The amount of storage allocated
to the schedule in bytes. This
object reports the amount of
allocated physical storage and
not the storage used by logical
data records. Data models should
use a 64-bit integer type.
ma-status-schedule-invocations Number of invocations of this ma-status-schedule-invocations Number of invocations of this
schedule. This counter does not schedule. This counter does not
include suppressed invocations or include suppressed invocations or
invocations that were prevented invocations that were prevented
due to an overlap with a previous due to an overlap with a previous
invocation of this schedule. invocation of this schedule.
ma-status-schedule-suppressions Number of suppressed executions ma-status-schedule-suppressions Number of suppressed executions
of this schedule. of this schedule.
skipping to change at page 22, line 39 skipping to change at page 22, line 22
invocation of this schedule. invocation of this schedule.
ma-status-schedule-failures Number of failed executions of ma-status-schedule-failures Number of failed executions of
this schedule. A failed this schedule. A failed
execution is an execution where execution is an execution where
at least one action failed. at least one action failed.
ma-status-schedule-last-invocation: The date and time of the last ma-status-schedule-last-invocation: The date and time of the last
invocation of this schedule. invocation of this schedule.
ma-status-schedule-last-invocation: The date and time of the last
invocation of this schedule.
ma-status-schedule-actions: An optional ordered list of ma-status-schedule-actions: An optional ordered list of
status objects for each action of status objects for each action of
the schedule. the schedule.
3.5.5. Definition of ma-status-action-obj 3.5.5. Definition of ma-status-action-obj
object { object {
string ma-status-action-name; string ma-status-action-name;
string ma-status-action-state; string ma-status-action-state;
counter ma-status-action-invocations; int ma-status-action-storage;
counter ma-status-action-suppressions; counter ma-status-action-invocations;
counter ma-status-action-overlaps; counter ma-status-action-suppressions;
counter ma-status-action-failures; counter ma-status-action-overlaps;
counter ma-status-action-failures;
datetime ma-status-action-last-invocation; datetime ma-status-action-last-invocation;
datetime ma-status-action-last-completion; datetime ma-status-action-last-completion;
int ma-status-action-last-status; int ma-status-action-last-status;
string ma-status-action-last-message; string ma-status-action-last-message;
datetime ma-status-action-last-failed-completion; datetime ma-status-action-last-failed-completion;
int ma-status-action-last-failed-status; int ma-status-action-last-failed-status;
string ma-status-action-last-failed-message; string ma-status-action-last-failed-message;
} ma-status-action-obj; } ma-status-action-obj;
The ma-status-action-obj provides status information about an action The ma-status-action-obj provides status information about an action
skipping to change at page 23, line 40 skipping to change at page 23, line 18
currently enabled. The currently enabled. The
value 'suppressed' indicates value 'suppressed' indicates
that the action is currently that the action is currently
suppressed. The value suppressed. The value
'disabled' indicates that 'disabled' indicates that
the action is currently the action is currently
disabled. The value disabled. The value
'running' indicates that the 'running' indicates that the
action is currently running. action is currently running.
ma-status-schedule-invocations Number of invocations of ma-status-action-storage: The amount of storage
allocated to the action in
bytes. This object reports
the amount of allocated
physical storage and not the
storage used by logical data
records. Data models should
use a 64-bit integer type.
ma-status-action-invocations Number of invocations of
this action. This counter this action. This counter
does not include suppressed does not include suppressed
invocations or invocations invocations or invocations
that were prevented due to that were prevented due to
an overlap with a previous an overlap with a previous
invocation of this action. invocation of this action.
ma-status-schedule-suppressions Number of suppressed ma-status-action-suppressions Number of suppressed
executions of this action. executions of this action.
ma-status-schedule-overlaps Number of executions ma-status-action-overlaps Number of executions
prevented due to overlaps prevented due to overlaps
with a previous invocation with a previous invocation
of this action. of this action.
ma-status-schedule-failures Number of failed executions ma-status-action-failures Number of failed executions
of this action. of this action.
ma-status-action-last-invocation: The date and time of the ma-status-action-last-invocation: The date and time of the
last invocation of this last invocation of this
action. action.
ma-status-action-last-completion: The date and time of the ma-status-action-last-completion: The date and time of the
last completion of this last completion of this
action. action.
skipping to change at page 25, line 13 skipping to change at page 24, line 46
object refers to. object refers to.
ma-status-schedule-state: The state of the suppression. The value ma-status-schedule-state: The state of the suppression. The value
'enabled' indicates that the suppression 'enabled' indicates that the suppression
is currently enabled. The value 'active is currently enabled. The value 'active
indicates that the suppression is indicates that the suppression is
currently active. The value 'disabled' currently active. The value 'disabled'
indicates that the suppression is indicates that the suppression is
currently disabled. currently disabled.
3.5.7. Definition of ma-interface-obj 3.5.7. Definition of ma-status-interface-obj
object { object {
string ma-interface-name; string ma-status-interface-name;
string ma-interface-type; string ma-status-interface-type;
[int ma-interface-speed;] [int ma-status-interface-speed;]
[string ma-interface-link-layer-address;] [string ma-status-interface-link-layer-address;]
[ip-address ma-interface-ip-addresses<0..*>;] [ip-address ma-status-interface-ip-addresses<0..*>;]
[ip-address ma-interface-gateways<0..*>;] [ip-address ma-status-interface-gateways<0..*>;]
[ip-address ma-interface-dns-servers<0..*>;] [ip-address ma-status-interface-dns-servers<0..*>;]
} ma-interface-obj; } ma-status-interface-obj;
The ma-interface-obj provides status information about network The ma-status-interface-obj provides status information about network
interfaces and consists of the following elements: interfaces and consists of the following elements:
ma-interface-name: A name uniquely identifying a ma-status-interface-name: A name uniquely identifying a
network interface. network interface.
ma-interface-type: The type of the network interface. ma-status-interface-type: The type of the network
interface.
ma-interface-speed: An optional indication of the speed ma-status-interface-speed: An optional indication of the
of the interface (measured in bits- speed of the interface
per-second). (measured in bits-per-
second).
ma-interface-link-layer-address: An optional link-layer address of ma-status-interface-link-layer-address: An optional link-layer
the interface. address of the interface.
ma-interface-ip-addresses: An optional ordered list of IP ma-status-interface-ip-addresses: An optional ordered list of
addresses assigned to the IP addresses assigned to the
interface. interface.
ma-interface-gateways: An optional ordered list of ma-status-interface-gateways: An optional ordered list of
gateways assigned to the interface. gateways assigned to the
interface.
ma-interface-dns-servers: An optional ordered list of DNS ma-status-interface-dns-servers: An optional ordered list of
servers assigned to the interface. DNS servers assigned to the
interface.
3.6. Reporting Information 3.6. Reporting Information
At a point in time specified by a Schedule, the MA will execute a At a point in time specified by a Schedule, the MA will execute tasks
task or tasks that communicate a set of measurement results to the that communicate a set of measurement results to the Collector.
Collector. These Reporting Tasks will be configured to transmit task These Reporting Tasks will be configured to transmit task results
results over a specified Report Channel to a Collector. over a specified Report Channel to a Collector.
It should be noted that the output from Tasks does not need to be It should be noted that the output from Tasks does not need to be
sent to communication Channels. It can alternatively, or sent to communication Channels. It can alternatively, or
additionally, be sent to other Tasks on the MA. This facilitates additionally, be sent to other Tasks on the MA. This facilitates
using a first Measurement Task to control the operation of a later using a 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 first probing available line speed and then
adjusting the operation of a video testing measurement) 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). Of course, subsequent Tasks performance drops from earlier levels). Of course, subsequent Tasks
also include Tasks that implement the reporting protocol(s) and also include Tasks that implement the reporting protocol(s) and
skipping to change at page 26, line 34 skipping to change at page 26, line 24
to avoid repetition of report header and Measurement Task to avoid repetition of report header and Measurement Task
Configuration information. The report starts with the timestamp of Configuration information. The report starts with the timestamp of
the report generation on the MA and details about the MA including the report generation on the MA and details about the MA including
the optional Measurement Agent ID and Group ID (controlled by the the optional Measurement Agent ID and Group ID (controlled by the
Configuration Information). Configuration Information).
Much of the report Information is optional and will depend on the Much of the report Information is optional and will depend on the
implementation of the Reporting Task and any parameters defined in implementation of the Reporting Task and any parameters defined in
the Task Configuration for the Reporting Task. For example some the Task Configuration for the Reporting Task. For example some
Reporting Tasks may choose not to include the Measurement Task Reporting Tasks may choose not to include the Measurement Task
Configuration or scheduled task parameters, while others may do so Configuration or Action parameters, while others may do so dependent
dependent on the Controller setting a configurable parameter in the on the Controller setting a configurable parameter in the Task
Task Configuration. Configuration.
It is possible for a Reporting Task to send just the Report header It is possible for a Reporting Task to send just the Report header
(datetime and optional agent ID and/or Group ID) if no measurement (datetime and optional agent ID and/or Group ID) if no measurement
data is available. Whether to send such empty reports again is data is available. Whether to send such empty reports again is
dependent on the implementation of the Reporting Task and potential dependent on the implementation of the Reporting Task and potential
Task Configuration parameter. Task Configuration parameter.
The handling of measurement data on the MA before generating a Report The handling of measurement data on the MA before generating a Report
and transfer from the MA to the Collector is dependent on the and transfer from the MA to the Collector is dependent on the
implementation of the device, MA and/or scheduled Tasks and not implementation of the device, MA and/or scheduled Tasks and not
defined by the LMAP standards. Such decisions may include limits to defined by the LMAP standards. Such decisions may include limits to
the measurement data storage and what to do when such available the measurement data storage and what to do when such available
storage becomes depleted. storage becomes depleted. It is generally suggested that
implementations running out of storage stop executing new measurement
tasks and retain old measurement data.
No context information, such as line speed or broadband product are No context information, such as line speed or broadband product are
included within the report header information as this data is included within the report header information as this data is
reported by individual tasks at the time they execute. Either a reported by individual tasks at the time they execute. Either a
Measurement Task can report contextual parameters that are relevant Measurement Task can report contextual parameters that are relevant
to that particular measurement, or specific tasks can be used to to that particular measurement, or specific tasks can be used to
gather a set of contextual and environmental data. at certain times gather a set of contextual and environmental data at certain times
independent of the reporting schedule. independent of the reporting schedule.
After the report header information the results are reported grouped After the report header information the results are reported grouped
according to different Measurement Task Configurations. Each Task according to different Measurement Task Configurations. Each Task
section optionally starts with replicating the Measurement Task section optionally starts with replicating the Measurement Task
Configuration information before the result headers (titles for data Configuration information before the result headers (titles for data
columns) and the result data rows. The Options reported are those columns) and the result data rows. The Options reported are those
used for the scheduled execution of the Measurement Task and used for the scheduled execution of the Measurement Task and
therefore include the Options specified in the Task Configuration as therefore include the Options specified in the Task Configuration as
well as additional Options specified in the Scheduled Task. The well as additional Options specified in the Action. The Action
Scheduled Task Options are appended to the Task Configuration Options Options are appended to the Task Configuration Options in exactly the
in exactly the same order as they were provided to the Task during same order as they were provided to the Task during execution.
execution.
The result row data includes a time for the start of the measurement The result row data includes a time for the start of the measurement
and optionally an end time where the duration also needs to be and optionally an end time where the duration also needs to be
considered in the data analysis. considered in the data analysis.
Some Measurement Tasks may optionally include an indication of the Some Measurement Tasks may optionally include an indication of the
cross-traffic although the definition of cross-traffic is left up to cross-traffic although the definition of cross-traffic is left up to
each individual Measurement Task. Some Measurement Tasks may also each individual Measurement Task. Some Measurement Tasks may also
output other environmental measures in addition to cross-traffic such output other environmental measures in addition to cross-traffic such
as CPU utlilisation or interface speed. as CPU utlilisation or interface speed.
skipping to change at page 28, line 29 skipping to change at page 28, line 23
ma-report-results: An optional and possibly empty ma-report-results: An optional and possibly empty
unordered set of result objects. unordered set of result objects.
3.6.2. Definition of ma-report-result-obj 3.6.2. Definition of ma-report-result-obj
object { object {
string ma-report-result-schedule-name; string ma-report-result-schedule-name;
string ma-report-result-action-name; string ma-report-result-action-name;
string ma-report-result-task-name; string ma-report-result-task-name;
[ma-metric-registry-obj ma-report-result-metrics<0..*>;]
[ma-option-obj ma-report-result-options<0..*>;] [ma-option-obj ma-report-result-options<0..*>;]
[string ma-report-result-tags<0..*>;] [string ma-report-result-tags<0..*>;]
datetime ma-report-result-start-time; datetime ma-report-result-start-time;
[datetime ma-report-result-end-time;] [datetime ma-report-result-end-time;]
string ma-report-result-conflicts<0..*>; int ma-report-result-status;
[ma-report-conflict-obj ma-report-result-conflicts<0..*>;]
[ma-report-table-obj ma-report-result-tables<0..*>;] [ma-report-table-obj ma-report-result-tables<0..*>;]
} ma-report-result-obj; } ma-report-result-obj;
The ma-report-result-obj provides the meta-data of a result report of The ma-report-result-obj provides the meta-data of a result report of
a single executed action. It consists of the following elements: a single executed action. It consists of the following elements:
ma-report-result-schedule-name: The name of the schedule that ma-report-result-schedule-name: The name of the schedule that
produced the result. produced the result.
ma-report-result-action-name: The name of the action in the ma-report-result-action-name: The name of the action in the
schedule that produced the result. schedule that produced the result.
ma-report-result-task-name: The name of the task that produced ma-report-result-task-name: The name of the task that produced
the result. the result.
ma-report-result-metrics: An optional and possibly empty
unordered set of registered metrics
and associated rulels that are
reported.
ma-report-result-options: An optional ordered joined list of ma-report-result-options: An optional ordered joined list of
options provided by the task object options provided by the task object
and the action object. and the action object when the action
was started.
ma-report-result-tags: An optional unordered set of tags. ma-report-result-tags: An optional unordered set of tags.
This is the joined set of tags This is the joined set of tags
defined for the task object and the provided by the task object and the
action object. action object and schedule object
when the action was started.
ma-report-result-start-time: The date and time of the start of the ma-report-result-start-time: The date and time of the start of the
measurement task that produced the task that produced the reported
reported result values. result values.
ma-report-result-end-time: An optional date and time indicating ma-report-result-end-time: An optional date and time indicating
when the measurement task finished. when the task finished.
ma-report-result-conflicts: A possibly empty set of names of ma-report-result-status: The status code returned by the
tasks that might have impacted the execution of the task.
ma-report-result-conflicts: A possibly empty set of conflict
actions that might have impacted the
measurement results being reported. measurement results being reported.
ma-report-result-tables: An optional and possibly empty ma-report-result-tables: An optional and possibly empty
unordered set of result tables. unordered set of result tables.
3.6.3. Definition of ma-report-table-obj 3.6.3. Definition of ma-report-conflict-obj
object { object {
[string] ma-report-table-column-labels<0..*>;] string ma-report-conflict-schedule-name;
[ma-report-row-obj ma-report-table-rows<0..*>;] string ma-report-conflict-action-name;
string ma-report-conflict-task-name;
} ma-report-conflict-obj;
The ma-report-conflict-obj provides the information about conflicting
action that might have impacted the measurement results. It consists
of the following elements:
ma-report-result-schedule-name: The name of the schedule that may
have impacted the result.
ma-report-result-action-name: The name of the action in the
schedule that may have impacted the
result.
ma-report-result-task-name: The name of the task that may have
impacted the result.
3.6.4. Definition of ma-report-table-obj
object {
[ma-metric-registry-obj ma-report-table-metrics<0..*>;]
[string] ma-report-table-column-labels<0..*>;]
[ma-report-row-obj ma-report-table-rows<0..*>;]
} ma-report-table-obj; } ma-report-table-obj;
The ma-report-table-obj represents a result table and consists of the The ma-report-table-obj represents a result table and consists of the
following elements: following elements:
ma-report-table-metrics: An optional and possibly empty
unordered set of registered metrics
and associated roles that are
reported.
ma-report-table-column-labels: An optional and possibly empty ma-report-table-column-labels: An optional and possibly empty
ordered list of column labels. ordered list of column labels.
ma-report-table-rows: A possibly empty ordered list of ma-report-table-rows: A possibly empty ordered list of
result rows. result rows.
3.6.4. Definition of ma-report-row-obj 3.6.5. Definition of ma-report-row-obj
object { object {
data ma-report-row-values<0..*>; data ma-report-row-values<0..*>;
} ma-report-row-obj; } ma-report-row-obj;
The ma-report-row-obj represents a result row and consists of the The ma-report-row-obj represents a result row and consists of the
following elements: following elements:
ma-report-row-values: A possibly empty ordered list of result ma-report-row-values: A possibly empty ordered list of result
values. When present, it contains an values. When present, it contains an
ordered list of values that align to the ordered list of values that align to the
set of column labels for the report. set of column labels for the report.
3.7. Common Objects: Schedules 3.7. Common Objects: Schedules
A Schedule specifies the execution of a single or repeated series of A Schedule specifies the execution of a single or repeated series of
Actions. An Action is a Task with additional specific parameters. Actions. An Action is a Task with additional specific parameters.
Each Schedule contains basically two elements: an ordered list of Each Schedule contains basically two elements: an ordered list of
Actions to be executed and an Event object for the Schedule. The Actions to be executed and an Event object triggering the execution
Schedule states what Actions to run (with what configuration) and of the Schedule. The Schedule states what Actions to run (with what
when to run the Actions. configuration) and when to run the Actions. A Schedule may
optionally have an Event that stops the execution of the Schedule or
a maximum duration after which a schedule is stopped.
Multiple Actions contained as an ordered list of a single Measurement Multiple Actions contained as an ordered list of a single Measurement
Schedule will be executed according to the execution mode of the Schedule will be executed according to the execution mode of the
Schedule. In sequential mode, Actions will be executed sequentially Schedule. In sequential mode, Actions will be executed sequentially
and in parallel mode, all Actions will be executed concurrently. In and in parallel mode, all Actions will be executed concurrently. In
pipelined mode, data produced by one Action is passed to the pipelined mode, data produced by one Action is passed to the
subsequent Action. Actions contained in different Schedules execute subsequent Action. Actions contained in different Schedules execute
in parallel with such conflicts being reported in the Reporting in parallel with such conflicts being reported in the Reporting
Information where necessary. If two or more Schedules have the same Information where necessary. If two or more Schedules have the same
start time, then the two will execute in parallel. There is no start time, then the two will execute in parallel. There is no
skipping to change at page 31, line 4 skipping to change at page 31, line 31
For example, a Measurement Task might report routine results to a For example, a Measurement Task might report routine results to a
data Reporting Task in a Schedule that communicates hourly via the data Reporting Task in a Schedule that communicates hourly via the
Broadband PPP interface, but also outputs emergency conditions via an Broadband PPP interface, but also outputs emergency conditions via an
alarm Reporting Task in a different Schedule communicating alarm Reporting Task in a different Schedule communicating
immediately over a GPRS channel. Note that task-to-task data immediately over a GPRS channel. Note that task-to-task data
transfer is always specified in association with the scheduled transfer is always specified in association with the scheduled
execution of the sending task - there is no need for a corresponding execution of the sending task - there is no need for a corresponding
input specification for the receiving task. While it is likely that input specification for the receiving task. While it is likely that
an MA implementation will use a queue mechanism between the Schedules an MA implementation will use a queue mechanism between the Schedules
or Actions, this Information Model does not mandate or define a or Actions, this Information Model does not mandate or define a
queue, or any potential associated parameters such as storage size queue. The Information Model, however, reports the storage allocated
and retention policies. to Schedules and Actions so that storage usage can be monitored.
Furthermore, it is recommended that MA implementations by default
retain old data and stop the execution of new measurement tasks if
the MA runs out of storage capacity.
When specifying the task to execute within the Schedule, i.e., When specifying the task to execute within the Schedule, i.e.,
creating an Action, it is possible to add to the task configuration creating an Action, it is possible to add to the Action option
option parameters. This allows the Task Configuration to determine parameters. This allows the Task Configuration to determine the
the common characteristics of a Task, while selected parameters common characteristics of a Task, while selected parameters (e.g.,
(e.g., the test target URL) are defined within the schedule. A the test target URL) are defined within as option parameters of the
single Tasks Configuration can even be used multiple times in the Action in the schedule. A single Tasks Configuration can even be
same schedule with different additional parameters. This allows for used multiple times in the same schedule with different additional
efficiency in creating and transferring the Instruction. Note that parameters. This allows for efficiency in creating and transferring
the semantics of what happens if an option is defined multiple times the Instruction. Note that the semantics of what happens if an
(either in the Task Configuration, Schedule or in both) is not option is defined multiple times (either in the Task Configuration,
standardised and will depend upon the Task. For example, some tasks Action or in both) is not standardised and will depend upon the Task.
may legitimately take multiple values for a single parameter. For example, some tasks may legitimately take multiple values for a
single parameter.
Where Options are specified in both the Schedule and the Task Where Options are specified in both the Schedule and the Task
Configuration, the Schedule Options are appended to those specified Configuration, the Schedule Options are appended to those specified
in the Task Configuration. in the Task Configuration.
Example: An Action of a Schedule references a single Measurement Example: An Action of a Schedule references a single Measurement
Task Configuration for measuring UDP latency. It specifies that Task Configuration for measuring UDP latency. It specifies that
results are to be sent to a Schedule with a Reporting Action. results are to be sent to a Schedule with a Reporting Action.
This Reporting Task of the Reporting Action is executed by a This Reporting Task of the Reporting Action is executed by a
separate Schedule that specifies that it should run hourly at 5 separate Schedule that specifies that it should run hourly at 5
minutes past the hour. When run this Reporting Action takes the minutes past the hour. When run this Reporting Action takes the
data generated by the UDP latency Measurement Task as well as any data generated by the UDP latency Measurement Task as well as any
other data to be included in the hourly report and transfers it to other data to be included in the hourly report and transfers it to
the Collector over the Report Channel specified within its own the Collector over the Report Channel specified within its own
Schedule. Schedule.
Schedules and Actions may optionally also be given tags that are
included in result reports sent to a Collector. In addition,
schedules can be given suppression tags that may be used to select
Schedules and Actions for suppression.
3.7.1. Definition of ma-schedule-obj 3.7.1. Definition of ma-schedule-obj
object { object {
string ma-schedule-name; string ma-schedule-name;
ma-event-obj ma-schedule-start; ma-event-obj ma-schedule-start;
[ma-event-obj ma-schedule-end;] [ma-event-obj ma-schedule-end;]
[int ma-schedule-duration;] [int ma-schedule-duration;]
ma-action-obj ma-schedule-actions<0..*>; ma-action-obj ma-schedule-actions<0..*>;
string ma-schedule-execution-mode; string ma-schedule-execution-mode;
[string ma-schedule-tags<0..*>;] [string ma-schedule-tags<0..*>;]
[string ma-schedule-suppression-tags<0..*>;] [string ma-schedule-suppression-tags<0..*>;]
} ma-schedule-obj; } ma-schedule-obj;
The ma-schedule-obj is the main scheduling object. It consists of The ma-schedule-obj is the main scheduling object. It consists of
the following elements: the following elements:
skipping to change at page 33, line 5 skipping to change at page 33, line 41
object { object {
string ma-action-name; string ma-action-name;
string ma-action-config-task-name; string ma-action-config-task-name;
[ma-option-obj ma-action-task-options<0..*>;] [ma-option-obj ma-action-task-options<0..*>;]
[string ma-action-destinations<0..*>;] [string ma-action-destinations<0..*>;]
[string ma-action-tags<0..*>;] [string ma-action-tags<0..*>;]
[string ma-action-suppression-tags<0..*>;] [string ma-action-suppression-tags<0..*>;]
} ma-action-obj; } ma-action-obj;
The ma-action-obj models an a task together with its schedule The ma-action-obj models a task together with its schedule specific
specific task options and destination tasks. It consists of the task options and destination schedules. It consists of the following
following elements: elements:
ma-action-name: A name uniquely identifying an action ma-action-name: A name uniquely identifying an action
of a scheduling object. of a scheduling object.
ma-action-config-task-name: A name identifying the configured task ma-action-config-task-name: A name identifying the configured task
to be invoked by the action. to be invoked by the action.
ma-action-task-options: An optional and possibly empty ordered ma-action-task-options: An optional and possibly empty ordered
list of options (name-value pairs) that list of options (name-value pairs) that
are passed to the task by appending are passed to the task by appending
skipping to change at page 34, line 23 skipping to change at page 35, line 13
from within Reporting Tasks executed by an Instruction Schedule. from within Reporting Tasks executed by an Instruction Schedule.
Multiple interfaces are also supported. For example the Reporting Multiple interfaces are also supported. For example the Reporting
Task could be configured to send some results over GPRS. This is Task could be configured to send some results over GPRS. This is
especially useful when such results indicate the loss of connectivity especially useful when such results indicate the loss of connectivity
on a different network interface. on a different network interface.
Example: A Channel used for reporting results may specify that Example: A Channel used for reporting results may specify that
results are to be sent to the URL (https://collector.example.org/ results are to be sent to the URL (https://collector.example.org/
report/), using the appropriate digital certificate to establish a report/), using the appropriate digital certificate to establish a
secure channel.. secure channel.
3.8.1. Definition of ma-channel-obj 3.8.1. Definition of ma-channel-obj
object { object {
string ma-channel-name; string ma-channel-name;
url ma-channel-target; url ma-channel-target;
credentials ma-channel-credentials; credentials ma-channel-credentials;
[string ma-channel-interface-name;] [string ma-channel-interface-name;]
} ma-channel-obj; } ma-channel-obj;
skipping to change at page 36, line 12 skipping to change at page 36, line 46
included in the task options and will have a value that matches a included in the task options and will have a value that matches a
channel name that has been defined in the Instruction. Similarly channel name that has been defined in the Instruction. Similarly
Control Tasks will have a similar option with the value set to a Control Tasks will have a similar option with the value set to a
specified Control Channel. specified Control Channel.
A reporting task might also have a flag parameter to indicate whether A reporting task might also have a flag parameter to indicate whether
to report if there is no measurement result data pending to be to report if there is no measurement result data pending to be
transferred to the Collector. In addition many tasks will also take transferred to the Collector. In addition many tasks will also take
as a parameter which interface to operate over. as a parameter which interface to operate over.
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 tags In addition the Task Configuration may optionally also be given tags
that can carry a Measurement Cycle ID. The purpose of this ID is to that can carry a Measurement Cycle ID. The purpose of this ID is to
easily identify a set of measurement results that have been produced easily identify a set of measurement results that have been produced
by Measurement Tasks with comparable Options. This ID could be by Measurement Tasks with comparable Options. This ID could be
manually incremented or otherwise changed when an Option change is manually incremented or otherwise changed when an Option change is
implemented which could mean that two sets of results should not be implemented which could mean that two sets of results should not be
directly compared. directly compared.
3.9.1. Definition of ma-task-obj 3.9.1. Definition of ma-task-obj
object { object {
string ma-task-name; string ma-task-name;
ma-metric-registry-obj ma-task-metrics<0..*>; ma-metric-registry-obj ma-task-metrics<0..*>;
[ma-option-obj ma-task-options<0..*>;] [ma-option-obj ma-task-options<0..*>;]
[boolean ma-task-suppress-by-default;]
[string ma-task-tags<0..*>;] [string ma-task-tags<0..*>;]
} ma-task-obj; } ma-task-obj;
The ma-task-obj defines a configured task that can be invoked as part The ma-task-obj defines a configured task that can be invoked as part
of an action. A configured task can be referenced by its name and it of an action. A configured task can be referenced by its name and it
contains a set of URIs to link to a metrics registry or a local contains a set of URIs to link to a metrics registry or a local
specification of the task. Options allow the configuration of task specification of the task. Options allow the configuration of task
parameters (in the form of name-value pairs). The ma-task-obj parameters (in the form of name-value pairs). The ma-task-obj
consists of the following elements: consists of the following elements:
skipping to change at page 37, line 9 skipping to change at page 37, line 35
ma-task-metrics: A possibly empty unordered set of ma-task-metrics: A possibly empty unordered set of
registered metrics and associated roles registered metrics and associated roles
the configured measurement task will the configured measurement task will
use. use.
ma-task-options: An optional and possibly empty ordered ma-task-options: An optional and possibly empty ordered
list of options (name-value pairs) that list of options (name-value pairs) that
are passed to the configured task. are passed to the configured task.
ma-task-suppress-by-default: A boolean flag indicating whether this
configured task will be suppressed by
default. The default value of the flag
is true.
ma-task-tags: An optional unordered set of tags that ma-task-tags: An optional unordered set of tags that
are reported together with the are reported together with the
measurement results to a collector. measurement results to a collector.
3.9.2. Definition of ma-option-obj 3.9.2. Definition of ma-option-obj
object { object {
string ma-option-name; string ma-option-name;
[object ma-option-value;] [object ma-option-value;]
} ma-option-obj; } ma-option-obj;
The ma-option-obj models a name-value pair and consists of the The ma-option-obj models a name-value pair and consists of the
following elements: following elements:
ma-option-name: The name of the option. ma-option-name: The name of the option.
ma-option-value: The optional value of the option. ma-option-value: The optional value of the option.
While many of the Task Configuration Options are left to individual While many of the Task Configuration Options are left to individual
tasks to define, some common Options are used by multiple tasks and tasks to define, some common Options are used by multiple tasks and
benefit from standardisation. These Options are Channel and Role. benefit from standardisation:
o Channel is used to specify the details of an endpoint for Control o Channel is used to specify the details of an endpoint for Control
or Reporting Task communications and is detailed elsewhere in this or Reporting Task communications and is detailed elsewhere in this
document. The common option name for specifying the channel is document. The common option name for specifying the channel is
"channel". "channel".
o Role is used to specify which Role the task should be performing
(as defined in the registry) if multiple roles are available. The
common option name for specifying the role is "role".
3.10. Common Objects: Registry Information 3.10. Common Objects: Registry Information
Tasks and actions can be associated with entries in a metrics Tasks and actions can be associated with entries in a metrics
registry. A metric is identified by a URI and a metric may have registry. A metric is identified by a URI and a metric may have
associated roles. associated roles.
3.10.1. Definition of ma-metric-registry-obj 3.10.1. Definition of ma-metric-registry-obj
object { object {
uri ma-metric-registry-entry; uri ma-metric-registry-entry;
skipping to change at page 38, line 25 skipping to change at page 38, line 40
ma-metric-registry-entry: A URI identifying a metric in a metric ma-metric-registry-entry: A URI identifying a metric in a metric
registry. registry.
ma-metric-registry-role: An optional and possibly empty unordered ma-metric-registry-role: An optional and possibly empty unordered
set of roles for the metric. set of roles for the metric.
3.11. Common Objects: Event Information 3.11. Common Objects: Event Information
The Event information object used throughout the information models The Event information object used throughout the information models
can initially take one of five different forms. Additional forms may can initially take one of several different forms. Additional forms
be defined later in order to bind the execution of schedules to may be defined later in order to bind the execution of schedules to
additional events. The initially defined five Event forms are: additional events. The initially defined Event forms are:
1. Periodic Timing: Emits multiple events periodically according to 1. Periodic Timing: Emits multiple events periodically according to
an interval time defined in seconds an interval time defined in seconds
2. Calendar Timing: Emits multiple events according to a calendar 2. Calendar Timing: Emits multiple events according to a calendar
based pattern, e.g., 22 minutes past each hour of the day on based pattern, e.g., 22 minutes past each hour of the day on
weekdays weekdays
3. One Off Timing: Emits one event at a specific date and time 3. One Off Timing: Emits one event at a specific date and time
4. Immediate: Emits one event as soon as possible 4. Immediate: Emits one event as soon as possible
5. Startup: Emits an event whenever the MA is started (e.g., at 5. Startup: Emits an event whenever the MA is started (e.g., at
device startup) device startup)
6. Controller Lost: Emits an event when connectivity to the
controller has been lost
7. Controller Connected: Emits an event when connectivity to the
controller has been (re-)established
Optionally each of the Event options may also specify a randomness Optionally each of the Event options may also specify a randomness
that should be evaluated and applied separately to each indicated that should be evaluated and applied separately to each indicated
event. This randomness parameter defines a uniform interval in event. This randomness parameter defines a uniform interval in
seconds over which the start of the task is delayed from the starting seconds over which the start of the task is delayed from the starting
times specified by the timing object. times specified by the event object.
Both the Periodic and Calendar timing objects allow for a series of Both the Periodic and Calendar timing objects allow for a series of
Actions to be executed. While both have an optional end time, it is Actions to be executed. While both have an optional end time, it is
best practice to always configure an end time and refresh the best practice to always configure an end time and refresh the
information periodically to ensure that lost MAs do not continue information periodically to ensure that lost MAs do not continue
their tasks forever. their tasks forever.
Startup events are only created on device startup, not when a new Startup events are only created on device startup, not when a new
Instruction is transferred to the MA. If scheduled task execution is Instruction is transferred to the MA. If scheduled task execution is
desired both on the transfer of the Instruction and on device restart desired both on the transfer of the Instruction and on device restart
skipping to change at page 39, line 26 skipping to change at page 39, line 46
3.11.1. Definition of ma-event-obj 3.11.1. Definition of ma-event-obj
object { object {
string ma-event-name; string ma-event-name;
union { union {
ma-periodic-obj ma-event-periodic; ma-periodic-obj ma-event-periodic;
ma-calendar-obj ma-event-calendar; ma-calendar-obj ma-event-calendar;
ma-one-off-obj ma-event-one-off; ma-one-off-obj ma-event-one-off;
ma-immediate-obj ma-event-immediate; ma-immediate-obj ma-event-immediate;
ma-startup-obj ma-event-startup; ma-startup-obj ma-event-startup;
ma-immediate-obj ma-event-immediate;
ma-startup-obj ma-event-startup;
ma-controller-lost-obj ma-event-controller-lost; ma-controller-lost-obj ma-event-controller-lost;
ma-controller-connected-obj ma-event-controller-connected; ma-controller-connected-obj ma-event-controller-connected;
} }
[int ma-event-random-spread;] [int ma-event-random-spread;]
} ma-event-obj; } ma-event-obj;
The ma-event-obj is the main event object. Event objects are The ma-event-obj is the main event object. Event objects are
identified by a name. A generic event object itself contains a more identified by a name. A generic event object itself contains a more
specific event object. The set of specific event objects should be specific event object. The set of specific event objects should be
extensible. The initial set of specific event objects is further extensible. The initial set of specific event objects is further
described below. The ma-event-obj also includes an optional uniform described below. The ma-event-obj also includes an optional uniform
random spread that can be used to randomize the start times of random spread that can be used to randomize the start times of
scheduled tasks. The ma-event-obj consists of the following schedules triggered by an event. The ma-event-obj consists of the
elements: following elements:
ma-event-name: The name uniquely identifies an event ma-event-name: The name uniquely identifies an event
object. Schedules refer to event object. Schedules refer to event
objects by this name. objects by this name.
ma-event-periodic: The ma-event-periodic is present for ma-event-periodic: The ma-event-periodic is present for
periodic timing objects. periodic timing objects.
ma-event-calendar: The ma-event-calendar is present for ma-event-calendar: The ma-event-calendar is present for
calendar timing objects. calendar timing objects.
skipping to change at page 41, line 7 skipping to change at page 41, line 25
ma-periodic-end: The optional date and time at which ma-periodic-end: The optional date and time at which
Schedules using this object are last Schedules using this object are last
started. If not present it defaults to started. If not present it defaults to
indefinite. indefinite.
ma-periodic-interval: The interval defines the time in seconds ma-periodic-interval: The interval defines the time in seconds
between two consecutive starts of tasks. between two consecutive starts of tasks.
3.11.3. Definition of ma-calendar-obj 3.11.3. Definition of ma-calendar-obj
Calendar Timing supports the routine execution of Actions at specific Calendar Timing supports the routine execution of Schedules at
times and/or on specific dates. It can support more flexible timing specific times and/or on specific dates. It can support more
than Periodic Timing since the execution of Actions does not have to flexible timing than Periodic Timing since the execution of Schedules
be uniformly spaced. For example a Calendar Timing could support the does not have to be uniformly spaced. For example a Calendar Timing
execution of a Measurement Task every hour between 6pm and midnight could support the execution of a Measurement Task every hour between
on weekdays only. 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 times in relation to network usage (e.g., at peak times). meaningful times in relation to network usage (e.g., at peak times).
If the optional timezone offset is not supplied then local system If the optional timezone offset is not supplied then local system
time is assumed. This is essential in some use cases to ensure time is assumed. This is essential in some use cases to ensure
consistent peak-time measurements as well as supporting MA devices consistent peak-time measurements as well as supporting MA devices
that may be in an unknown timezone or roam between different that may be in an unknown timezone or roam between different
timezones (but know their own timezone information such as through timezones (but know their own timezone information such as through
the mobile network). the mobile network).
skipping to change at page 44, line 29 skipping to change at page 45, line 4
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. These mechanisms are important to ensure that the MA information. These mechanisms are important to ensure that the MA
cannot be hijacked, for example to participate in a DDoS attack. cannot be hijacked, for example to participate in a distributed
denial of service attack.
The second consideration is that no mandated information items should The second consideration is that no mandated information items should
pose a risk to confidentiality or privacy given such secure pose a risk to confidentiality or privacy given such secure
communication channels. For this latter reason items such as the MA communication channels. For this latter reason items such as the MA
context and MA ID are left optional and can be excluded from some context and MA ID are left optional and can be excluded from some
deployments. This would, for example, allow the MA to remain deployments. This would, for example, allow the MA to remain
anonymous and for information about location or other context that anonymous and for information about location or other context that
might be used to identify or track the MA to be omitted or blurred. might be used to identify or track the MA to be omitted or blurred.
The Information Model should support wherever relevant, all the The Information Model should support wherever relevant, all the
skipping to change at page 45, line 33 skipping to change at page 46, line 10
Aitken, P., and A. Akhter, "A Framework for Large-Scale Aitken, P., and A. Akhter, "A Framework for Large-Scale
Measurement of Broadband Performance (LMAP)", RFC 7594, Measurement of Broadband Performance (LMAP)", RFC 7594,
DOI 10.17487/RFC7594, September 2015, DOI 10.17487/RFC7594, September 2015,
<http://www.rfc-editor.org/info/rfc7594>. <http://www.rfc-editor.org/info/rfc7594>.
7.2. Informative References 7.2. Informative References
[I-D.ietf-ippm-metric-registry] [I-D.ietf-ippm-metric-registry]
Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A. Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A.
Akhter, "Registry for Performance Metrics", draft-ietf- Akhter, "Registry for Performance Metrics", draft-ietf-
ippm-metric-registry-05 (work in progress), October 2015. ippm-metric-registry-06 (work in progress), March 2016.
[I-D.ietf-lmap-yang] [I-D.ietf-lmap-yang]
Schoenwaelder, J. and V. Bajpai, "A YANG Data Model for Schoenwaelder, J. and V. Bajpai, "A YANG Data Model for
LMAP Measurement Agents", draft-ietf-lmap-yang-03 (work in LMAP Measurement Agents", draft-ietf-lmap-yang-04 (work in
progress), March 2016. progress), March 2016.
[RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between
Information Models and Data Models", RFC 3444, DOI 10 Information Models and Data Models", RFC 3444, DOI 10
.17487/RFC3444, January 2003, .17487/RFC3444, January 2003,
<http://www.rfc-editor.org/info/rfc3444>. <http://www.rfc-editor.org/info/rfc3444>.
[RFC7398] Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and [RFC7398] Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and
A. Morton, "A Reference Path and Measurement Points for A. Morton, "A Reference Path and Measurement Points for
Large-Scale Measurement of Broadband Performance", RFC Large-Scale Measurement of Broadband Performance", RFC
7398, DOI 10.17487/RFC7398, February 2015, 7398, DOI 10.17487/RFC7398, February 2015,
<http://www.rfc-editor.org/info/rfc7398>. <http://www.rfc-editor.org/info/rfc7398>.
Appendix A. Open Issues Appendix A. Open Issues
A.1. Remove suppress-by-default o There is a proposal to add a cycle number to the result reports
but it is still unclear how exactly the cycle number is calculated
and how parameters needed to calculate the cycle interval are
conveyed to the MA.
The text states already that suppress-by-default (which defaults to o There is a proposal to remove the well-known Channel option name
'true') only applies to measurement tasks but not to control tasks. from the information model.
Hence, a default suppression by default suppresses all non-control
tasks. The proposal is to simply hardwire this. If other sets of
suppression tasks are needed, we should use the tagging mechanism to
define these sets. Having two mechanisms to define set of things to
suppress seems more complex than needed. Proposal: Remove suppress-
by-default and state that default suppression affects all non-control
tasks. More specific suppressions can be configured using tags.
A.2. Overlapping schedules/actions are skipped o There is a potentially unresolved discussion around the ma-
schedule-end and ma-schedule-duration.
Add text that says the execution of actions or schedules is skipped o It may be useful to add ma-capability-tags so that MAs could be
if previous invocations are still running. We already have counters tagged with additional information (e.g., dsl, cable, home,
for this but there probably needs to be some additional text to go office, nat, ipv4, ipv6, ...).
somewhere.
A.3. Storage usage reporting and control Appendix B. Non-editorial Changes since -09
Actions that feed results into other schedules occupy storage space. o Added ma-status-schedule-storage and ma-status-action-storage.
The proposal is to at least report how much storage is allocated to
schedules and actions. Ideally, there would also be controls that
can disable schedules or actions (or through events to start specific
suppressions) if storage is getting tight. Or there should be a
threshold that once crossed causes old data to be deleted. Anything
more reasonable than simply failing once storage has been exhausted.
A.4. Configuration vs. instruction: ma-task-obj o Removed suppress-by-default.
It seems that ma-task-obj should only be configured by a system that o Moved ma-report-result-metrics of the ma-report-result-obj to ma-
has the access rights to setup the measurement agent. The controller report-table-metrics of the ma-report-table-obj so that the
should read the configured tasks and then only install schedules relationship between metrics and result tables is clear.
(with actions), suppressions, and events. That is, changing ma-task-
obj is not part of an instruction but only part of the configuration.
A.5. Streamline the reporting model o Added ma-report-conflict-obj.
The reporting model may need more attention; perhaps things can be o Added ma-report-result-status to ma-report-result-obj.
streamlined and also be made more efficient. Implementation
experience will help to work this out.
Appendix B. Non-editorial Changes since -08 o Several clarifications and bug fixes.
Appendix C. Non-editorial Changes since -08
o Refactored the ma-report-task-obj into the ma-report-result-obj. o Refactored the ma-report-task-obj into the ma-report-result-obj.
o Introduced the ma-report-table-obj so that a result can contain o Introduced the ma-report-table-obj so that a result can contain
multiple tables. multiple tables.
o Report schedule, action, and task name as part of the ma-report- o Report schedule, action, and task name as part of the ma-report-
result-obj. result-obj.
o Report conflicts per ma-report-result-obj and not per ma-report- o Report conflicts per ma-report-result-obj and not per ma-report-
row-obj. row-obj.
o Report the start/end time as part of the ma-report-result-obj. o Report the start/end time as part of the ma-report-result-obj.
Appendix C. Non-editorial Changes since -07 Appendix D. Non-editorial Changes since -07
o Added ma-schedule-end and ma-schedule-duration. o Added ma-schedule-end and ma-schedule-duration.
o Changed the granularity of scheduler timings to seconds. o Changed the granularity of scheduler timings to seconds.
o Added ma-status-suppression-obj to report the status of o Added ma-status-suppression-obj to report the status of
suppressions as done in the YANG data model. suppressions as done in the YANG data model.
o Added counters to schedule and action status objects to match the o Added counters to schedule and action status objects to match the
counters in the YANG data model. counters in the YANG data model.
o Using tags to pass information such as a measurement cycle o Using tags to pass information such as a measurement cycle
identifier to the collector. identifier to the collector.
o Using suppression tags and glob-style matching to select schedules o Using suppression tags and glob-style matching to select schedules
and actions to be suppressed. and actions to be suppressed.
Appendix D. Non-editorial Changes since -06 Appendix E. Non-editorial Changes since -06
o The default execution mode is pipelined (LI12) o The default execution mode is pipelined (LI12)
o Added text to define which action consumes data in sequential, o Added text to define which action consumes data in sequential,
pipelines, and parallel execution mode (LI11) pipelines, and parallel execution mode (LI11)
o Added ma-config-measurement-point, ma-report-measurement-point, o Added ma-config-measurement-point, ma-report-measurement-point,
and ma-config-report-measurement-point to configure and report the and ma-config-report-measurement-point to configure and report the
measurement point (LI10) measurement point (LI10)
o Turned ma-suppression-obj into a list that uses a start event and o Turned ma-suppression-obj into a list that uses a start event and
a stop event to define the start and end of suppression; this a stop event to define the start and end of suppression; this
unifies the handling of suppression and loss of controller unifies the handling of suppression and loss of controller
skipping to change at page 48, line 27 skipping to change at page 48, line 38
o Introduced ma-capability-obj and ma-capability-task-obj to expose o Introduced ma-capability-obj and ma-capability-task-obj to expose
the capabilities of a measurement agent (LI05) the capabilities of a measurement agent (LI05)
o Use 'ordered list' or 'unordered set' instead of list, collection, o Use 'ordered list' or 'unordered set' instead of list, collection,
etc. (LI02) etc. (LI02)
o Clarification that Actions are part of a Schedule (LI03) o Clarification that Actions are part of a Schedule (LI03)
o Deleted terms that are not strictly needed (LI04) o Deleted terms that are not strictly needed (LI04)
Appendix E. Non-editorial Changes since -05 Appendix F. Non-editorial Changes since -05
o A task can now reference multiply registry entries. o A task can now reference multiply registry entries.
o Consistent usage of the term Action and Task. o Consistent usage of the term Action and Task.
o Schedules are triggered by Events instead of Timings; Timings are o Schedules are triggered by Events instead of Timings; Timings are
just one of many possible event sources. just one of many possible event sources.
o Actions feed into other Schedules (instead of Actions within other o Actions feed into other Schedules (instead of Actions within other
Schedules). Schedules).
 End of changes. 114 change blocks. 
259 lines changed or deleted 285 lines changed or added

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