draft-ietf-lmap-information-model-16.txt   draft-ietf-lmap-information-model-17.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: July 17, 2017 M. Bagnulo Expires: August 26, 2017 M. Bagnulo
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
J. Schoenwaelder J. Schoenwaelder
Jacobs University Bremen Jacobs University Bremen
January 13, 2017 February 22, 2017
Information Model for Large-Scale Measurement Platforms (LMAP) Information Model for Large-Scale Measurement Platforms (LMAP)
draft-ietf-lmap-information-model-16 draft-ietf-lmap-information-model-17
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 July 17, 2017. This Internet-Draft will expire on August 26, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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 . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 5 3. LMAP Information Model . . . . . . . . . . . . . . . . . . . 6
3.1. Pre-Configuration Information . . . . . . . . . . . . . . 9 3.1. Pre-Configuration Information . . . . . . . . . . . . . . 10
3.1.1. Definition of ma-preconfig-obj . . . . . . . . . . . 10 3.1.1. Definition of ma-preconfig-obj . . . . . . . . . . . 11
3.2. Configuration Information . . . . . . . . . . . . . . . . 10 3.2. Configuration Information . . . . . . . . . . . . . . . . 11
3.2.1. Definition of ma-config-obj . . . . . . . . . . . . . 12 3.2.1. Definition of ma-config-obj . . . . . . . . . . . . . 13
3.3. Instruction Information . . . . . . . . . . . . . . . . . 13 3.3. Instruction Information . . . . . . . . . . . . . . . . . 14
3.3.1. Definition of ma-instruction-obj . . . . . . . . . . 15 3.3.1. Definition of ma-instruction-obj . . . . . . . . . . 16
3.3.2. Definition of ma-suppression-obj . . . . . . . . . . 16 3.3.2. Definition of ma-suppression-obj . . . . . . . . . . 17
3.4. Logging Information . . . . . . . . . . . . . . . . . . . 17 3.4. Logging Information . . . . . . . . . . . . . . . . . . . 18
3.4.1. Definition of ma-log-obj . . . . . . . . . . . . . . 19 3.4.1. Definition of ma-log-obj . . . . . . . . . . . . . . 20
3.5. Capability and Status Information . . . . . . . . . . . . 19 3.5. Capability and Status Information . . . . . . . . . . . . 20
3.5.1. Definition of ma-capability-obj . . . . . . . . . . . 19 3.5.1. Definition of ma-capability-obj . . . . . . . . . . . 20
3.5.2. Definition of ma-capability-task-obj . . . . . . . . 20 3.5.2. Definition of ma-capability-task-obj . . . . . . . . 21
3.5.3. Definition of ma-status-obj . . . . . . . . . . . . . 20 3.5.3. Definition of ma-status-obj . . . . . . . . . . . . . 21
3.5.4. Definition of ma-status-schedule-obj . . . . . . . . 21 3.5.4. Definition of ma-status-schedule-obj . . . . . . . . 22
3.5.5. Definition of ma-status-action-obj . . . . . . . . . 22 3.5.5. Definition of ma-status-action-obj . . . . . . . . . 23
3.5.6. Definition of ma-status-suppression-obj . . . . . . . 25 3.5.6. Definition of ma-status-suppression-obj . . . . . . . 26
3.5.7. Definition of ma-status-interface-obj . . . . . . . . 25 3.5.7. Definition of ma-status-interface-obj . . . . . . . . 26
3.6. Reporting Information . . . . . . . . . . . . . . . . . . 26 3.6. Reporting Information . . . . . . . . . . . . . . . . . . 27
3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 28 3.6.1. Definition of ma-report-obj . . . . . . . . . . . . . 29
3.6.2. Definition of ma-report-result-obj . . . . . . . . . 28 3.6.2. Definition of ma-report-result-obj . . . . . . . . . 29
3.6.3. Definition of ma-report-conflict-obj . . . . . . . . 30 3.6.3. Definition of ma-report-conflict-obj . . . . . . . . 31
3.6.4. Definition of ma-report-table-obj . . . . . . . . . . 31 3.6.4. Definition of ma-report-table-obj . . . . . . . . . . 32
3.6.5. Definition of ma-report-row-obj . . . . . . . . . . . 31 3.6.5. Definition of ma-report-row-obj . . . . . . . . . . . 32
3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 31 3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 32
3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 33 3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 34
3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 34 3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 35
3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 35 3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 36
3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 36 3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 37
3.9. Common Objects: Task Configurations . . . . . . . . . . . 36 3.9. Common Objects: Task Configurations . . . . . . . . . . . 37
3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 38 3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 39
3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 38 3.9.2. Definition of ma-option-obj . . . . . . . . . . . . . 39
3.10. Common Objects: Registry Information . . . . . . . . . . 39 3.10. Common Objects: Registry Information . . . . . . . . . . 40
3.10.1. Definition of ma-registry-obj . . . . . . . . . . . 39 3.10.1. Definition of ma-registry-obj . . . . . . . . . . . 40
3.11. Common Objects: Event Information . . . . . . . . . . . . 39 3.11. Common Objects: Event Information . . . . . . . . . . . . 40
3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 40 3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 41
3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 42 3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 43
3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 42 3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 43
3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 44 3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 45
3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 45 3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 46
3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 45 3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 46
3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 45 3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 46
3.11.8. Definition of ma-controller-connected-obj . . . . . 45 3.11.8. Definition of ma-controller-connected-obj . . . . . 46
4. Example Execution . . . . . . . . . . . . . . . . . . . . . . 46 4. Example Execution . . . . . . . . . . . . . . . . . . . . . . 47
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 47 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 48
6. Security Considerations . . . . . . . . . . . . . . . . . . . 48 6. Security Considerations . . . . . . . . . . . . . . . . . . . 49
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 48 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 49
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 49 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 50
8.1. Normative References . . . . . . . . . . . . . . . . . . 49 8.1. Normative References . . . . . . . . . . . . . . . . . . 50
8.2. Informative References . . . . . . . . . . . . . . . . . 49 8.2. Informative References . . . . . . . . . . . . . . . . . 50
Appendix A. Change History . . . . . . . . . . . . . . . . . . . 49 Appendix A. Change History . . . . . . . . . . . . . . . . . . . 51
A.1. Non-editorial changes since -15 . . . . . . . . . . . . . 50 A.1. Non-editorial changes since -16 . . . . . . . . . . . . . 51
A.2. Non-editorial changes since -14 . . . . . . . . . . . . . 50 A.2. Non-editorial changes since -15 . . . . . . . . . . . . . 51
A.3. Non-editorial changes since -13 . . . . . . . . . . . . . 50 A.3. Non-editorial changes since -14 . . . . . . . . . . . . . 51
A.4. Non-editorial changes since -12 . . . . . . . . . . . . . 50 A.4. Non-editorial changes since -13 . . . . . . . . . . . . . 51
A.5. Non-editorial changes since -11 . . . . . . . . . . . . . 50 A.5. Non-editorial changes since -12 . . . . . . . . . . . . . 51
A.6. Non-editorial changes since -10 . . . . . . . . . . . . . 50 A.6. Non-editorial changes since -11 . . . . . . . . . . . . . 52
A.7. Non-editorial changes since -09 . . . . . . . . . . . . . 50 A.7. Non-editorial changes since -10 . . . . . . . . . . . . . 52
A.8. Non-editorial changes since -08 . . . . . . . . . . . . . 51 A.8. Non-editorial changes since -09 . . . . . . . . . . . . . 52
A.9. Non-editorial changes since -07 . . . . . . . . . . . . . 51 A.9. Non-editorial changes since -08 . . . . . . . . . . . . . 52
A.10. Non-editorial changes since -06 . . . . . . . . . . . . . 51 A.10. Non-editorial changes since -07 . . . . . . . . . . . . . 53
A.11. Non-editorial changes since -05 . . . . . . . . . . . . . 52 A.11. Non-editorial changes since -06 . . . . . . . . . . . . . 53
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 53 A.12. Non-editorial changes since -05 . . . . . . . . . . . . . 54
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 54
1. Introduction 1. Introduction
A large-scale measurement platform is a collection of components that A large-scale measurement platform is a collection of components that
work in a coordinated fashion to perform measurements from a large work in a coordinated fashion to perform measurements from a large
number of vantage points. The main components of a large-scale number of vantage points. The main components of a large-scale
measurement platform are the Measurement Agents (hereafter MAs), the measurement platform are the Measurement Agents (hereafter MAs), the
Controller(s) and the Collector(s). Controller(s) and the Collector(s).
The MAs are the elements actually performing the measurements. The The MAs are the elements actually performing the measurements. The
MAs are controlled by exactly one Controller at a time and the MAs are controlled by exactly one Controller at a time and the
Collectors gather the results generated by the MAs. In a nutshell, Collectors gather the results generated by the MAs. In a nutshell,
the normal operation of a large-scale measurement platform starts the normal operation of a large-scale measurement platform starts
with the Controller instructing a set of one or more MAs to perform a with the Controller instructing a set of one or more MAs to perform a
set of one or more Measurement Tasks at a certain point in time. The set of one or more Measurement Tasks at a certain point in time. The
MAs execute the instructions from a Controller, and once they have MAs execute the instructions from a Controller, and once they have
done so, they report the results of the measurements to one or more done so, they report the results of the measurements to one or more
Collectors. The overall framework for a Large Measurement platform Collectors. The overall framework for a large-scale measurement
as used in this document is described in detail in [RFC7594]. platform as used in this document is described in detail in
[RFC7594].
A large-scale measurement platform involves basically three types of A large-scale measurement platform involves basically three types of
protocols, namely, a Control protocol (or protocols) between a protocols, namely, a Control protocol (or protocols) between a
Controller and the MAs, a Report protocol (or protocols) between the Controller and the MAs, a Report protocol (or protocols) between the
MAs and the Collector(s) and several measurement protocols between MAs and the Collector(s) and several measurement protocols between
the MAs and Measurement Peers (MPs), used to actually perform the the MAs and Measurement Peers (MPs), used to actually perform the
measurements. In addition some information is required to be measurements. In addition some information is required to be
configured on the MA prior to any communication with a Controller. configured on the MA prior to any communication with a Controller.
This document defines the information model for both Control and the This document defines the information model for both Control and the
skipping to change at page 5, line 14 skipping to change at page 5, line 14
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.
The object definitions use a couple of base types that are defined as
follows:
int A type representing signed or unsigned integer numbers.
This information model does not define a precision nor
does it make a distinction between signed and unsigned
number ranges. This type is also used to represent
enumerations.
boolean A type representing a boolean value.
string A type representing a human-readable string consisting of
a (possibly restricted) subset of Unicode and ISO/IEC
10646 [ISO.10646] characters.
datetime A type representing a date and time using the Gregorian
calendar. The datetime format MUST conform to RFC 3339
[RFC3339].
uuid A type representing Universally Unique IDentifier (UUID(
as defined in RFC 4122 [RFC4122]. The UUID values are
expected to be unique within an installation of a large-
scale measurement system.
uri A type representing a Uniform Resource Identifier as
defined in STD 66 [RFC3986].
ip-address A type representing an IP address. This type supports
both IPv4 and IPv6 addresses.
counter A non-negative integer that monotonically increases.
Counters may have discontinuities and they are not
expected to persist across restarts.
credentials An opaque type representing credentials needed by a
cryptographic mechanism to secure communication. Data
models must expand this opaque type as needed and
required by the security protocols utilized.
data An opaque type representing data obtained from
measurements.
Names of objects are generally assumed to be unique within an
implementation.
3. LMAP Information Model 3. LMAP Information Model
The information described herein relates to the information stored, The information described herein relates to the information stored,
received or transmitted by a Measurement Agent as described within received or transmitted by a Measurement Agent as described within
the LMAP framework [RFC7594]. As such, some subsets of this the LMAP framework [RFC7594]. As such, some subsets of this
information model are applicable to the measurement Controller, information model are applicable to the measurement Controller,
Collector and any device management system that pre-configures the Collector and any device management system that pre-configures the
Measurement Agent. The information described in these models will be Measurement Agent. The information described in these models will be
transmitted by protocols using interfaces between the Measurement transmitted by protocols using interfaces between the Measurement
Agent and such systems according to a Data Model. Agent and such systems according to a Data Model.
skipping to change at page 7, line 5 skipping to change at page 7, line 51
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 tells the MA to do something. a. Schedules. A set of Schedules tells the MA to execute Actions.
Without a Schedule no Task (from a measurement to reporting or An Action of a Schedule leads to the execution of a Task.
communicating with the Controller) is ever executed. Schedules
are used within the Instruction to specify what tasks should be
performed, when, and how to direct their results. A Schedule is
also used within the pre-Configuration and Configuration
information in order to execute the Task or Tasks required to
communicate with the Controller. A specific Schedule can only be
active once. Attempts to start a Schedule while the same
Schedule is still running will fail.
2. Channels. A set of Channel objects are used to communicate with Without a Schedule no Task (including measurements or reporting
or communicating with the Controller) is ever executed.
Schedules are used within the Instruction to specify what tasks
should be performed, when, and how to direct their results. A
Schedule is also used within the pre-Configuration and
Configuration information in order to execute the Task or Tasks
required to communicate with the Controller. A specific Schedule
can only be active once. Attempts to start a Schedule while the
same Schedule is still running will fail.
b. 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 c. 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,
represented as Task Options. Task Configurations are referenced represented as Task Options. Task Configurations are referenced
from a Schedule in order to specify what Tasks the MA should from a Schedule in order to specify what Tasks the MA should
execute. execute.
4. Events. A set of Event objects that can be referenced from the d. 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 that determines when the schedule is executed. An Event object that determines when the schedule is executed. An Event
object specifies either a singleton or series of events that object specifies either a singleton or series of events that
indicate when Tasks should be executed. A commonly used kind of indicate when Tasks should be executed. A commonly used kind of
Event objects are Timing objects. Event objects are Timing objects. For Event objects specifying a
series of events, it is generally a good idea to configure an end
time and to refresh the end time as needed to ensure that MAs
that loose connectivity to their controller do not continue
executing Schedules forever.
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
skipping to change at page 8, line 22 skipping to change at page 9, line 22
: :
: :
`-- executes --> Action N `-- executes --> Action N
|-- using --> Task Configuration |-- using --> Task Configuration
| |
`-- feeding to --> Destination Schedule `-- feeding to --> Destination Schedule
Figure 1: Relationship between Schedules, Events, Actions, Task Figure 1: Relationship between Schedules, Events, Actions, Task
Configurations, and Destination Schedules Configurations, and Destination Schedules
The primary function of an MA is to execute Schedules. Every Action The primary function of an MA is to execute Schedules. A Schedule,
contained in a Schedule is defined as a Task. As such, these Actions which is triggered by an Event, executes a number of Actions. An
are configured through Task Configurations and executed according to Action refers to a Configured Task and it may feed results to a
the Event object referenced by the Schedule in which they appear. Destination Schedule. Both, Actions and Configured Tasks can provide
Note, however, that Actions can have Action specific parameters. parameters, represented as Action Options and Task Options.
Tasks can implement a variety of different types of Actions. While Tasks can implement a variety of different functions. While in terms
in terms of the Information Model, all Tasks have the same structure, of the Information Model, all Tasks have the same structure, it can
it can help conceptually to think of different Task categories: 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 support the communication with a Controller 2. Data Transfer Tasks support the communication with a Controller
and Collectors: and Collectors:
A. Reporting Tasks report the results of Measurement Tasks to A. Reporting Tasks report the results of Measurement Tasks to
skipping to change at page 10, line 35 skipping to change at page 11, line 35
credentials ma-preconfig-credentials; credentials ma-preconfig-credentials;
} ma-preconfig-obj; } ma-preconfig-obj;
The ma-preconfig-obj describes information that needs to be available The ma-preconfig-obj describes information that needs to be available
to the MA in order to bootstrap communication with a Controller. The to the MA in order to bootstrap communication with a Controller. The
ma-preconfig-obj consists of the following elements: ma-preconfig-obj consists of the following elements:
ma-preconfig-agent-id: An optional uuid uniquely identifying ma-preconfig-agent-id: An optional uuid uniquely identifying
the measurement agent. the measurement agent.
ma-preconfig-control-tasks: An unordered set of tasks objects. ma-preconfig-control-tasks: An unordered set of task objects.
ma-preconfig-control-channels: An unordered set of channel objects. ma-preconfig-control-channels: An unordered set of channel objects.
ma-preconfig-control-schedules: An unordered set of scheduling ma-preconfig-control-schedules: An unordered set of scheduling
objects. objects.
ma-preconfig-device-id: An optional identifier for the ma-preconfig-device-id: An optional identifier for the
device. device.
ma-preconfig-credentials: The security credentials used by the ma-preconfig-credentials: The security credentials used by the
skipping to change at page 11, line 33 skipping to change at page 12, line 33
relate specifically to the MA rather than the measurements it is to relate specifically to the MA rather than the measurements it is to
conduct or how to report results. The assignment of an ID to the MA conduct or how to report results. The assignment of an ID to the MA
is mandatory. If the MA Agent ID was not optionally provided during is mandatory. If the MA Agent ID was not optionally provided during
the pre-configuration then one must be provided by the Controller the pre-configuration then one must be provided by the Controller
during Configuration. Optionally a Group ID may also be given which during Configuration. Optionally a Group ID may also be given which
identifies a group of interest to which that MA belongs. For example identifies a group of interest to which that MA belongs. For example
the group could represent an ISP, broadband product, technology, the group could represent an ISP, broadband product, technology,
market classification, geographic region, or a combination of market classification, geographic region, or a combination of
multiple such characteristics. Additional flags control whether the multiple such characteristics. Additional flags control whether the
MA ID or the Group ID are included in Reports. The reporting of a MA ID or the Group ID are included in Reports. The reporting of a
Group ID without the MA ID allows the MA to remain anonymous, which Group ID without the MA ID may allow the MA to remain anonymous,
may be particularly useful to prevent tracking of mobile MA devices. which may be particularly useful to prevent tracking of 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 an Event since the last communication with the Controller after which an Event
is generated that can trigger the suspension of Instruction is generated that can trigger the suspension of Instruction
Schedules. The appropriate value of the time window will depend on Schedules. The appropriate value of the time window will depend on
the specified communication Schedule with the Controller and the the specified communication Schedule with the Controller and the
skipping to change at page 14, line 30 skipping to change at page 15, line 30
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
Report Channels can be used to send Measurement Task results to Report Channels can be used to send Measurement Task results to
different Collectors. The details of the Channel element is different Collectors. The details of the Channel element is
described later as it is common to several objects. described later as it is common to several objects.
Instruction Schedules specify which Actions to execute according to a Instruction Schedules specify which Actions to execute according to a
given triggering Event. An Action is a Task with additional specific given triggering Event. An Action extends a Configured Task with
parameters. An Event can trigger the execution of a single Action or additional specific parameters. An Event can trigger the execution
it can trigger a repeated series of Actions. The Schedule also of a single Action or it can trigger a repeated series of Actions.
specifies how to link Tasks output data to other Schedules. The Schedule also specifies how to link Tasks output data to other
Schedules.
Measurement Suppression information is used to over-ride the Measurement Suppression information is used to over-ride the
Instruction Schedule and temporarily stop measurements or other Tasks Instruction Schedule and temporarily stop measurements or other Tasks
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.
It should be noted that control schedules and tasks cannot be It should be noted that control schedules and tasks cannot be
suppressed as evidenced by the lack of suppression information in the suppressed as evidenced by the lack of suppression information in the
Configuration. The control schedule must only reference tasks listed Configuration. The control schedule must only reference tasks listed
as control tasks (i.e., within the Configuration information). as control tasks (i.e., within the Configuration information).
A single Suppression object is able to enable/disable a set of A single Suppression object is able to enable/disable a set of
Instruction Tasks that are tagged for suppression. This enabled fine Instruction Tasks that are tagged for suppression. This enables fine
grained control on which Tasks are suppressed. Suppression of both grained control on which Tasks are suppressed. Suppression of both
matching Actions and Measurement Schedules is supported. Support for matching Actions and Measurement Schedules is supported. Support for
disabling specific Actions allows malfunctioning or mis-configured disabling specific Actions allows malfunctioning or mis-configured
Tasks or Actions that have an impact on a particular part of the 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.
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.
used for all elements in the information model (e.g., the suppression
start and end dates) MUST conform to RFC 3339 [RFC3339].
The goal when defining these four different elements is to allow each The goal when defining these four different elements is to allow each
part of the information model to change without affecting the other part of the information model to change without affecting the other
three elements. For example it is envisaged that the Report Channels three elements. For example it is envisaged that the Report Channels
and the set of Task Configurations will be relatively static. The and the set of Task Configurations will be relatively static. The
Instruction Schedule, on the other hand, is likely to be more Instruction Schedule, on the other hand, is likely to be more
dynamic, as the measurement panel and test frequency are changed for dynamic, as the measurement panel and test frequency are changed for
various business goals. Another example is that measurements can be various business goals. Another example is that measurements can be
suppressed with a Suppression command without removing the existing suppressed with a Suppression command without removing the existing
Instruction Schedules that would continue to apply after the Instruction Schedules that would continue to apply after the
skipping to change at page 17, line 13 skipping to change at page 18, line 11
action-suppression-tags. Pattern action-suppression-tags. Pattern
matching is done using glob style matching is done using glob style
pattern (see below). pattern (see below).
ma-suppression-stop-running: An optional boolean indicating whether ma-suppression-stop-running: An optional boolean indicating whether
suppression will stop any running suppression will stop any running
matching schedules or actions. The matching schedules or actions. The
default value for this boolean is default value for this boolean is
false. false.
Glob style pattern matching is following POSIX.2 fnmatch() without Glob style pattern matching is following POSIX.2 fnmatch() [POSIX.2]
special treatment of file paths: without 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.
In particular: In particular:
\* matches * \* matches *
skipping to change at page 19, line 10 skipping to change at page 20, line 10
This Information Model document does not detail the precise format of This Information Model document does not detail the precise format of
logging information since it is to a large extent protocol and MA logging information since it is to a large extent protocol and MA
specific. However, some common information can be identified. specific. However, some common information can be identified.
3.4.1. Definition of ma-log-obj 3.4.1. Definition of ma-log-obj
object { object {
uuid ma-log-agent-id; uuid ma-log-agent-id;
datetime ma-log-event-time; datetime ma-log-event-time;
code ma-log-code; int ma-log-code;
string ma-log-description; string ma-log-description;
} ma-log-obj; } ma-log-obj;
The ma-log-obj models the generic aspects of a logging object and The ma-log-obj models the generic aspects of a logging object and
consists of the following elements: consists of the following elements:
ma-log-agent-id: A uuid uniquely identifying the measurement ma-log-agent-id: A uuid uniquely identifying the measurement
agent. agent.
ma-log-event-time: The date and time of the event reported in ma-log-event-time: The date and time of the event reported in
skipping to change at page 20, line 40 skipping to change at page 21, line 40
ma-capability-task-functions: A possibly empty unordered set of ma-capability-task-functions: A possibly empty unordered set of
registry entries identifying registry entries identifying
functions this task implements. functions 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-status-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
skipping to change at page 27, line 49 skipping to change at page 28, line 49
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.
Where the Configuration and Instruction information represent Whereas the Configuration and Instruction information represent
information transmitted via the Control Protocol, the Report information transmitted via the Control Protocol, the Report
represents the information that is transmitted via the Report represents the information that is transmitted via the Report
Protocol. It is constructed at the time of sending a report and Protocol. It is constructed at the time of sending a report and
represents the inherent structure of the information that is sent to represents the inherent structure of the information that is sent to
the Collector. the Collector.
3.6.1. Definition of ma-report-obj 3.6.1. Definition of ma-report-obj
object { object {
datetime ma-report-date; datetime ma-report-date;
skipping to change at page 31, line 51 skipping to change at page 32, line 51
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 extends a Configured Task with additional
Each Schedule contains basically two elements: an ordered list of specific parameters. Each Schedule contains basically two elements:
Actions to be executed and an Event object triggering the execution
of the Schedule. The Schedule states what Actions to run (with what an ordered list of Actions to be executed and an Event object
configuration) and when to run the Actions. A Schedule may triggering the execution of the Schedule. The Schedule states what
optionally have an Event that stops the execution of the Schedule or Actions to run (with what configuration) and when to run the Actions.
a maximum duration after which a schedule is stopped. 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 35, line 46 skipping to change at page 36, line 46
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
certificate). The timing of when to communicate over a Channel is certificate). The timing of when to communicate over a Channel is
specified by the Schedule which executes the corresponding Control or specified by the Schedule which executes the corresponding Control or
Reporting Task. The certificate can be the digital certificate Reporting Task. The certificate can be the digital certificate
associated to the FQDN in the URL or it can be the certificate of the associated to the FQDN in the URL or it can be the certificate of the
Certification Authority that was used to issue the certificate for Certification Authority that was used to issue the certificate for
the FQDN (Fully Qualified Domain Name) of the target URL (which will the FQDN (Fully Qualified Domain Name) of the target URL (which will
be retrieved later on using a communication protocol such as TLS). be retrieved later on using a communication protocol such as TLS).
In order to establish a secure channel, the MA will use it's own In order to establish a secure channel, the MA will use its own
security credentials (in the Configuration Information) and the given security credentials (in the Configuration Information) and the given
credentials for the individual Channel end-point. credentials for the individual Channel end-point.
As with the Task Configurations, each Channel is also given a text As with the Task Configurations, each Channel is also given a text
name by which it can be referenced as a Task Option. name by which it can be referenced as a Task Option.
Although the same in terms of information, Channels used for Although the same in terms of information, Channels used for
communication with the Controller are referred to as Control Channels communication with the Controller are referred to as Control Channels
whereas Channels to Collectors are referred to as Report Channels. whereas Channels to Collectors are referred to as Report Channels.
Hence Control Channels will be referenced from Control Tasks executed Hence Control Channels will be referenced from Control Tasks executed
skipping to change at page 37, line 12 skipping to change at page 38, line 12
It does not by itself actually instruct the MA to perform them at any It does not by itself actually instruct the MA to perform them at any
particular time (this is done by a Schedule). Tasks can be particular time (this is done by a Schedule). Tasks can be
Measurement Tasks (i.e., those Tasks actually performing some type of Measurement Tasks (i.e., those Tasks actually performing some type of
passive or active measurement) or any other scheduled activity passive or active measurement) or any other scheduled activity
performed by the MA such as transferring information to or from the performed by the MA such as transferring information to or from the
Controller and Collectors. Other examples of Tasks may include data Controller and Collectors. Other examples of Tasks may include data
manipulation or processing Tasks conducted on the MA. manipulation or processing Tasks conducted on the MA.
A Measurement Task Configuration is the same in information terms to A Measurement Task Configuration is the same in information terms to
any other Task Configuration. Both measurement and non-measurement any other Task Configuration. Both measurement and non-measurement
Tasks have registry entries to enable the MA to uniquely identify the Tasks may have registry entries to enable the MA to uniquely identify
Task it should execute and retrieve the schema for any parameters the Task it should execute and retrieve the schema for any parameters
that may be passed to the Task. Registry entries are specified as a that may be passed to the Task. Registry entries are specified as a
URI and can therefore be used to identify the Task within a namespace URI and can therefore be used to identify the Task within a namespace
or point to a web or local file location for the Task information. or point to a web or local file location for the Task information.
As mentioned previously, these URIs may be used to identify the As mentioned previously, these URIs may be used to identify the
Measurement Task in a public namespace Measurement Task in a public namespace
[I-D.ietf-ippm-metric-registry]. [I-D.ietf-ippm-metric-registry].
Example: A Measurement Task Configuration may configure a single Example: A Measurement Task Configuration may configure a single
Measurement Task for measuring UDP latency. The Measurement Task Measurement Task for measuring UDP latency. The Measurement Task
Configuration could define the destination port and address for Configuration could define the destination port and address for
skipping to change at page 38, line 26 skipping to change at page 39, line 26
object { object {
string ma-task-name; string ma-task-name;
ma-registry-obj ma-task-functions<0..*>; ma-registry-obj ma-task-functions<0..*>;
[ma-option-obj ma-task-options<0..*>;] [ma-option-obj ma-task-options<0..*>;]
[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 registry entries or a local contains a possibly empty set of URIs to link to registry entries.
specification of the task. Options allow the configuration of task Options allow the configuration of task parameters (in the form of
parameters (in the form of name-value pairs). The ma-task-obj name-value pairs). The ma-task-obj consists of the following
consists of the following elements: elements:
ma-task-name: A name uniquely identifying a configured ma-task-name: A name uniquely identifying a configured
task object. task object.
ma-task-functions: A possibly empty unordered set of registry ma-task-functions: A possibly empty unordered set of registry
entries identifying the functions of the entries identifying the functions of the
configured task. configured task.
ma-task-options: An optional and possibly empty ordered list ma-task-options: An optional and possibly empty ordered list
of options (name-value pairs) that are of options (name-value pairs) that are
skipping to change at page 48, line 24 skipping to change at page 49, line 24
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 distributed cannot be hijacked, for example to participate in a distributed
denial of service attack. 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 may, for example, allow the MA to remain anonymous
anonymous and for information about location or other context that and for information about location or other context that might be
might be used to identify or track the MA to be omitted or blurred. used to identify or track the MA to be omitted or blurred.
Implementations and deployments should also be careful about exposing
device-ids when this is not strictly needed.
The Information Model should support wherever relevant, all the An implementation of this Information Model should support wherever
security and privacy requirements associated with the LMAP Framework. relevant, all the security and privacy requirements associated with
the LMAP Framework. In addition, users of this Information Model are
advised to choose identifiers for Group IDs, tags or names of
information model objects (e.g., configured tasks, schedules or
actions) that do not reveal any sensitive information to people
authorized to process measurement results but who are not authorized
to know details about the Measurement Agents that were used to
perform the measurement.
7. Acknowledgements 7. Acknowledgements
Several people contributed to this specification by reviewing early Several people contributed to this specification by reviewing early
versions and actively participating in the LMAP working group versions and actively participating in the LMAP working group
(apologies to those unintentionally omitted): Vaibhav Bajpai, Michael (apologies to those unintentionally omitted): Vaibhav Bajpai, Michael
Bugenhagen, Timothy Carey, Alissa Cooper, Kenneth Ko, Al Morton, Dan Bugenhagen, Timothy Carey, Alissa Cooper, Kenneth Ko, Al Morton, Dan
Romascanu, Henning Schulzrinne, Andrea Soppera, Barbara Stark, and Romascanu, Henning Schulzrinne, Andrea Soppera, Barbara Stark, and
Jason Weil. Jason Weil.
skipping to change at page 49, line 9 skipping to change at page 50, line 13
[FP7/2007-2013] under grant agreement number 317647. [FP7/2007-2013] under grant agreement number 317647.
Juergen Schoenwaelder was partly funded by Flamingo, a Network of Juergen Schoenwaelder was partly funded by Flamingo, a Network of
Excellence project (ICT-318488) supported by the European Commission Excellence project (ICT-318488) supported by the European Commission
under its Seventh Framework Programme. under its Seventh Framework Programme.
8. References 8. References
8.1. Normative References 8.1. Normative References
[ISO.10646]
International Organization for Standardization,
"Information Technology - Universal Multiple-Octet Coded
Character Set (UCS)", ISO Standard 10646:2014, 2014.
[POSIX.2] The IEEE and The Open Group, "The Open Group Base
Specifications Issue 7", IEEE Standard 1003.1-2008, 2016.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
RFC2119, March 1997, RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
<http://www.rfc-editor.org/info/rfc3339>. <http://www.rfc-editor.org/info/rfc3339>.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, RFC
3986, DOI 10.17487/RFC3986, January 2005,
<http://www.rfc-editor.org/info/rfc3986>.
[RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
Unique IDentifier (UUID) URN Namespace", RFC 4122, DOI 10
.17487/RFC4122, July 2005,
<http://www.rfc-editor.org/info/rfc4122>.
8.2. Informative References 8.2. Informative References
[I-D.ietf-ippm-metric-registry] [I-D.ietf-ippm-metric-registry]
Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A. Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A.
Akhter, "Registry for Performance Metrics", draft-ietf- Akhter, "Registry for Performance Metrics", draft-ietf-
ippm-metric-registry-10 (work in progress), November 2016. ippm-metric-registry-10 (work in progress), November 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-08 (work in LMAP Measurement Agents", draft-ietf-lmap-yang-10 (work in
progress), November 2016. progress), January 2017.
[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,
skipping to change at page 50, line 5 skipping to change at page 51, line 27
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>.
Appendix A. Change History Appendix A. Change History
Note to the RFC Editor: this section should be removed on publication Note to the RFC Editor: this section should be removed on publication
as an RFC. as an RFC.
A.1. Non-editorial changes since -15 A.1. Non-editorial changes since -16
o Addressing Alissa Cooper's review comments.
A.2. Non-editorial changes since -15
o The reference to the framework is now informational. o The reference to the framework is now informational.
A.2. Non-editorial changes since -14 A.3. Non-editorial changes since -14
o Clarified that the cycle number is in UTC. o Clarified that the cycle number is in UTC.
A.3. Non-editorial changes since -13 A.4. Non-editorial changes since -13
o Removed the ma-config-device-id from the ma-config-obj. o Removed the ma-config-device-id from the ma-config-obj.
o Added ma-config-report-group-id and clarified how two flags ma- o Added ma-config-report-group-id and clarified how two flags ma-
config-report-agent-id and ma-config-report-group-id work. config-report-agent-id and ma-config-report-group-id work.
A.4. Non-editorial changes since -12 A.5. Non-editorial changes since -12
o Renamed the ma-metrics-registry-obj to ma-registry-obj since tasks o Renamed the ma-metrics-registry-obj to ma-registry-obj since tasks
may refer to different registries (not just a metrics registry). may refer to different registries (not just a metrics registry).
o Clarifications and bug fixes. o Clarifications and bug fixes.
A.5. Non-editorial changes since -11 A.6. Non-editorial changes since -11
o Clarifications and bug fixes. o Clarifications and bug fixes.
A.6. Non-editorial changes since -10 A.7. Non-editorial changes since -10
o Rewrote the text concerning the well-known "channel" option name. o Rewrote the text concerning the well-known "channel" option name.
o Added ma-report-result-event-time, ma-report-result-cycle-number, o Added ma-report-result-event-time, ma-report-result-cycle-number,
and ma-event-cycle-interval. and ma-event-cycle-interval.
o Added ma-capability-tags. o Added ma-capability-tags.
o Added a new section showing an example execution. o Added a new section showing an example execution.
o Several clarifications and bug fixes. o Several clarifications and bug fixes.
A.7. Non-editorial changes since -09 A.8. Non-editorial changes since -09
o Added ma-status-schedule-storage and ma-status-action-storage. o Added ma-status-schedule-storage and ma-status-action-storage.
o Removed suppress-by-default. o Removed suppress-by-default.
o Moved ma-report-result-metrics of the ma-report-result-obj to ma- o Moved ma-report-result-metrics of the ma-report-result-obj to ma-
report-table-metrics of the ma-report-table-obj so that the report-table-metrics of the ma-report-table-obj so that the
relationship between metrics and result tables is clear. relationship between metrics and result tables is clear.
o Added ma-report-conflict-obj. o Added ma-report-conflict-obj.
o Added ma-report-result-status to ma-report-result-obj. o Added ma-report-result-status to ma-report-result-obj.
o Several clarifications and bug fixes. o Several clarifications and bug fixes.
A.8. Non-editorial changes since -08 A.9. 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.
A.9. Non-editorial changes since -07 A.10. 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.
A.10. Non-editorial changes since -06 A.11. 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 52, line 36 skipping to change at page 54, line 12
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)
A.11. Non-editorial changes since -05 A.12. 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. 44 change blocks. 
139 lines changed or deleted 224 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/