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 | } |
Yi Tseng | d16c4db | 2021-09-29 03:45:05 -0700 | [diff] [blame] | 65 | |
| 66 | |
| 67 | Intel DeepInsight integration |
| 68 | ----------------------------- |
| 69 | |
| 70 | .. note:: |
| 71 | In this chapter, we assume that you already deploy the |
| 72 | `Intel DeepInsight Network Analytics Software <https://www.intel.com/content/www/us/en/products/network-io/programmable-ethernet-switch/network-analytics/deep-insight.html>`_ |
| 73 | to your setup with a valid license. |
| 74 | |
| 75 | Please contact Intel to get the software package and license of the DeepInsight Network Analytics Software. |
| 76 | |
| 77 | Configure the DeepInsight topology |
| 78 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 79 | |
| 80 | We use `SD-Fabric utiliity <https://github.com/opennetworkinglab/sdfabric-utils>`_ |
| 81 | to convert the ONOS topology and configurations to DeepInsight |
| 82 | topology configuration and upload it. |
| 83 | |
| 84 | To install the DeepInsight utility, use the following command: |
| 85 | |
| 86 | .. code-block:: bash |
| 87 | |
| 88 | pip3 install git+ssh://git@github.com/opennetworkinglab/sdfabric-utils.git#subdirectory=deep-insight |
| 89 | |
| 90 | use the following command to generate the topology configuration file: |
| 91 | |
| 92 | .. code-block:: bash |
| 93 | |
| 94 | di gen-topology [-s ONOS_ADDRESS] [-u ONOS_USER] [-p ONOS_PASSWORD] [-o TOPOLOGY-CONFIG-JSON] |
| 95 | |
| 96 | For example, we installs ONOS to ``192.168.100.1:8181`` |
| 97 | |
| 98 | .. code-block:: bash |
| 99 | |
| 100 | di gen-topology -s 192.168.100.1:8181 -o /tmp/topology.json |
| 101 | |
| 102 | .. tip:: |
| 103 | |
| 104 | Use ``di -h`` to get more detail about commands and parameters |
| 105 | |
| 106 | To upload the topology configuration file, go to DeepInsight web UI. |
| 107 | In ``settings`` page there is a ``Topology Settings`` section. |
| 108 | |
| 109 | Choose ``Upload topology.json`` and use ``Browse...`` button to upload it. |