Charles Chan | caebcf3 | 2021-09-20 22:17:52 -0700 | [diff] [blame] | 1 | In-band Network Telemetry (INT) |
| 2 | =============================== |
Yi Tseng | 1aa9da7 | 2021-09-28 02:33:14 -0700 | [diff] [blame] | 3 | |
| 4 | ONOS network configuration for INT application |
| 5 | ---------------------------------------------- |
| 6 | |
| 7 | .. tip:: |
| 8 | Learn more about `ONOS network configuration service |
| 9 | <https://wiki.onosproject.org/display/ONOS/The+Network+Configuration+Service>`_. |
| 10 | |
| 11 | Here's a list of fields that you can configure: |
| 12 | |
| 13 | * ``collectorIp``: The IP address of the INT collector, Must be an IP of a host that attached to the fabric. *Required* |
| 14 | |
| 15 | * ``collectorPort``: The UDP port that the INT collector will listen on. *Required* |
| 16 | |
| 17 | * ``minFlowHopLatencyChangeNs``: The minimum latency change to bypass the flow report |
| 18 | filter in nanosecond. *Optional, default is 0.* |
| 19 | |
| 20 | We use this value to instruct an INT-capable device to produce reports only for packets |
| 21 | which hop latency changed by at least ``minFlowHopLatencyChangeNs`` nanosecond from |
| 22 | the previously reported value for the same flow (5-tuple). |
| 23 | |
| 24 | For example: produce a report only if ``(currentHopLatency - previousHopLatency) > minFlowHopLatencyChangeNs``. |
| 25 | Some pipeline implementations might support only specific intervals, e.g., powers of 2. |
| 26 | |
| 27 | * ``watchSubnets``: List of subnets we want to watch. *Optional, default is an empty list.* |
| 28 | |
| 29 | * Devices will watch packets with source IP or destination IP matched in this list. |
| 30 | * To watch every packet, use ``0.0.0.0/0``. |
| 31 | * Note that the pipeline won't watch the INT report traffic. |
| 32 | |
| 33 | * ``queueReportLatencyThresholds``: A map that specified thresholds to trigger queue |
| 34 | report or reset the queue report quota. *Optional, default is an empty map.* |
| 35 | |
| 36 | The key of this map is the queue ID. The devices will only report queues in this map. |
| 37 | |
| 38 | * ``triggerNs``: The latency threshold to trigger queue report in nanosecond. **Required** |
| 39 | * ``resetNs``: The latency threshold to reset queue report quota in nanosecond. **Optional** |
| 40 | |
| 41 | * When absent, the device will reset the queue report quota when latency is half of ``triggerNs``. |
| 42 | |
| 43 | Below is an example of ONOS network configuration for INT application: |
| 44 | |
| 45 | .. code-block:: json |
| 46 | |
| 47 | { |
| 48 | "apps": { |
| 49 | "org.stratumproject.fabric.tna.inbandtelemetry": { |
| 50 | "report": { |
| 51 | "collectorIp": "10.32.11.2", |
| 52 | "collectorPort": 32766, |
| 53 | "minFlowHopLatencyChangeNs": 512, |
| 54 | "watchSubnets": [ |
| 55 | "10.32.11.0/24" |
| 56 | ], |
| 57 | "queueReportLatencyThresholds": { |
| 58 | "0": {"triggerNs": 2000, "resetNs": 500}, |
| 59 | "2": {"triggerNs": 1000, "resetNs": 400} |
| 60 | } |
| 61 | } |
| 62 | } |
| 63 | } |
| 64 | } |