| < 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.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||