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