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