draft-ietf-lmap-information-model-07.txt   draft-ietf-lmap-information-model-08.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: May 4, 2016 M. Bagnulo Expires: September 16, 2016 M. Bagnulo
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
J. Schoenwaelder J. Schoenwaelder
Jacobs University Bremen Jacobs University Bremen
November 1, 2015 March 15, 2016
Information Model for Large-Scale Measurement Platforms (LMAP) Information Model for Large-Scale Measurement Platforms (LMAP)
draft-ietf-lmap-information-model-07 draft-ietf-lmap-information-model-08
Abstract Abstract
This Information Model applies to the Measurement Agent within a This Information Model applies to the Measurement Agent within a
Large-Scale Measurement Platform. As such it outlines the Large-Scale Measurement Platform. As such it outlines the
information that is (pre-)configured on the MA or exists in information that is (pre-)configured on the Measurement Agent or
communications with a Controller or Collector within an LMAP exists in communications with a Controller or Collector within an
framework. The purpose of such an Information Model is to provide a LMAP framework. The purpose of such an Information Model is to
protocol and device independent view of the MA that can be provide a protocol and device independent view of the Measurement
implemented via one or more Control and Report protocols. Agent that can be implemented via one or more Control and Report
protocols.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 46 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 May 4, 2016. This Internet-Draft will expire on September 16, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 4 3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 5
3.1. Pre-Configuration Information . . . . . . . . . . . . . . 8 3.1. Pre-Configuration Information . . . . . . . . . . . . . . 8
3.1.1. Definition of ma-preconfig-obj . . . . . . . . . . . 9 3.1.1. Definition of ma-preconfig-obj . . . . . . . . . . . 9
3.2. Configuration Information . . . . . . . . . . . . . . . . 10 3.2. Configuration Information . . . . . . . . . . . . . . . . 10
3.2.1. Definition of ma-config-obj . . . . . . . . . . . . . 11 3.2.1. Definition of ma-config-obj . . . . . . . . . . . . . 12
3.3. Instruction Information . . . . . . . . . . . . . . . . . 13 3.3. Instruction Information . . . . . . . . . . . . . . . . . 13
3.3.1. Definition of ma-instruction-obj . . . . . . . . . . 15 3.3.1. Definition of ma-instruction-obj . . . . . . . . . . 15
3.3.2. Definition of ma-suppression-obj . . . . . . . . . . 16 3.3.2. Definition of ma-suppression-obj . . . . . . . . . . 16
3.4. Logging Information . . . . . . . . . . . . . . . . . . . 17 3.4. Logging Information . . . . . . . . . . . . . . . . . . . 17
3.4.1. Definition of ma-log-obj . . . . . . . . . . . . . . 18 3.4.1. Definition of ma-log-obj . . . . . . . . . . . . . . 19
3.5. Capability and Status Information . . . . . . . . . . . . 18 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 . . . . . . . . 19 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 . . . . . . . . 20 3.5.4. Definition of ma-status-schedule-obj . . . . . . . . 21
3.5.5. Definition of ma-status-action-obj . . . . . . . . . 21 3.5.5. Definition of ma-status-action-obj . . . . . . . . . 22
3.5.6. Definition of ma-interface-obj . . . . . . . . . . . 22 3.5.6. Definition of ma-status-suppression-obj . . . . . . . 24
3.6. Reporting Information . . . . . . . . . . . . . . . . . . 23 3.5.7. Definition of ma-interface-obj . . . . . . . . . . . 24
3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 25 3.6. Reporting Information . . . . . . . . . . . . . . . . . . 25
3.6.2. Definition of ma-report-task-obj . . . . . . . . . . 25 3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 27
3.6.3. Definition of ma-report-row-obj . . . . . . . . . . . 26 3.6.2. Definition of ma-report-task-obj . . . . . . . . . . 27
3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 27 3.6.3. Definition of ma-report-row-obj . . . . . . . . . . . 28
3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 28 3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 29
3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 29 3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 30
3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 30 3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 32
3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 30 3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 33
3.9. Common Objects: Task Configurations . . . . . . . . . . . 31 3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 33
3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 33 3.9. Common Objects: Task Configurations . . . . . . . . . . . 34
3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 33 3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 35
3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 36
3.10. Common Objects: Registry Information . . . . . . . . . . 34 3.10. Common Objects: Registry Information . . . . . . . . . . 37
3.10.1. Definition of ma-metric-registry-obj . . . . . . . . 34 3.10.1. Definition of ma-metric-registry-obj . . . . . . . . 37
3.11. Common Objects: Event Information . . . . . . . . . . . . 34 3.11. Common Objects: Event Information . . . . . . . . . . . . 37
3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 35 3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 38
3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 37 3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 39
3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 37 3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 40
3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 39 3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 42
3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 39 3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 42
3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 40 3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 42
3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 40 3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 42
3.11.8. Definition of ma-controller-ok-obj . . . . . . . . . 40 3.11.8. Definition of ma-controller-connected-obj . . . . . 43
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43
5. Security Considerations . . . . . . . . . . . . . . . . . . . 40 5. Security Considerations . . . . . . . . . . . . . . . . . . . 43
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 41 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 44
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 41 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1. Normative References . . . . . . . . . . . . . . . . . . 41 7.1. Normative References . . . . . . . . . . . . . . . . . . 44
7.2. Informative References . . . . . . . . . . . . . . . . . 42 7.2. Informative References . . . . . . . . . . . . . . . . . 44
Appendix A. Non-editorial Changes since -06 . . . . . . . . . . 42 Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 45
Appendix B. Non-editorial Changes since -05 . . . . . . . . . . 43 A.1. Remove suppress-by-default . . . . . . . . . . . . . . . 45
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43 A.2. Overlapping schedules/actions are skipped . . . . . . . . 45
A.3. Storage usage reporting and control . . . . . . . . . . . 45
A.4. Configuration vs. instruction: ma-task-obj . . . . . . . 45
A.5. Streamline the reporting model . . . . . . . . . . . . . 46
Appendix B. Non-editorial Changes since -07 . . . . . . . . . . 46
Appendix C. Non-editorial Changes since -06 . . . . . . . . . . 46
Appendix D. Non-editorial Changes since -05 . . . . . . . . . . 47
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 47
1. Introduction 1. Introduction
A large-scale measurement platform is a collection of components that A large-scale measurement platform is a collection of components that
work in a coordinated fashion to perform measurements from a large work in a coordinated fashion to perform measurements from a large
number of vantage points. The main components of a large-scale number of vantage points. The main components of a large-scale
measurement platform are the Measurement Agents (hereafter MAs), the measurement platform are the Measurement Agents (hereafter MAs), the
Controller(s) and the Collector(s). Controller(s) and the Collector(s).
The MAs are the elements actually performing the measurements. The The MAs are the elements actually performing the measurements. The
skipping to change at page 7, line 25 skipping to change at page 7, line 33
commonly used kind of Event objects are Timing objects. commonly used kind of Event objects are Timing objects.
Figure 1 illustrates the structure in which these common information Figure 1 illustrates the structure in which these common information
objects are referenced. The references are achieved by each object objects are referenced. The references are achieved by each object
(Task Configuration, Event) being given a short textual name that is (Task Configuration, Event) being given a short textual name that is
used by other objects. The objects shown in parenthesis are part of used by other objects. The objects shown in parenthesis are part of
the internal object structure of a Schedule. Channels are not shown the internal object structure of a Schedule. Channels are not shown
in the diagram since they are only used as an option by selected Task in the diagram since they are only used as an option by selected Task
Configurations but are similarly referenced using a short text name. Configurations but are similarly referenced using a short text name.
Schedule Schedule
|--- 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 `-- exceutes --> 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
Configurations and executed according to the Event object referenced Configurations and executed according to the Event object referenced
by the Schedule in which they appear. Note, however, that Actions by the Schedule in which they appear. Note, however, that Actions
can have Action specific parameters. can have Action specific parameters.
skipping to change at page 16, line 17 skipping to change at page 16, line 20
ma-instruction-suppressions: An optional possibly empty unordered ma-instruction-suppressions: An optional possibly empty unordered
set of suppression objects. set of suppression objects.
3.3.2. Definition of ma-suppression-obj 3.3.2. Definition of ma-suppression-obj
object { object {
string ma-suppression-name; string ma-suppression-name;
[ma-event-obj ma-suppression-start;] [ma-event-obj ma-suppression-start;]
[ma-event-obj ma-suppression-end;] [ma-event-obj ma-suppression-end;]
[string ma-suppression-tags<0..*>;] [string ma-suppression-match<0..*>;]
[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. The default value
is 'immediate'. is '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. The default value is
'indefinite'. 'indefinite'.
ma-suppression-tags: An optional and possibly empty ma-suppression-match: An optional and possibly empty
unordered set of suppression tags. 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 matching (and their actions) that have a
value in their ma-schedule-suppression- matching value in their ma-schedule-
tags and all actions that have a suppression-tags and all actions that
matching value in their ma-action- have a matching value in their ma-
suppression-tags. If not present, this action-suppression-tags. If not
defaults to all measurement schedules present, the suppression affects
and measurement actions. actions that refer to a task with
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 schedules or actions. The default
value for this boolean is false. value for this boolean is false.
Glob style pattern matching is following POSIX.2 fnmatch() without
special treatment of file paths:
* matches a sequence of characters
? matches a single character
[seq] matches any character in seq
[!seq] matches any character not in seq
A backslash followed by a character matches the following character.
In particular:
\* matches *
\? matches ?
\\ matches \
A sequence seq may be a sequence of characters (e.g., [abc] or a
range of characters (e.g., [a-c]).
3.4. Logging Information 3.4. Logging Information
The MA may report on the success or failure of Configuration or The MA may report on the success or failure of Configuration or
Instruction communications from the Controller. In addition further Instruction communications from the Controller. In addition further
operational logs may be produced during the operation of the MA and operational logs may be produced during the operation of the MA and
updates to capabilities may also be reported. Reporting this updates to capabilities may also be reported. Reporting this
information is achieved in exactly the same manner as scheduling any information is achieved in exactly the same manner as scheduling any
other Task. We make no distinction between a Measurement Task other Task. We make no distinction between a Measurement Task
conducting an active or passive network measurement and one which conducting an active or passive network measurement and one which
solely retrieves static or dynamic information from the MA such as solely retrieves static or dynamic information from the MA such as
skipping to change at page 20, line 8 skipping to change at page 20, line 35
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-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-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.
ma-status-device-id: A URI identifying the device. ma-status-device-id: A URI identifying the device.
ma-status-last-started: The date and time the measurement agent ma-status-last-started: The date and time the measurement agent
last started. last started.
ma-status-interfaces: An unordered set of network interfaces ma-status-interfaces: An unordered set of network interfaces
available on the device. available on the device.
ma-status-schedules: An optional unordered set of status objects ma-status-schedules: An optional unordered set of status objects
for each schedule. for each schedule.
ma-status-suppressions: An optional unordered set of status objects
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;
counter ma-status-schedule-invocations;
counter ma-status-schedule-suppressions;
counter ma-status-schedule-overlaps;
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 that
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 active the schedule is currently
and enabled. The value enabled. The value 'suppressed'
'suppressed' indicates that the indicates that the schedule is
schedule is currently suppressed. currently suppressed. The value
'disabled' indicates that the
The value 'disabled' indicates schedule is currently disabled.
The value 'running' indicates
that the schedule is currently that the schedule is currently
disabled. running.
ma-status-schedule-invocations Number of invocations of this
schedule. This counter does not
include suppressed invocations or
invocations that were prevented
due to an overlap with a previous
invocation of this schedule.
ma-status-schedule-suppressions Number of suppressed executions
of this schedule.
ma-status-schedule-overlaps Number of executions prevented
due to overlaps with a previous
invocation of this schedule.
ma-status-schedule-failures Number of failed executions of
this schedule. A failed
execution is an execution where
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 ma-status-schedule-last-invocation: The date and time of the last
invocation of this schedule. 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;
counter ma-status-action-suppressions;
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
of a schedule and consists of the following elements: of a schedule and consists of the following elements:
ma-status-action-name: The name of the action of a ma-status-action-name: The name of the action of a
schedule this status object schedule this status object
refers to. refers to.
ma-status-action-state: The state of the action. ma-status-action-state: The state of the action.
The value 'enabled' The value 'enabled'
indicates that the action is indicates that the action is
currently active and currently enabled. The
enabled. The value value 'suppressed' indicates
'suppressed' indicates that that the action is currently
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. disabled. The value
'running' indicates that the
action is currently running.
ma-status-schedule-invocations Number of invocations of
this action. This counter
does not include suppressed
invocations or invocations
that were prevented due to
an overlap with a previous
invocation of this action.
ma-status-schedule-suppressions Number of suppressed
executions of this action.
ma-status-schedule-overlaps Number of executions
prevented due to overlaps
with a previous invocation
of this action.
ma-status-schedule-failures Number of failed executions
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.
ma-status-action-last-status: The status code returned by ma-status-action-last-status: The status code returned by
skipping to change at page 22, line 33 skipping to change at page 24, line 17
this action. this action.
ma-status-action-last-failed-status: The status code returned by ma-status-action-last-failed-status: The status code returned by
the last failed execution of the last failed execution of
this action. this action.
ma-status-action-last-failed-message: The status message produced ma-status-action-last-failed-message: The status message produced
by the last failed execution by the last failed execution
of this action. of this action.
3.5.6. Definition of ma-interface-obj 3.5.6. Definition of ma-status-suppression-obj
object {
string ma-status-suppression-name;
string ma-status-suppression-state;
} ma-status-suppression-obj;
The ma-status-suppression-obj provides status information about that
status of a suppression and consists of the following elements:
ma-status-schedule-name: The name of the suppression this status
object refers to.
ma-status-schedule-state: The state of the suppression. The value
'enabled' indicates that the suppression
is currently enabled. The value 'active
indicates that the suppression is
currently active. The value 'disabled'
indicates that the suppression is
currently disabled.
3.5.7. Definition of ma-interface-obj
object { object {
string ma-interface-name; string ma-interface-name;
string ma-interface-type; string ma-interface-type;
[int ma-interface-speed;] [int ma-interface-speed;]
[string ma-interface-link-layer-address;] [string ma-interface-link-layer-address;]
[ip-address ma-interface-ip-addresses<0..*>;] [ip-address ma-interface-ip-addresses<0..*>;]
[ip-address ma-interface-gateways<0..*>;] [ip-address ma-interface-gateways<0..*>;]
[ip-address ma-interface-dns-servers<0..*>;] [ip-address ma-interface-dns-servers<0..*>;]
} ma-interface-obj; } ma-interface-obj;
skipping to change at page 25, line 41 skipping to change at page 28, line 4
ma-report-measurement-point: An optional identifier for the ma-report-measurement-point: An optional identifier for the
measurement point indicating where the measurement point indicating where the
measurement agent is located on a path measurement agent is located on a path
(see [RFC7398] for further details). (see [RFC7398] for further details).
ma-report-tasks: An optional and possibly empty ma-report-tasks: An optional and possibly empty
unordered set of tasks result objects. unordered set of tasks result objects.
3.6.2. Definition of ma-report-task-obj 3.6.2. Definition of ma-report-task-obj
object { object {
string ma-report-task-name; string ma-report-task-name;
[ma-metric-registry-obj ma-report-task-metrics<0..*>;] [ma-metric-registry-obj ma-report-task-metrics<0..*>;]
[ma-option-obj ma-report-task-options<0..*>;] [ma-option-obj ma-report-task-options<0..*>;]
[ma-option-obj ma-report-task-action-options<0..*>;] [ma-option-obj ma-report-task-action-options<0..*>;]
[string ma-report-task-cycle-id;] [string ma-report-task-tags<0..*>;]
[string ma-report-task-column-labels<0..*>;] [string ma-report-task-column-labels<0..*>;]
[ma-report-row-obj ma-report-task-rows<0..*>;] [ma-report-row-obj ma-report-task-rows<0..*>;]
} ma-report-task-obj; } ma-report-task-obj;
The ma-report-task-obj provides the meta-data of a result report of a The ma-report-task-obj provides the meta-data of a result report of a
single task. It consists of the following elements: single task. It consists of the following elements:
ma-report-task-name: A name uniquely identifying the task ma-report-task-name: A name uniquely identifying the task
that produced the results being that produced the results being
reported. reported.
skipping to change at page 26, line 24 skipping to change at page 28, line 33
and associated rulels that are and associated rulels that are
reported. reported.
ma-report-task-options: An optional ordered list of task ma-report-task-options: An optional ordered list of task
options provided by the task object. options provided by the task object.
ma-report-task-action-options: An optional ordered list of action ma-report-task-action-options: An optional ordered list of action
options provided by the action options provided by the action
object. object.
ma-report-task-cycle-id: An optional measurement cycle ma-report-task-tags: An optional unordered set of tags.
identifier.
ma-report-task-column-labels: An optional and possibly empty ma-report-task-column-labels: An optional and possibly empty
ordered list of column labels. ordered list of column labels.
ma-report-task-rows: An optional and possibly empty ma-report-task-rows: An optional and possibly empty
ordered list of result rows. ordered list of result rows.
3.6.3. Definition of ma-report-row-obj 3.6.3. Definition of ma-report-row-obj
object { object {
skipping to change at page 28, line 36 skipping to change at page 31, line 4
results are to be sent to a Schedule with a Reporting Action. results are to be sent to a Schedule with a Reporting Action.
This Reporting Task of the Reporting Action is executed by a This Reporting Task of the Reporting Action is executed by a
separate Schedule that specifies that it should run hourly at 5 separate Schedule that specifies that it should run hourly at 5
minutes past the hour. When run this Reporting Action takes the minutes past the hour. When run this Reporting Action takes the
data generated by the UDP latency Measurement Task as well as any data generated by the UDP latency Measurement Task as well as any
other data to be included in the hourly report and transfers it to other data to be included in the hourly report and transfers it to
the Collector over the Report Channel specified within its own the Collector over the Report Channel specified within its own
Schedule. Schedule.
3.7.1. Definition of ma-schedule-obj 3.7.1. Definition of ma-schedule-obj
object { object {
string ma-schedule-name; string ma-schedule-name;
ma-event-obj ma-schedule-event; ma-event-obj ma-schedule-start;
[ma-event-obj ma-schedule-end;]
[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-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:
ma-schedule-name: A name uniquely identifying a ma-schedule-name: A name uniquely identifying a
scheduling object. scheduling object.
ma-schedule-event: An event object indicating when the ma-schedule-start: An event object indicating when the
schedule fires. schedule starts.
ma-schedule-end: An optional event object controlling
the forceful termination of scheduled
actions. When the event occurs, all
actions of the schedule will be forced
to terminate gracefully.
ma-schedule-duration: An optional duration in seconds for the
schedule. All actions of the schedule
will be forced to terminate gracefully
after the duration number of seconds
past the start of the schedule.
ma-schedule-actions: A possibly empty ordered list of ma-schedule-actions: A possibly empty ordered list of
actions to invoke when the schedule actions to invoke when the schedule
fires. starts.
ma-schedule-execution-mode: Indicates whether the actions should be ma-schedule-execution-mode: Indicates whether the actions should be
executed sequentially, in parallel, or executed sequentially, in parallel, or
in a pipelined mode (where data in a pipelined mode (where data
produced by one action is passed to the produced by one action is passed to the
subsequent action). The default subsequent action). The default
execution mode is pipelined. execution mode is pipelined.
ma-schedule-tags: An optional unordered set of tags that
are reported together with the
measurement results to a collector.
ma-schedule-suppression-tags: An optional unordered set of ma-schedule-suppression-tags: An optional unordered set of
suppression tags. suppression tags that are used to
select schedules to be suppressed.
3.7.2. Definition of ma-action-obj 3.7.2. Definition of ma-action-obj
object { object {
string ma-action-name; string ma-action-name;
string ma-action-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-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 an a task together with its schedule
specific task options and destination tasks. It consists of the specific task options and destination tasks. It consists of the
following elements: following 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.
skipping to change at page 30, line 5 skipping to change at page 32, line 41
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
them to the options configured for the them to the options configured for the
task object. task object.
ma-action-destinations: An optional and possibly empty ma-action-destinations: An optional and possibly empty
unordered set of names of destination unordered set of names of destination
schedules that consume output produced schedules that consume output produced
by this action. by this action.
ma-action-tags: An optional unordered set of tags that
are reported together with the
measurement results to a collector.
ma-action-suppression-tags: An optional unordered set of ma-action-suppression-tags: An optional unordered set of
suppression tags. suppression tags that are used to
select actions to be suppressed.
3.8. Common Objects: Channels 3.8. Common Objects: Channels
A Channel defines a bi-directional communication channel between the A Channel defines a bi-directional communication channel between the
MA and a Controller or Collector. Multiple Channels can be defined MA and a Controller or Collector. Multiple Channels can be defined
to enable results to be split or duplicated across different to enable results to be split or duplicated across different
Collectors. Collectors.
Each Channel contains the details of the remote endpoint (including Each Channel contains the details of the remote endpoint (including
location and security credential information such as the location and security credential information such as the
skipping to change at page 32, line 41 skipping to change at page 35, line 35
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 The Task Configuration also contains a suppress-by-default flag that
specifies the behaviour of a default suppress instruction (that does specifies the behaviour of a default suppress instruction (that does
not list explicit tasks or schedules). If this flag is set to FALSE 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 then the Task will not be suppressed. It should be noted that
Controller Tasks are not subject to the suppression instruction and Controller Tasks are not subject to the suppression instruction and
therefore this flag will be ignored in such cases. therefore this flag will be ignored in such cases.
In addition the Task Configuration may optionally also be given a In addition the Task Configuration may optionally also be given tags
Measurement Cycle ID. The purpose of this ID is to easily identify a that can carry a Measurement Cycle ID. The purpose of this ID is to
set of measurement results that have been produced by Measurement easily identify a set of measurement results that have been produced
Tasks with comparable Options. This ID could be manually incremented by Measurement Tasks with comparable Options. This ID could be
or otherwise changed when an Option change is implemented which could manually incremented or otherwise changed when an Option change is
mean that two sets of results should not be directly compared. implemented which could mean that two sets of results should not be
directly compared.
3.9.1. Definition of ma-task-obj 3.9.1. Definition of ma-task-obj
object { object {
string ma-task-name; string ma-task-name;
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;] [boolean ma-task-suppress-by-default;]
[string ma-task-cycle-id;] [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:
ma-task-name: A name uniquely identifying a ma-task-name: A name uniquely identifying a
skipping to change at page 33, line 39 skipping to change at page 36, line 29
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 ma-task-suppress-by-default: A boolean flag indicating whether this
configured task will be suppressed by configured task will be suppressed by
default. The default value of the flag default. The default value of the flag
is true. is true.
ma-task-cycle-id: An optional measurement cycle ma-task-tags: An optional unordered set of tags that
identifier that can be used to identify are reported together with the
set of measurement results that have measurement results to a collector.
been produced by this configured tasks
with comparable options.
3.9.2. Definition of ma-option-obj 3.9.2. Definition of ma-option-obj
object { object {
string ma-option-name; string ma-option-name;
[object ma-option-value;] [object ma-option-value;]
} ma-option-obj; } ma-option-obj;
The ma-option-obj models a name-value pair and consists of the The ma-option-obj models a name-value pair and consists of the
following elements: following elements:
skipping to change at page 35, line 8 skipping to change at page 37, line 42
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 five different forms. Additional forms may
be defined later in order to bind the execution of schedules to be defined later in order to bind the execution of schedules to
additional events. The initially defined five Event forms are: additional events. The initially defined five Event forms are:
1. Periodic Timing: Emits multiple events periodically according to 1. Periodic Timing: Emits multiple events periodically according to
an interval time defined in milliseconds an interval time defined in 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)
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
milliseconds over which the start of the task is delayed from the seconds over which the start of the task is delayed from the starting
starting times specified by the timing object. times specified by the timing 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 36, line 4 skipping to change at page 38, line 29
Startup events are only created on device startup, not when a new Startup events are only created on device startup, not when a new
Instruction is transferred to the MA. If scheduled task execution is Instruction is transferred to the MA. If scheduled task execution is
desired both on the transfer of the Instruction and on device restart desired both on the transfer of the Instruction and on device restart
then both the Immediate and Startup timing needs to be used in then both the Immediate and Startup timing needs to be used in
conjunction. conjunction.
The datetime format used for all elements in the information model The datetime format used for all elements in the information model
MUST conform to RFC 3339 [RFC3339]. MUST conform to RFC 3339 [RFC3339].
3.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-timing-periodic; ma-periodic-obj ma-event-periodic;
ma-calendar-obj ma-timing-calendar; ma-calendar-obj ma-event-calendar;
ma-one-off-obj ma-timing-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-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. The generic event object itself contains a identified by a name. A generic event object itself contains a more
more specific event object and the set of specific event objects specific event object. The set of specific event objects should be
should be extensible. These five initial specific event objects are extensible. The initial set of specific event objects is further
further described below. The ma-event-obj also includes an optional described below. The ma-event-obj also includes an optional uniform
uniform random spread in milliseconds that can be used to randomize random spread that can be used to randomize the start times of
the start times of scheduled tasks. The ma-event-obj consists of the scheduled tasks. The ma-event-obj consists of the following
following elements: elements:
ma-timing-name: The name uniquely identifies an event ma-event-name: The name uniquely identifies an event
object. Schedules refer to event objects object. Schedules refer to event
by this name. objects by this name.
ma-timing-periodic: The ma-timing-periodic is present for ma-event-periodic: The ma-event-periodic is present for
periodic timing objects. periodic timing objects.
ma-timing-calendar: The ma-timing-calendar is present for ma-event-calendar: The ma-event-calendar is present for
calendar timing objects. calendar timing objects.
ma-timing-one-off: The ma-timing-one-off is present for one- ma-event-one-off: The ma-event-one-off is present for
off timing objects. one-off timing objects.
ma-timing-immediate: The ma-event-immediate is present for ma-event-immediate: The ma-event-immediate is present for
immediate event objects. immediate event objects.
ma-timing-startup: The ma-event-startup is present for startup ma-event-startup: The ma-event-startup is present for
event objects. startup event objects.
ma-timing-random-spread: The optional ma-event-random-spread adds a ma-event-controller-lost: The ma-event-controller-lost is
random delay defined in milliseconds to the present for connectivity to
event object. controller lost event objects.
ma-event-controller-connected: The ma-event-controller-connected is
present for connectivity to a
controller established event objects.
ma-event-random-spread: The optional ma-event-random-spread
adds a random delay defined in
seconds to the event object.
3.11.2. Definition of ma-periodic-obj 3.11.2. Definition of ma-periodic-obj
object { object {
[datetime ma-periodic-start;] [datetime ma-periodic-start;]
[datetime ma-periodic-end;] [datetime ma-periodic-end;]
int ma-periodic-interval; int ma-periodic-interval;
} ma-periodic-obj; } ma-periodic-obj;
The ma-periodic-obj timing object has an optional start and an The ma-periodic-obj timing object has an optional start and an
skipping to change at page 37, line 28 skipping to change at page 40, line 15
ma-periodic-start: The optional date and time at which ma-periodic-start: The optional date and time at which
Schedules using this object are first Schedules using this object are first
started. If not present it defaults to started. If not present it defaults to
immediate. immediate.
ma-periodic-end: The optional date and time at which ma-periodic-end: The optional date and time at which
Schedules using this object are last Schedules using this object are last
started. If not present it defaults to started. If not present it defaults to
indefinite. indefinite.
ma-periodic-interval: The interval defines the time in ma-periodic-interval: The interval defines the time in seconds
milliseconds between two consecutive starts between two consecutive starts of tasks.
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 Actions at specific
times and/or on specific dates. It can support more flexible timing times and/or on specific dates. It can support more flexible timing
than Periodic Timing since the execution of Actions does not have to than Periodic Timing since the execution of Actions does not have to
be uniformly spaced. For example a Calendar Timing could support the be uniformly spaced. For example a Calendar Timing could support the
execution of a Measurement Task every hour between 6pm and midnight execution of a Measurement Task every hour between 6pm and midnight
on weekdays only. on weekdays only.
skipping to change at page 40, line 29 skipping to change at page 43, line 13
} ma-controller-lost-obj; } ma-controller-lost-obj;
The ma-controller-lost-obj event object has no further information The ma-controller-lost-obj event object has no further information
elements. The ma-controller-lost-obj indicates that connectivity to elements. The ma-controller-lost-obj indicates that connectivity to
the controller has been lost. This is determined by a timer started the controller has been lost. This is determined by a timer started
after each successful contact with a controller. When the timer after each successful contact with a controller. When the timer
reaches the controller-timeout (measured in seconds), an ma- reaches the controller-timeout (measured in seconds), an ma-
controller-lost-obj event is generated. This event may be used to controller-lost-obj event is generated. This event may be used to
start a suppression. start a suppression.
3.11.8. Definition of ma-controller-ok-obj 3.11.8. Definition of ma-controller-connected-obj
object { object {
// empty // empty
} ma-controller-ok-obj; } ma-controller-connected-obj;
The ma-controller-ok-obj event object has no further information The ma-controller-connected-obj event object has no further
elements. This ma-controller-ok-obj event indicates that information elements. The ma-controller-connected-obj indicates that
connectivity to the controller has been established again after it connectivity to the controller has been established again after it
was lost. This is commonly used to end a suppression. was lost. This event may be used to end a suppression.
4. IANA Considerations 4. IANA Considerations
This document makes no request of IANA. This document makes no request of IANA.
Note to RFC Editor: this section may be removed on publication as an Note to RFC Editor: this section may be removed on publication as an
RFC. RFC.
5. Security Considerations 5. Security Considerations
skipping to change at page 42, line 34 skipping to change at page 45, line 16
Information Models and Data Models", RFC 3444, DOI 10 Information Models and Data Models", RFC 3444, DOI 10
.17487/RFC3444, January 2003, .17487/RFC3444, January 2003,
<http://www.rfc-editor.org/info/rfc3444>. <http://www.rfc-editor.org/info/rfc3444>.
[RFC7398] Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and [RFC7398] Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and
A. Morton, "A Reference Path and Measurement Points for A. Morton, "A Reference Path and Measurement Points for
Large-Scale Measurement of Broadband Performance", RFC Large-Scale Measurement of Broadband Performance", RFC
7398, DOI 10.17487/RFC7398, February 2015, 7398, DOI 10.17487/RFC7398, February 2015,
<http://www.rfc-editor.org/info/rfc7398>. <http://www.rfc-editor.org/info/rfc7398>.
Appendix A. Non-editorial Changes since -06 Appendix A. Open Issues
A.1. Remove suppress-by-default
The text states already that suppress-by-default (which defaults to
'true') only applies to measurement tasks but not to control tasks.
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
Add text that says the execution of actions or schedules is skipped
if previous invocations are still running. We already have counters
for this but there probably needs to be some additional text to go
somewhere.
A.3. Storage usage reporting and control
Actions that feed results into other schedules occupy storage space.
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
It seems that ma-task-obj should only be configured by a system that
has the access rights to setup the measurement agent. The controller
should read the configured tasks and then only install schedules
(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
The reporting model may need more attention; perhaps things can be
streamlined and also be made more efficient. Implementation
experience will help to work this out.
Appendix B. Non-editorial Changes since -07
o Added ma-schedule-end and ma-schedule-duration.
o Changed the granularity of scheduler timings to seconds.
o Added ma-status-suppression-obj to report the status of
suppressions as done in the YANG data model.
o Added counters to schedule and action status objects to match the
counters in the YANG data model.
o Using tags to pass information such as a measurement cycle
identifier to the collector.
o Using suppression tags and glob-style matching to select schedules
and actions to be suppressed.
Appendix C. Non-editorial Changes since -06
o The default execution mode is pipelined (LI12) o The default execution mode is pipelined (LI12)
o Added text to define which action consumes data in sequential, o Added text to define which action consumes data in sequential,
pipelines, and parallel execution mode (LI11) pipelines, and parallel execution mode (LI11)
o Added ma-config-measurement-point, ma-report-measurement-point, o Added ma-config-measurement-point, ma-report-measurement-point,
and ma-config-report-measurement-point to configure and report the and ma-config-report-measurement-point to configure and report the
measurement point (LI10) measurement point (LI10)
skipping to change at page 43, line 24 skipping to change at page 47, line 24
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 B. Non-editorial Changes since -05 Appendix D. 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. 61 change blocks. 
157 lines changed or deleted 355 lines changed or added

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