| < draft-bagnulo-lmap-http-02.txt | draft-bagnulo-lmap-http-03.txt > | |||
|---|---|---|---|---|
| Network Working Group M. Bagnulo | Network Working Group M. Bagnulo | |||
| Internet-Draft UC3M | Internet-Draft UC3M | |||
| Intended status: Standards Track T. Burbridge | Intended status: Standards Track T. Burbridge | |||
| Expires: January 4, 2015 BT | Expires: March 14, 2015 BT | |||
| S. Crawford | S. Crawford | |||
| SamKnows | SamKnows | |||
| J. Schoenwaelder | J. Schoenwaelder | |||
| V. Bajpai | V. Bajpai | |||
| Jacobs University Bremen | Jacobs University Bremen | |||
| July 3, 2014 | September 10, 2014 | |||
| Large MeAsurement Platform Protocol | Large MeAsurement Platform Protocol | |||
| draft-bagnulo-lmap-http-02 | draft-bagnulo-lmap-http-03 | |||
| Abstract | Abstract | |||
| This documents specifies the LMAP protocol based on HTTP for the | This documents specifies the LMAP protocol based on HTTP for the | |||
| Control and Report in Large Scale Measurement Platforms. | Control and Report in Large Scale Measurement Platforms. | |||
| 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 | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
| 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 4, 2015. | This Internet-Draft will expire on March 14, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Naming Considerations . . . . . . . . . . . . . . . . . . . . 5 | 3. Naming Considerations . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. Information model . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Information model . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5. Transport protocol . . . . . . . . . . . . . . . . . . . . . 7 | 5. Transport protocol . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5.1. Pre-configured information . . . . . . . . . . . . . . . 7 | 5.1. Pre-configured information . . . . . . . . . . . . . . . 7 | |||
| 5.2. Control Protocol . . . . . . . . . . . . . . . . . . . . 7 | 5.2. Control Protocol . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5.2.1. Retrieving Instructions . . . . . . . . . . . . . . . 8 | 5.2.1. Retrieving Instructions . . . . . . . . . . . . . . . 8 | |||
| 5.2.2. Handling communication failures . . . . . . . . . . . 10 | 5.2.2. Handling communication failures . . . . . . . . . . . 10 | |||
| 5.2.3. Pushing Information from the Controller to the MA . . 11 | 5.2.3. Pushing Information from the Controller to the MA . . 10 | |||
| 5.3. Report protocol . . . . . . . . . . . . . . . . . . . . . 12 | 5.3. Report protocol . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 5.3.1. Handling communication failures . . . . . . . . . . . 12 | 5.3.1. Handling communication failures . . . . . . . . . . . 12 | |||
| 6. LMAP Data Model . . . . . . . . . . . . . . . . . . . . . . . 13 | 6. LMAP Data Model . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 6.1. Timing Information . . . . . . . . . . . . . . . . . . . 13 | 6.1. Timing Information . . . . . . . . . . . . . . . . . . . 13 | |||
| 6.2. Channels . . . . . . . . . . . . . . . . . . . . . . . . 13 | 6.2. Channels . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 6.3. Pre-Configuration . . . . . . . . . . . . . . . . . . . . 14 | 6.3. Configuration . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 6.4. Configuration . . . . . . . . . . . . . . . . . . . . . . 15 | 6.4. Instruction . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 6.5. Instruction . . . . . . . . . . . . . . . . . . . . . . . 15 | 6.5. Measurement Supression . . . . . . . . . . . . . . . . . 16 | |||
| 6.5.1. Measurement Supression . . . . . . . . . . . . . . . 15 | 6.6. Measurement Task Configurations . . . . . . . . . . . . . 16 | |||
| 6.5.2. Measurement Task Configurations . . . . . . . . . . . 15 | 6.7. Measurement Schedules . . . . . . . . . . . . . . . . . . 17 | |||
| 6.5.3. Measurement Schedules . . . . . . . . . . . . . . . . 16 | 6.8. Logging . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 6.5.4. Report Channels . . . . . . . . . . . . . . . . . . . 16 | 6.9. Capability and Status . . . . . . . . . . . . . . . . . . 18 | |||
| 6.6. MA to Controller . . . . . . . . . . . . . . . . . . . . 17 | 6.10. Reporting . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 6.7. Capability and Status . . . . . . . . . . . . . . . . . . 17 | 7. Security considerations . . . . . . . . . . . . . . . . . . . 22 | |||
| 6.8. Reporting . . . . . . . . . . . . . . . . . . . . . . . . 18 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 7. Security considerations . . . . . . . . . . . . . . . . . . . 19 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 24 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 10.2. Informative References . . . . . . . . . . . . . . . . . 25 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 22 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | ||||
| 1. Introduction | 1. Introduction | |||
| A Large MeAsurement Platform (LMAP) is an infrastructure deployed in | A Large MeAsurement Platform (LMAP) is an infrastructure deployed in | |||
| the Internet that enables performing measurements from a very large | the Internet that enables performing measurements from a very large | |||
| number of vantage points. | number of vantage points. | |||
| The main components of a LMAP are the following: | The main components of a LMAP are the following: | |||
| o The Measurement Agents (MAs): these are the processes that perform | o The Measurement Agents (MAs): these are the processes that perform | |||
| skipping to change at page 13, line 30 ¶ | skipping to change at page 13, line 25 ¶ | |||
| 6. LMAP Data Model | 6. LMAP Data Model | |||
| This section will contain the data model in json. | This section will contain the data model in json. | |||
| 6.1. Timing Information | 6.1. Timing Information | |||
| An example immediate timing object with no defined randomness is | An example immediate timing object with no defined randomness is | |||
| shown below: | shown below: | |||
| -- ma_timing_obj | ||||
| { | { | |||
| "id": 1 | "timings": [ | |||
| , "ma_timing_option": "IMMEDIATE" | { | |||
| , "ma_randomness_option": null | "id": 1, | |||
| , "ma_timing_name": null | "ma_periodic_end": 1410017611, | |||
| "ma_periodic_interval": 3600000, | ||||
| "ma_periodic_start": 1410017613, | ||||
| "ma_randomness_spred": 0, | ||||
| "ma_timing_name": "hourly" | ||||
| }, | ||||
| { | ||||
| "id": 3, | ||||
| "ma_periodic_end": 1410017611, | ||||
| "ma_periodic_interval": 86400, | ||||
| "ma_periodic_start": 1410017613, | ||||
| "ma_randomness_spred": 0, | ||||
| "ma_timing_name": "daily" | ||||
| }, | ||||
| { | ||||
| "id": 2, | ||||
| "ma_periodic_end": 1410017611, | ||||
| "ma_periodic_interval": 3600000, | ||||
| "ma_periodic_start": 1410017613, | ||||
| "ma_randomness_spred": 0, | ||||
| "ma_timing_name": "hourly" | ||||
| }, | ||||
| { | ||||
| "id": 4, | ||||
| "ma_calendar_days_of_month": "", | ||||
| "ma_calendar_days_of_week": "tuesday, thursday, sunday", | ||||
| "ma_calendar_end": 1410017613, | ||||
| "ma_calendar_hours": "18", | ||||
| "ma_calendar_minutes": "04", | ||||
| "ma_calendar_months": "", | ||||
| "ma_calendar_seconds": "42", | ||||
| "ma_calendar_start": 1410017612, | ||||
| "ma_calendar_timezone_offset": 2, | ||||
| "ma_randomness_spred": 0, | ||||
| "ma_timing_name": "tuesday-thursday-sunday" | ||||
| }, | ||||
| { | ||||
| "id": 5, | ||||
| "ma_calendar_days_of_month": "", | ||||
| "ma_calendar_days_of_week": "", | ||||
| "ma_calendar_end": 1410017619, | ||||
| "ma_calendar_hours": "0, 6 12 18", | ||||
| "ma_calendar_minutes": "0", | ||||
| "ma_calendar_months": "", | ||||
| "ma_calendar_seconds": "0", | ||||
| "ma_calendar_start": 1410017612, | ||||
| "ma_calendar_timezone_offset": 2, | ||||
| "ma_randomness_spred": 21600000, | ||||
| "ma_timing_name": "once-every-six-hours" | ||||
| }, | ||||
| { | ||||
| "id": 6, | ||||
| "ma_one_off_time": 1410017613, | ||||
| "ma_randomness_spred": 0, | ||||
| "ma_timing_name": "immediate" | ||||
| }, | ||||
| { | ||||
| "id": 7, | ||||
| "ma_one_off_time": 1410017613, | ||||
| "ma_randomness_spred": 0, | ||||
| "ma_timing_name": "immediate" | ||||
| }, | ||||
| { | ||||
| "id": 8, | ||||
| "ma_randomness_spred": 12345, | ||||
| "ma_timing_name": "startup" | ||||
| } | ||||
| ] | ||||
| } | } | |||
| 6.2. Channels | 6.2. Channels | |||
| An example channel object using the aforementioned timing object is | An example channel object using the aforementioned timing object is | |||
| shown below: | shown below: | |||
| -- ma_channel_obj | ||||
| { | { | |||
| "id": 1 | "channels": [ | |||
| , "ma_channel_timing_obj_id": 1 | { | |||
| , "ma_channel_connect_always": "true" | "id": 1, | |||
| , "ma_channel_target": "controller.example.org" | "ma_channel_credentials": "MIIFEzCCAvsCAQEwDQYJ...", | |||
| , "ma_channel_certificate": "MIIFEzCCAvsCAQEwDQYJ" | "ma_channel_interface_name": "eth0", | |||
| , "ma_channel_interface_name": "eth0" | "ma_channel_name": "default-collector-channel", | |||
| , "ma_channel_name": "INSTRUCTION" | "ma_channel_target": "collector.example.org" | |||
| } | }, | |||
| { | ||||
| -- ma_channel_obj | "id": 2, | |||
| { | "ma_channel_credentials": "MIIFEzCCAvsCAQEwDQYJ...", | |||
| "id": 2 | "ma_channel_interface_name": "eth0", | |||
| , "ma_channel_timing_obj_id": 1 | "ma_channel_name": "default-controller-channe", | |||
| , "ma_channel_connect_always": "true" | "ma_channel_target": "controller.example.org" | |||
| , "ma_channel_target": "controller.example.org" | } | |||
| , "ma_channel_certificate": "VtAKQhFM89kOIxn5g..." | ] | |||
| , "ma_channel_interface_name": "eth0" | ||||
| , "ma_channel_name": "MA-TO-CONTROLLER" | ||||
| } | ||||
| -- ma_channel_obj | ||||
| { | ||||
| "id": 3 | ||||
| , "ma_channel_timing_obj_id": 1 | ||||
| , "ma_channel_connect_always": "true" | ||||
| , "ma_channel_target": "collector.example.org" | ||||
| , "ma_channel_certificate": "X1Ow9+Grmkb9EmVPfqH0..." | ||||
| , "ma_channel_interface_name": "eth0" | ||||
| , "ma_channel_name": "REPORT" | ||||
| } | ||||
| 6.3. Pre-Configuration | ||||
| An example pre-config object using the aforementioned channel objects | ||||
| is shown below: | ||||
| -- ma_preconfig_obj | ||||
| { | ||||
| "id": 1 | ||||
| , "ma_instruction_channel_obj_id": 1 | ||||
| , "ma_ma_to_controller_channel_obj_id": 2 | ||||
| , "ma_device_id": "01:23:45:67:89:ab" | ||||
| , "ma_agent_id": null | ||||
| } | } | |||
| 6.4. Configuration | 6.3. Configuration | |||
| An example config object using the aforementioned channel objects is | An example config object using the aforementioned channel objects is | |||
| shown below: | shown below: | |||
| -- ma_config_obj | ||||
| { | { | |||
| "id": 1 | "config": [ | |||
| , "ma_agent_id": "c54c284a01ee11e48dd310ddb1bd23b5" | { | |||
| , "ma_group_id": "d7d63d7a01ee11e49b2210ddb1bd23b5" | "id": 1, | |||
| , "ma_instruction_channel_obj_id": 1 | "ma_agent_id": "550e8400-e29b-41d4-a716-446655440000", | |||
| , "ma_report_ma_id_flag": "false" | "ma_channel_name": "default-controller-channel", | |||
| , "ma_instruction_channel_failure_threshold": 10 | "ma_control_channel_fail_tresh": "10", | |||
| "ma_credentials": "MIIFEzCCAvsCAQEwDQYJ...", | ||||
| "ma_device_id": "01:23:45:67:89:ab", | ||||
| "ma_group_id": "550e8400-e29b-41d4-a716-446655440123", | ||||
| "ma_report_ma_id_flag": "1" | ||||
| } | ||||
| ] | ||||
| } | } | |||
| 6.5. Instruction | 6.4. Instruction | |||
| An example instruction object is shown below: | ||||
| -- ma_instruction_obj | The instruction object is essentially a wrapper around suppression, | |||
| { | schedule, task, channel objects. | |||
| "id": 1 | ||||
| , "ma_supression_obj_id": 1 | ||||
| } | ||||
| 6.5.1. Measurement Supression | 6.5. Measurement Supression | |||
| An example supression object used by the aforementioned instruction | An example supression object used by the aforementioned instruction | |||
| object is shown below: | object is shown below: | |||
| -- ma_supression_obj | ||||
| { | { | |||
| "id": 1 | "supression": [ | |||
| , "ma_supression_enabled": "true" | { | |||
| , "ma_supression_start": 1404309159 | "id": 1, | |||
| , "ma_supression_end": 1404309193 | "ma_supression_enabled": 0, | |||
| "ma_supression_end": 0, | ||||
| "ma_supression_schedule_names": "icmp-latency-immediate", | ||||
| "ma_supression_start": 1410037509, | ||||
| "ma_supression_stop_ongoing_task": 0, | ||||
| "ma_supression_task_names": "iperf-server" | ||||
| } | ||||
| ] | ||||
| } | } | |||
| 6.5.2. Measurement Task Configurations | 6.6. Measurement Task Configurations | |||
| An example task object used by the aforementioned instruction object | An example task object used by the aforementioned instruction object | |||
| is shown below: | is shown below: | |||
| -- ma_task_obj | ||||
| { | { | |||
| "id": 1 | "tasks": [ | |||
| , "instruction_obj_id": 1 | { | |||
| , "supression_obj_id": 1 | "id": 1, | |||
| , "ma_task_name": "UDP latency" | "ma_role": "", | |||
| , "ma_task_registry": "urn:ietf:ippm..." | "ma_task_cycle_id": "1", | |||
| , "ma_task_options": "..." # omitted for brevity reasons | "ma_task_name": "udp-latency-test", | |||
| , "ma_task_cycle_id": "1" | "ma_task_options": "", | |||
| "ma_task_registry_entry": "urn:...", | ||||
| "ma_task_supress_default": "true" | ||||
| }, | ||||
| { | ||||
| "id": 5, | ||||
| "ma_role": "", | ||||
| "ma_task_cycle_id": "1", | ||||
| "ma_task_name": "reporting-daily", | ||||
| "ma_task_options": "", | ||||
| "ma_task_registry_entry": "urn:...", | ||||
| "ma_task_supress_default": "true" | ||||
| }, | ||||
| { | ||||
| "id": 2, | ||||
| "ma_role": "", | ||||
| "ma_task_cycle_id": "1", | ||||
| "ma_task_name": "icmp-latency-test", | ||||
| "ma_task_options": "", | ||||
| "ma_task_registry_entry": "urn:...", | ||||
| "ma_task_supress_default": "true" | ||||
| }, | ||||
| { | ||||
| "id": 3, | ||||
| "ma_role": "", | ||||
| "ma_task_cycle_id": "1", | ||||
| "ma_task_name": "iperf-server", | ||||
| "ma_task_options": "{\\\"name\\\":\\\"role\\\", | ||||
| \\\"value\\\":\\\"server\\\"}", | ||||
| "ma_task_registry_entry": "server", | ||||
| "ma_task_supress_default": "false" | ||||
| }, | ||||
| { | ||||
| "id": 4, | ||||
| "ma_role": "", | ||||
| "ma_task_cycle_id": "1", | ||||
| "ma_task_name": "lmap-reporting-task", | ||||
| "ma_task_options": "", | ||||
| "ma_task_registry_entry": "lmap-reportd", | ||||
| "ma_task_supress_default": "true" | ||||
| } | ||||
| ] | ||||
| } | } | |||
| 6.5.3. Measurement Schedules | 6.7. Measurement Schedules | |||
| An example schedule object used by the aforementioned instruction | An example schedule object used by the aforementioned instruction | |||
| object is shown below: | object is shown below: | |||
| -- ma_schedule_obj | ||||
| { | ||||
| "id": 1 | ||||
| , "instruction_obj_id": 1 | ||||
| , "supression_obj_id": 1 | ||||
| , "timing_obj_id": 1 | ||||
| , "ma_schedule_name": "A schedule with immediate timing" | ||||
| } | ||||
| -- ma_sched_task_obj | ||||
| { | { | |||
| "id": 1 | "schedules": [ | |||
| , "schedule_obj_id": 1 | { | |||
| , "ma_schedule_task_name": "A schedule for UDP latency task" | "id": 1, | |||
| } | "ma_sched_channel_interface_select": "0", | |||
| "ma_sched_channel_names": "default-collector-channel", | ||||
| 6.5.4. Report Channels | "ma_sched_task_downstream_config_names": "reporting-daily", | |||
| "ma_sched_task_output_selection": "1", | ||||
| An example schedule report object used by the aforementioned | "ma_schedule_name": "reporting-immediate", | |||
| instruction object is shown below: | "ma_schedule_task_name": "icmp-latency-test", | |||
| "ma_timing_name": "immediate" | ||||
| -- ma_sched_report_obj | } | |||
| { | ] | |||
| "id": 1 | ||||
| , "ma_schedule_obj_id": 1 | ||||
| , "channel_obj_id": 3 | ||||
| , "ma_schedule_task_report_channel_name": "A report channel" | ||||
| , "ma_schedule_task_filter": null | ||||
| } | } | |||
| 6.6. MA to Controller | 6.8. Logging | |||
| An example log object is shown below: | An example log object is shown below: | |||
| -- ma_log_obj | ||||
| { | { | |||
| "id": 1 | "logging": [ | |||
| , "ma_log_agent_id": "0e49b32b01fa11e4bcaf10ddb1bd23b5" | { | |||
| , "ma_log_event_time": 1404313752 | "id": 1, | |||
| , "ma_log_code": "200" | "ma_log_agent_id": "0e49b32b01fa11e4bcaf10ddb1bd23b5", | |||
| , "ma_log_description": "OK" | "ma_log_code": "200", | |||
| "ma_log_description": "OK", | ||||
| "ma_log_event_time": 1404313752 | ||||
| } | ||||
| ] | ||||
| } | } | |||
| 6.7. Capability and Status | 6.9. Capability and Status | |||
| An example status object is shown below: | An example status object is shown below: | |||
| -- ma_status_obj | ||||
| { | ||||
| "id": 1 | ||||
| , "ma_agent_id": "c54c284a01ee11e48dd310ddb1bd23b5" | ||||
| , "ma_device_id": "01:23:45:67:89:ab" | ||||
| , "ma_hardware": "TL-MR3020" | ||||
| , "ma_software": "Busybox" | ||||
| , "ma_firmware": "4560" | ||||
| , "ma_last_measurement": 1404315031 | ||||
| , "ma_last_report": 1404315053 | ||||
| , "ma_last_instruction": 140431312 | ||||
| , "ma_last_configuration": 140423245 | ||||
| } | ||||
| An example capability object is shown below: | ||||
| -- ma_capability_obj | ||||
| { | ||||
| "id": "1" | ||||
| , "ma_status_obj_id": 1 | ||||
| , "ma_measurement_id": "c56cb44a028c11e495d910ddb1bd23b5" | ||||
| , "ma_measurement_version": "v1.0" | ||||
| } | ||||
| An example interface object is shown below: | ||||
| -- ma_interface_obj | ||||
| { | { | |||
| "id": 1 | "status": [ | |||
| , "ma_status_obj_id": 1 | { | |||
| , "ma_interface_name": "eth0" | "id": 1, | |||
| , "ma_interface_type": "100baseTX" | "ma_agent_id": "c54c284a01ee11e48dd310ddb1bd23b5", | |||
| , "ma_interface_speed": "100Mbps" | "ma_condition_code": "8081", | |||
| , "ma_link_layer_address": "01:23:45:67:89:ab" | "ma_condition_text": "Cond_Text", | |||
| } | "ma_device_id": "urn:dev:mac:0024befffe804ff1", | |||
| "ma_firmware": "4560", | ||||
| An example ip address object used by the aforementioned interface | "ma_hardware": "TL-MR3020", | |||
| object is shown below: | "ma_interface_dns_server": "8.8.8.8", | |||
| "ma_interface_gateway": "192.168.1.1", | ||||
| -- ip_address | "ma_interface_ip_address": "192.168.1.10", | |||
| { | "ma_interface_name": "eth0", | |||
| "id": 1 | "ma_interface_speed": "100Mbps", | |||
| , "interface_obj_id": 1 | "ma_interface_type": "100baseTX", | |||
| , "value": "192.168.1.10" | "ma_last_config": "140423245", | |||
| , "ma_interface_if_ip_address": 1 | "ma_last_instruction": "140431312", | |||
| , "ma_interface_if_dns_server": 0 | "ma_last_measurement": "1404315031", | |||
| , "ma_interface_if_gateway": 0 | "ma_last_report": "1404315053", | |||
| "ma_link_layer_addr": "01:23:45:67:89:ab", | ||||
| "ma_task_name": "Report", | ||||
| "ma_task_registry": "urn:ietf:lmap:report:http_report", | ||||
| "ma_task_role": "Role", | ||||
| "ma_version": "Busybox" | ||||
| } | ||||
| ] | ||||
| } | } | |||
| 6.8. Reporting | 6.10. Reporting | |||
| An example report object is shown below: | An example report object is shown below: | |||
| -- ma_report_obj | ||||
| { | { | |||
| "id": 1 | "reporting": [ | |||
| , "ma_report_agent_id": "c54c284a01ee11e48dd310ddb1bd23b5" | { | |||
| , "ma_report_group_id": "d7d63d7a01ee11e49b2210ddb1bd23b5" | "id": 1, | |||
| , "ma_report_date": 1404316528 | "ma_report_agent_id": "550e8400-e29b-41d4-a716-446655440000", | |||
| } | "ma_report_date": 1404315031, | |||
| "ma_report_group_id": "550e8400-e29b-41d4-a716-446655440123", | ||||
| "ma_report_result_conflict_task": "0", | ||||
| "ma_report_result_cross_traffic": 20, | ||||
| "ma_report_result_end_time": 1404315031, | ||||
| "ma_report_result_start_time": 1404315031, | ||||
| "ma_report_result_values": "result_values", | ||||
| "ma_report_task_column_labels": "\"start-time\", | ||||
| \"conflicting-tasks\", \"cross-traffic\", \"mean\", | ||||
| \"min\", \"max\"", | ||||
| "ma_role": "", | ||||
| "ma_task_cycle_id": "1", | ||||
| "ma_task_name": "udp-latency-test", | ||||
| "ma_task_options": "", | ||||
| "ma_task_registry_entry": "urn:...", | ||||
| "ma_task_supress_default": "true" | ||||
| }, | ||||
| { | ||||
| "id": 2, | ||||
| "ma_report_agent_id": "550e8400-e29b-41d4-a716-446655440000", | ||||
| "ma_report_date": 1404315031, | ||||
| "ma_report_group_id": "550e8400-e29b-41d4-a716-446655440123", | ||||
| "ma_report_result_conflict_task": "0", | ||||
| "ma_report_result_cross_traffic": 20, | ||||
| "ma_report_result_end_time": 1404315031, | ||||
| "ma_report_result_start_time": 1404315031, | ||||
| "ma_report_result_values": "result_values", | ||||
| "ma_report_task_column_labels": "\"start-time\", | ||||
| \"conflicting-tasks\", \"cross-traffic\", | ||||
| \"mean\", \"min\", \"max\"", | ||||
| "ma_role": "", | ||||
| "ma_task_cycle_id": "1", | ||||
| "ma_task_name": "icmp-latency-test", | ||||
| "ma_task_options": "", | ||||
| "ma_task_registry_entry": "urn:...", | ||||
| "ma_task_supress_default": "true" | ||||
| }, | ||||
| { | ||||
| "id": 3, | ||||
| "ma_report_agent_id": "550e8400-e29b-41d4-a716-446655440000", | ||||
| "ma_report_date": 1404315031, | ||||
| "ma_report_group_id": "550e8400-e29b-41d4-a716-446655440123", | ||||
| "ma_report_result_conflict_task": "0", | ||||
| "ma_report_result_cross_traffic": 20, | ||||
| "ma_report_result_end_time": 1404315031, | ||||
| "ma_report_result_start_time": 1404315031, | ||||
| "ma_report_result_values": "result_values", | ||||
| "ma_report_task_column_labels": "\"start-time\", | ||||
| \"conflicting-tasks\", \"cross-traffic\", | ||||
| \"mean\", \"min\", \"max\"", | ||||
| "ma_role": "", | ||||
| "ma_task_cycle_id": "1", | ||||
| "ma_task_name": "iperf-server", | ||||
| "ma_task_options": "{\\\"name\\\":\\\"role\\\", | ||||
| \\\"value\\\":\\\"server\\\"}", | ||||
| "ma_task_registry_entry": "server", | ||||
| "ma_task_supress_default": "false" | ||||
| -- ma_report_task_obj | }, | |||
| { | { | |||
| "id": 1 | "id": 4, | |||
| , "ma_task_obj_id": 1 | "ma_report_agent_id": "550e8400-e29b-41d4-a716-446655440000", | |||
| , "ma_report_obj_id": 1 | "ma_report_date": 1404315031, | |||
| , "ma_report_task_column_headers": "...,...,..." | "ma_report_group_id": "550e8400-e29b-41d4-a716-446655440123", | |||
| } | "ma_report_result_conflict_task": "0", | |||
| -- ma_result_row_obj | "ma_report_result_cross_traffic": 20, | |||
| { | "ma_report_result_end_time": 1404315031, | |||
| "id": 1 | "ma_report_result_start_time": 1404315031, | |||
| , "ma_report_task_obj_id": 1 | "ma_report_result_values": "result_values", | |||
| , "ma_report_result_time": 1404317298 | "ma_report_task_column_labels": "\"start-time\", | |||
| , "ma_report_result_cross_traffic": null | \"conflicting-tasks\", \"cross-traffic\", | |||
| , "ma_report_result_values": "...,...," | \"mean\", \"min\", \"max\"", | |||
| "ma_role": "", | ||||
| "ma_task_cycle_id": "1", | ||||
| "ma_task_name": "lmap-reporting-task", | ||||
| "ma_task_options": "", | ||||
| "ma_task_registry_entry": "lmap-reportd", | ||||
| "ma_task_supress_default": "true" | ||||
| }, | ||||
| { | ||||
| "id": 5, | ||||
| "ma_report_agent_id": "550e8400-e29b-41d4-a716-446655440000", | ||||
| "ma_report_date": 1404315031, | ||||
| "ma_report_group_id": "550e8400-e29b-41d4-a716-446655440123", | ||||
| "ma_report_result_conflict_task": "0", | ||||
| "ma_report_result_cross_traffic": 20, | ||||
| "ma_report_result_end_time": 1404315031, | ||||
| "ma_report_result_start_time": 1404315031, | ||||
| "ma_report_result_values": "result_values", | ||||
| "ma_report_task_column_labels": "\"start-time\", | ||||
| \"conflicting-tasks\", \"cross-traffic\", | ||||
| \"mean\", \"min\", \"max\"", | ||||
| "ma_role": "", | ||||
| "ma_task_cycle_id": "1", | ||||
| "ma_task_name": "reporting-daily", | ||||
| "ma_task_options": "", | ||||
| "ma_task_registry_entry": "urn:...", | ||||
| "ma_task_supress_default": "true" | ||||
| } | ||||
| ] | ||||
| } | } | |||
| 7. Security considerations | 7. Security considerations | |||
| Large Measurement Platforms may result in a security hazard if they | Large Measurement Platforms may result in a security hazard if they | |||
| are not properly secured. This is so because they encompass a large | are not properly secured. This is so because they encompass a large | |||
| number of MAs that can be managed and coordinated easily to generate | number of MAs that can be managed and coordinated easily to generate | |||
| traffic and they can potentially be used for generating DDoS attacks | traffic and they can potentially be used for generating DDoS attacks | |||
| or other forms of security threats. | or other forms of security threats. | |||
| skipping to change at page 21, line 17 ¶ | skipping to change at page 24, line 11 ¶ | |||
| memo we have considered using Group IDs to the MA in order to avoid | memo we have considered using Group IDs to the MA in order to avoid | |||
| the possibility for the platform to track each individual MA that is | the possibility for the platform to track each individual MA that is | |||
| feeding results. | feeding results. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| Registration of the well-known URL | Registration of the well-known URL | |||
| 9. Acknowledgments | 9. Acknowledgments | |||
| We would like to thank Vlad Victor Ungureanu (Jacobs University | ||||
| Bremen) for providing us external support. | ||||
| Marcelo Bagnulo, Trevor Burbridge, Sam Crawford, Juergen | ||||
| Schoenwaelder and Vaibhav Bajpai work in part on the Leone research | ||||
| project, which receives funding from the European Union Seventh | ||||
| Framework Programme [FP7/2007-2013] under grant agreement number | ||||
| 317647. | ||||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally | [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally | |||
| Unique IDentifier (UUID) URN Namespace", RFC 4122, July | Unique IDentifier (UUID) URN Namespace", RFC 4122, July | |||
| 2005. | 2005. | |||
| [RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data | [RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data | |||
| Interchange Format", RFC 7159, March 2014. | Interchange Format", RFC 7159, March 2014. | |||
| skipping to change at page 22, line 9 ¶ | skipping to change at page 25, line 9 ¶ | |||
| Transfer Protocol (HTTP/1.1): Caching", RFC 7234, June | Transfer Protocol (HTTP/1.1): Caching", RFC 7234, June | |||
| 2014. | 2014. | |||
| [RFC7235] Fielding, R. and J. Reschke, "Hypertext Transfer Protocol | [RFC7235] Fielding, R. and J. Reschke, "Hypertext Transfer Protocol | |||
| (HTTP/1.1): Authentication", RFC 7235, June 2014. | (HTTP/1.1): Authentication", RFC 7235, June 2014. | |||
| [I-D.ietf-lmap-information-model] | [I-D.ietf-lmap-information-model] | |||
| Burbridge, T., Eardley, P., Bagnulo, M., and J. | Burbridge, T., Eardley, P., Bagnulo, M., and J. | |||
| Schoenwaelder, "Information Model for Large-Scale | Schoenwaelder, "Information Model for Large-Scale | |||
| Measurement Platforms (LMAP)", draft-ietf-lmap- | Measurement Platforms (LMAP)", draft-ietf-lmap- | |||
| information-model-01 (work in progress), June 2014. | information-model-02 (work in progress), August 2014. | |||
| 10.2. Informative References | 10.2. Informative References | |||
| [I-D.bagnulo-ippm-new-registry-independent] | [I-D.bagnulo-ippm-new-registry-independent] | |||
| Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and | Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and | |||
| A. Morton, "A registry for commonly used metrics. | A. Morton, "A registry for commonly used metrics. | |||
| Independent registries", draft-bagnulo-ippm-new-registry- | Independent registries", draft-bagnulo-ippm-new-registry- | |||
| independent-01 (work in progress), July 2013. | independent-01 (work in progress), July 2013. | |||
| [I-D.ietf-lmap-framework] | [I-D.ietf-lmap-framework] | |||
| Eardley, P., Morton, A., Bagnulo, M., Burbridge, T., | 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 platforms (LMAP)", draft-ietf-lmap- | measurement platforms (LMAP)", draft-ietf-lmap- | |||
| framework-07 (work in progress), June 2014. | framework-08 (work in progress), August 2014. | |||
| Authors' Addresses | Authors' Addresses | |||
| Marcelo Bagnulo | Marcelo Bagnulo | |||
| Universidad Carlos III de Madrid | Universidad Carlos III de Madrid | |||
| Av. Universidad 30 | Av. Universidad 30 | |||
| Leganes, Madrid 28911 | Leganes, Madrid 28911 | |||
| SPAIN | SPAIN | |||
| Phone: 34 91 6249500 | Phone: 34 91 6249500 | |||
| End of changes. 38 change blocks. | ||||
| 210 lines changed or deleted | 353 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/ | ||||