| < draft-ietf-lmap-information-model-10.txt | draft-ietf-lmap-information-model-11.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: January 9, 2017 M. Bagnulo | Expires: February 20, 2017 M. Bagnulo | |||
| Universidad Carlos III de Madrid | Universidad Carlos III de Madrid | |||
| J. Schoenwaelder | J. Schoenwaelder | |||
| Jacobs University Bremen | Jacobs University Bremen | |||
| July 8, 2016 | August 19, 2016 | |||
| Information Model for Large-Scale Measurement Platforms (LMAP) | Information Model for Large-Scale Measurement Platforms (LMAP) | |||
| draft-ietf-lmap-information-model-10 | draft-ietf-lmap-information-model-11 | |||
| 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 January 9, 2017. | This Internet-Draft will expire on February 20, 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 | |||
| skipping to change at page 2, line 41 ¶ | skipping to change at page 2, line 41 ¶ | |||
| 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 . . . . . . . . . . . . . . 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-status-interface-obj . . . . . . . . 24 | 3.5.7. Definition of ma-status-interface-obj . . . . . . . . 25 | |||
| 3.6. Reporting Information . . . . . . . . . . . . . . . . . . 25 | 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-conflict-obj . . . . . . . . 29 | 3.6.3. Definition of ma-report-conflict-obj . . . . . . . . 30 | |||
| 3.6.4. Definition of ma-report-table-obj . . . . . . . . . . 29 | 3.6.4. Definition of ma-report-table-obj . . . . . . . . . . 30 | |||
| 3.6.5. Definition of ma-report-row-obj . . . . . . . . . . . 30 | 3.6.5. Definition of ma-report-row-obj . . . . . . . . . . . 31 | |||
| 3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 30 | 3.7. Common Objects: Schedules . . . . . . . . . . . . . . . . 31 | |||
| 3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 32 | 3.7.1. Definition of ma-schedule-obj . . . . . . . . . . . . 33 | |||
| 3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 33 | 3.7.2. Definition of ma-action-obj . . . . . . . . . . . . . 34 | |||
| 3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 34 | 3.8. Common Objects: Channels . . . . . . . . . . . . . . . . 35 | |||
| 3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 35 | 3.8.1. Definition of ma-channel-obj . . . . . . . . . . . . 35 | |||
| 3.9. Common Objects: Task Configurations . . . . . . . . . . . 35 | 3.9. Common Objects: Task Configurations . . . . . . . . . . . 36 | |||
| 3.9.1. Definition of ma-task-obj . . . . . . . . . . . . . . 37 | 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 . . . . . . . . . . . . . 38 | |||
| 3.10. Common Objects: Registry Information . . . . . . . . . . 38 | 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 . . . . . . . . 39 | |||
| 3.11. Common Objects: Event Information . . . . . . . . . . . . 38 | 3.11. Common Objects: Event Information . . . . . . . . . . . . 39 | |||
| 3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 39 | 3.11.1. Definition of ma-event-obj . . . . . . . . . . . . . 40 | |||
| 3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 40 | 3.11.2. Definition of ma-periodic-obj . . . . . . . . . . . 41 | |||
| 3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 41 | 3.11.3. Definition of ma-calendar-obj . . . . . . . . . . . 42 | |||
| 3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 43 | 3.11.4. Definition of ma-one-off-obj . . . . . . . . . . . . 44 | |||
| 3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 43 | 3.11.5. Definition of ma-immediate-obj . . . . . . . . . . . 44 | |||
| 3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 43 | 3.11.6. Definition of ma-startup-obj . . . . . . . . . . . . 44 | |||
| 3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 44 | 3.11.7. Definition of ma-controller-lost-obj . . . . . . . . 44 | |||
| 3.11.8. Definition of ma-controller-connected-obj . . . . . 44 | 3.11.8. Definition of ma-controller-connected-obj . . . . . 45 | |||
| 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 | 4. Example Execution . . . . . . . . . . . . . . . . . . . . . . 45 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 44 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46 | |||
| 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 45 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 47 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 45 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 47 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 45 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 47 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 46 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 47 | |||
| Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 46 | 8.2. Informative References . . . . . . . . . . . . . . . . . 48 | |||
| Appendix B. Non-editorial Changes since -09 . . . . . . . . . . 46 | Appendix A. Non-editorial Changes since -10 . . . . . . . . . . 48 | |||
| Appendix C. Non-editorial Changes since -08 . . . . . . . . . . 47 | Appendix B. Non-editorial Changes since -09 . . . . . . . . . . 49 | |||
| Appendix D. Non-editorial Changes since -07 . . . . . . . . . . 47 | Appendix C. Non-editorial Changes since -08 . . . . . . . . . . 49 | |||
| Appendix E. Non-editorial Changes since -06 . . . . . . . . . . 47 | Appendix D. Non-editorial Changes since -07 . . . . . . . . . . 49 | |||
| Appendix F. Non-editorial Changes since -05 . . . . . . . . . . 48 | Appendix E. Non-editorial Changes since -06 . . . . . . . . . . 50 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49 | Appendix F. Non-editorial Changes since -05 . . . . . . . . . . 50 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 51 | ||||
| 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 7 ¶ | skipping to change at page 7, line 7 ¶ | |||
| 1. Schedules. A set of Schedules tells 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. A specific Schedule can only be | communicate with the Controller. A specific Schedule can only be | |||
| active once. Attempts to start a Schedule while the same | active once. Attempts to start a Schedule while the same | |||
| Schedule is still active will fail. | Schedule is still running 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. | |||
| skipping to change at page 8, line 5 ¶ | skipping to change at page 8, line 5 ¶ | |||
| : | : | |||
| : | : | |||
| `-- executes --> Action N | `-- executes --> Action N | |||
| |-- using --> Task Configuration | |-- using --> Task Configuration | |||
| | | | | |||
| `-- feeding to --> Destination Schedule | `-- feeding to --> Destination Schedule | |||
| Figure 1: Relationship between Schedules, Events, Actions, Task | Figure 1: Relationship between Schedules, Events, Actions, Task | |||
| Configurations, and Destination Schedules | Configurations, and Destination Schedules | |||
| It should be clear that the top-level behavior of an MA is simply to | The primary function of an MA is to execute Schedules. Every Action | |||
| execute Schedules. Every Action contained in a Schedule is defined | contained in a Schedule is defined as a Task. As such, these Actions | |||
| as a Task. As such, these Actions are configured through Task | are configured through Task Configurations and executed according to | |||
| Configurations and executed according to the Event object referenced | the Event object referenced by the Schedule in which they appear. | |||
| by the Schedule in which they appear. Note, however, that Actions | Note, however, that Actions can have Action specific parameters. | |||
| can have Action specific parameters. | ||||
| 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. | |||
| skipping to change at page 16, line 34 ¶ | skipping to change at page 16, line 34 ¶ | |||
| i.e., as if the value would be | i.e., as if the value would be | |||
| 'immediate'. | 'immediate'. | |||
| ma-suppression-end: The optional event indicating when | ma-suppression-end: The optional event indicating when | |||
| suppression ends. If not present, the | suppression ends. If not present, the | |||
| suppression does not have a defined | suppression does not have a defined | |||
| end, i.e., the suppression remains for | end, i.e., the suppression remains for | |||
| an indefinite period of time. | 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 patterns. 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. Pattern | action-suppression-tags. Pattern | |||
| matching is done using glob style | matching is done using glob style | |||
| pattern (see below). | pattern (see below). | |||
| ma-suppression-stop-running: An optional boolean indicating whether | ma-suppression-stop-running: An optional boolean indicating whether | |||
| skipping to change at page 19, line 32 ¶ | skipping to change at page 19, line 32 ¶ | |||
| installed or available on the MA. Status information includes the | installed or available on the MA. Status information includes the | |||
| times that operations were last performed such as contacting the | times that operations were last performed such as contacting the | |||
| Controller or producing Reports. | Controller or producing Reports. | |||
| 3.5.1. Definition of ma-capability-obj | 3.5.1. Definition of ma-capability-obj | |||
| object { | object { | |||
| string ma-capability-hardware; | string ma-capability-hardware; | |||
| string ma-capability-firmware; | string ma-capability-firmware; | |||
| string ma-capability-version; | string ma-capability-version; | |||
| [string ma-capability-tags<0..*>;] | ||||
| [ma-capability-task-obj ma-capability-tasks<0..*>;] | [ma-capability-task-obj ma-capability-tasks<0..*>;] | |||
| } ma-capability-obj; | } ma-capability-obj; | |||
| The ma-capability-obj provides information about the capabilities of | The ma-capability-obj provides information about the capabilities of | |||
| the measurement agent and consists of the following elements: | the measurement agent and consists of the following elements: | |||
| ma-capability-hardware: A description of the hardware of the device | ma-capability-hardware: A description of the hardware of the device | |||
| the measurement agent is running on. | the measurement agent is running on. | |||
| ma-capability-firmware: A description of the firmware of the device | ma-capability-firmware: A description of the firmware of the device | |||
| the measurement agent is running on. | the measurement agent is running on. | |||
| ma-capability-version: The version of the measurement agent. | ma-capability-version: The version of the measurement agent. | |||
| ma-capability-tags: An optional unordered set of tags that | ||||
| provide additional information about the | ||||
| capabilities of the measurement agent. | ||||
| ma-capability-tasks: An optional unordered set of capability | ma-capability-tasks: An optional unordered set of capability | |||
| objects for each supported task. | objects for each supported task. | |||
| 3.5.2. Definition of ma-capability-task-obj | 3.5.2. Definition of ma-capability-task-obj | |||
| object { | object { | |||
| string ma-capability-task-name; | string ma-capability-task-name; | |||
| ma-metric-registry-obj ma-capability-task-metrics<0..*>; | ma-metric-registry-obj ma-capability-task-metrics<0..*>; | |||
| string ma-capability-task-version; | string ma-capability-task-version; | |||
| } ma-capability-task-obj; | } ma-capability-task-obj; | |||
| skipping to change at page 21, line 40 ¶ | skipping to change at page 21, line 40 ¶ | |||
| 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 | ma-status-schedule-storage: The amount of secondary storage | |||
| to the schedule in bytes. This | (e.g., allocated in a file | |||
| object reports the amount of | system) holding temporary data | |||
| allocated physical storage and | allocated to the schedule in | |||
| not the storage used by logical | bytes. This object reports the | |||
| data records. Data models should | amount of allocated physical | |||
| use a 64-bit integer type. | 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 23, line 18 ¶ | skipping to change at page 23, line 22 ¶ | |||
| 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-action-storage: The amount of storage | ma-status-action-storage: The amount of secondary | |||
| allocated to the action in | storage (e.g., allocated in | |||
| bytes. This object reports | a file system) holding | |||
| the amount of allocated | temporary data allocated to | |||
| physical storage and not the | the action in bytes. This | |||
| storage used by logical data | object reports the amount of | |||
| records. Data models should | allocated physical storage | |||
| use a 64-bit integer type. | 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 | 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-action-suppressions Number of suppressed | ma-status-action-suppressions Number of suppressed | |||
| skipping to change at page 28, line 25 ¶ | skipping to change at page 28, line 25 ¶ | |||
| 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-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-event-time; | ||||
| 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-cycle-number;] | ||||
| int ma-report-result-status; | int ma-report-result-status; | |||
| [ma-report-conflict-obj ma-report-result-conflicts<0..*>;] | [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. | |||
| skipping to change at page 29, line 7 ¶ | skipping to change at page 29, line 8 ¶ | |||
| options provided by the task object | options provided by the task object | |||
| and the action object when the action | and the action object when the action | |||
| was started. | 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 | |||
| provided by the task object and the | provided by the task object and the | |||
| action object and schedule object | action object and schedule object | |||
| when the action was started. | when the action was started. | |||
| ma-report-result-event-time: The date and time of the event that | ||||
| triggerent the schedule of the action | ||||
| that produced the reported result | ||||
| values. The date and time does not | ||||
| include any added randomization. | ||||
| 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 | |||
| task that produced the reported | action that produced the 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 task finished. | when the action finished. | |||
| ma-report-result-cycle-number: An optional cycle number derived from | ||||
| ma-report-result-event-time. It is | ||||
| the time closest to ma-report-result- | ||||
| event-time that is a multiple of the | ||||
| ma-event-cycle-interval of the event | ||||
| that triggered the execution of the | ||||
| schedule. The value is only present | ||||
| in an ma-report-result-obj if the | ||||
| event that triggered the execution of | ||||
| the schedule has a defined ma-event- | ||||
| cycle-interval. The cycle number is | ||||
| represented in the format | ||||
| YYYYMMDD.HHMMSS where YYYY represents | ||||
| the year, MM the month (1..12), DD | ||||
| the day of the months (01..31), HH | ||||
| the hour (00..23), MM the minute | ||||
| (00..59), and SS the second (00..59). | ||||
| ma-report-result-status: The status code returned by the | ma-report-result-status: The status code returned by the | |||
| execution of the task. | execution of the action. | |||
| ma-report-result-conflicts: A possibly empty set of conflict | ma-report-result-conflicts: A possibly empty set of conflict | |||
| actions that might have impacted the | 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-conflict-obj | 3.6.3. Definition of ma-report-conflict-obj | |||
| skipping to change at page 35, line 36 ¶ | skipping to change at page 36, line 17 ¶ | |||
| ma-channel-name: A unique name identifying the channel | ma-channel-name: A unique name identifying the channel | |||
| object. | object. | |||
| ma-channel-target: A URL identifying the target channel | ma-channel-target: A URL identifying the target channel | |||
| endpoint. | endpoint. | |||
| ma-channel-credentials: The security credentials needed to | ma-channel-credentials: The security credentials needed to | |||
| establish a secure channel. | establish a secure channel. | |||
| ma-channel-interface-name: An optional name of the network interface | ma-channel-interface-name: An optional name of the network interface | |||
| to be used. If not present, the system | to be used. If not present, the IP | |||
| will select a suitable interface. | protocol stack will select a suitable | |||
| interface. | ||||
| 3.9. Common Objects: Task Configurations | 3.9. Common Objects: Task Configurations | |||
| Conceptually each Task Configuration defines the parameters of a Task | Conceptually each Task Configuration defines the parameters of a Task | |||
| that the Measurement Agent (MA) may perform at some point in time. | that the Measurement Agent (MA) may perform at some point in time. | |||
| It does not by itself actually instruct the MA to perform them at any | It does not by itself actually instruct the MA to perform them at any | |||
| particular time (this is done by a Schedule). Tasks can be | particular time (this is done by a Schedule). Tasks can be | |||
| Measurement Tasks (i.e., those Tasks actually performing some type of | Measurement Tasks (i.e., those Tasks actually performing some type of | |||
| passive or active measurement) or any other scheduled activity | passive or active measurement) or any other scheduled activity | |||
| performed by the MA such as transferring information to or from the | performed by the MA such as transferring information to or from the | |||
| skipping to change at page 36, line 41 ¶ | skipping to change at page 37, line 23 ¶ | |||
| instead of a simple string or numeric value. The implementation of | instead of a simple string or numeric value. The implementation of | |||
| these name-value pairs will vary between data models. | these name-value pairs will vary between data models. | |||
| An Option that must be present for Reporting Tasks is the Channel | An Option that must be present for Reporting Tasks is the Channel | |||
| reference specifying how to communicate with a Collector. This is | reference specifying how to communicate with a Collector. This is | |||
| 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 send a report without measurement results if there is no | |||
| transferred to the Collector. In addition many tasks will also take | measurement result data pending to be transferred to the Collector. | |||
| as a parameter which interface to operate over. | In addition many tasks will also take as a parameter which interface | |||
| to operate over. | ||||
| 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 | |||
| skipping to change at page 38, line 5 ¶ | skipping to change at page 38, line 35 ¶ | |||
| [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 | The ma-option-obj is used to define Task Configuration Options. Task | |||
| tasks to define, some common Options are used by multiple tasks and | Configuration Options are generally task specific. For tasks | |||
| benefit from standardisation: | associated with an entry in a registry, the registry may define well- | |||
| known option names (e.g., the so-called parameters in the IPPM metric | ||||
| o Channel is used to specify the details of an endpoint for Control | registry [I-D.ietf-ippm-metric-registry]). Control and Reporting | |||
| or Reporting Task communications and is detailed elsewhere in this | Tasks need to know the Channel they are going to use. The common | |||
| document. The common option name for specifying the channel is | option name for specifying the channel is "channel" where the | |||
| "channel". | option's value refers to the name of an ma-channel-obj. | |||
| 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 { | |||
| skipping to change at page 39, line 50 ¶ | skipping to change at page 40, line 36 ¶ | |||
| 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-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;] | |||
| [int ma-event-cycle-interval;] | ||||
| } 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 | |||
| schedules triggered by an event. The ma-event-obj consists of the | schedules triggered by an event. The ma-event-obj consists of the | |||
| following elements: | following elements: | |||
| skipping to change at page 40, line 43 ¶ | skipping to change at page 41, line 30 ¶ | |||
| ma-event-controller-lost: The ma-event-controller-lost is | ma-event-controller-lost: The ma-event-controller-lost is | |||
| present for connectivity to | present for connectivity to | |||
| controller lost event objects. | controller lost event objects. | |||
| ma-event-controller-connected: The ma-event-controller-connected is | ma-event-controller-connected: The ma-event-controller-connected is | |||
| present for connectivity to a | present for connectivity to a | |||
| controller established event objects. | controller established event objects. | |||
| ma-event-random-spread: The optional ma-event-random-spread | ma-event-random-spread: The optional ma-event-random-spread | |||
| adds a random delay defined in | adds a random delay defined in | |||
| seconds to the event object. | seconds to the event object. No | |||
| random delay is added if ma-event- | ||||
| random-spread does not exist. | ||||
| ma-event-cycle-interval: The optional ma-event-cycle-interval | ||||
| defines the duration of the time | ||||
| interval in seconds that is used to | ||||
| calculate cycle numbers. No cycle | ||||
| number is calculated if ma-event- | ||||
| cycle-interval does not exist. | ||||
| 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 44, line 34 ¶ | skipping to change at page 45, line 24 ¶ | |||
| object { | object { | |||
| // empty | // empty | |||
| } ma-controller-connected-obj; | } ma-controller-connected-obj; | |||
| The ma-controller-connected-obj event object has no further | The ma-controller-connected-obj event object has no further | |||
| information elements. The ma-controller-connected-obj 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 event may be used to end a suppression. | was lost. This event may be used to end a suppression. | |||
| 4. IANA Considerations | 4. Example Execution | |||
| The example execution has two event sources E1 and E2 and three | ||||
| schedules S1, S2, and S3. The schedule S3 is started by events of | ||||
| event source E2 while the schedules S1 and S2 are both started by | ||||
| events of the event source E1. The schedules S1 and S2 have two | ||||
| actions each and schedule S3 has a single action. The event source | ||||
| E2 has no randomization while the event source E1 has the | ||||
| randomization r. | ||||
| Figure 2 shows a possible timeline of an execution. The time T is | ||||
| progressing downwards. The dotted vertial line indicates progress of | ||||
| time while a dotted horizontal line indicates which schedule are | ||||
| triggered by an event. Tilded lines indicate data flowing from an | ||||
| action to another schedule. Actions within a schedule are named A1, | ||||
| A2, etc. | ||||
| E2 E1 T S1 S2 S3 | ||||
| sequential parallel pipelined | ||||
| : | ||||
| e0 + | ||||
| : | ||||
| : | ||||
| e0+r + .......... + .......... ++ | ||||
| : | A1 A1 || A2 | ||||
| : + |+ ~~~~~~~> | ||||
| : | A2 | | ||||
| : | + ~~~~~~~~> | ||||
| : + ~~~~~~~~~~~~~~~~~~~~~> | ||||
| : | ||||
| : | ||||
| e1 + | ||||
| : | ||||
| e1+r + .......... + .......... ++ | ||||
| : | A1 A1 || | ||||
| : | +|~~~~~~~> | ||||
| : | | A2 | ||||
| : + +~~~~~~~> | ||||
| : | A2 | ||||
| : + ~~~~~~~~~~~~~~~~~~~~> | ||||
| e0 + ................................... + | ||||
| : | A1 | ||||
| e3 + | | ||||
| e3+r + .......... + .......... ++ | | ||||
| : | A1 A1 || A2 | | ||||
| : + ++ ~~~~~~> | | ||||
| : | A2 + | ||||
| : + ~~~~~~~~~~~~~~~~~~~~> | ||||
| V | ||||
| Figure 2: Example Execution | ||||
| Note that implementations must handle possible concurrency issues. | ||||
| In the example execution, action A1 of schedule S3 is consuming the | ||||
| data that has been forwarded to schedule S3 while additional data is | ||||
| arriving from action A2 of schedule S2. | ||||
| 5. 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 | 6. Security Considerations | |||
| 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 | |||
| skipping to change at page 45, line 18 ¶ | skipping to change at page 47, line 31 ¶ | |||
| 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 | |||
| security and privacy requirements associated with the LMAP Framework. | security and privacy requirements associated with the LMAP Framework. | |||
| 6. Acknowledgements | 7. Acknowledgements | |||
| The notation was inspired by the notation used in the ALTO protocol | The notation was inspired by the notation used in the ALTO protocol | |||
| specification. | specification. | |||
| Philip Eardley, Trevor Burbridge, Marcelo Bagnulo and Juergen | Philip Eardley, Trevor Burbridge, Marcelo Bagnulo and Juergen | |||
| Schoenwaelder worked in part on the Leone research project, which | Schoenwaelder worked in part on the Leone research project, which | |||
| received funding from the European Union Seventh Framework Programme | received funding from the European Union Seventh Framework Programme | |||
| [FP7/2007-2013] under grant agreement number 317647. | [FP7/2007-2013] under grant agreement number 317647. | |||
| Juergen Schoenwaelder was partly funded by Flamingo, a Network of | Juergen Schoenwaelder was partly funded by Flamingo, a Network of | |||
| Excellence project (ICT-318488) supported by the European Commission | Excellence project (ICT-318488) supported by the European Commission | |||
| under its Seventh Framework Programme. | under its Seventh Framework Programme. | |||
| 7. References | 8. References | |||
| 7.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | |||
| RFC2119, March 1997, | RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: | [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: | |||
| Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, | Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, | |||
| <http://www.rfc-editor.org/info/rfc3339>. | <http://www.rfc-editor.org/info/rfc3339>. | |||
| [RFC7594] Eardley, P., Morton, A., Bagnulo, M., Burbridge, T., | [RFC7594] Eardley, P., Morton, A., Bagnulo, M., Burbridge, T., | |||
| 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 | 8.2. Informative References | |||
| [I-D.ietf-ippm-metric-registry] | [I-D.ietf-ippm-metric-registry] | |||
| Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A. | Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A. | |||
| Akhter, "Registry for Performance Metrics", draft-ietf- | Akhter, "Registry for Performance Metrics", draft-ietf- | |||
| ippm-metric-registry-06 (work in progress), March 2016. | ippm-metric-registry-07 (work in progress), July 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-04 (work in | LMAP Measurement Agents", draft-ietf-lmap-yang-05 (work in | |||
| progress), March 2016. | progress), July 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. Non-editorial Changes since -10 | |||
| o There is a proposal to add a cycle number to the result reports | o Rewrote the text concerning the well-known "channel" option name. | |||
| 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. | ||||
| o There is a proposal to remove the well-known Channel option name | o Added ma-report-result-event-time, ma-report-result-cycle-number, | |||
| from the information model. | and ma-event-cycle-interval. | |||
| o There is a potentially unresolved discussion around the ma- | o Added ma-capability-tags. | |||
| schedule-end and ma-schedule-duration. | ||||
| o It may be useful to add ma-capability-tags so that MAs could be | o Added a new section showing an example execution. | |||
| tagged with additional information (e.g., dsl, cable, home, | ||||
| office, nat, ipv4, ipv6, ...). | o Several clarifications and bug fixes. | |||
| Appendix B. Non-editorial Changes since -09 | Appendix B. Non-editorial Changes since -09 | |||
| o Added ma-status-schedule-storage and ma-status-action-storage. | o Added ma-status-schedule-storage and ma-status-action-storage. | |||
| o Removed suppress-by-default. | o Removed suppress-by-default. | |||
| o Moved ma-report-result-metrics of the ma-report-result-obj to ma- | o Moved ma-report-result-metrics of the ma-report-result-obj to ma- | |||
| report-table-metrics of the ma-report-table-obj so that the | report-table-metrics of the ma-report-table-obj so that the | |||
| relationship between metrics and result tables is clear. | relationship between metrics and result tables is clear. | |||
| End of changes. 41 change blocks. | ||||
| 98 lines changed or deleted | 200 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/ | ||||