| In-band Network Telemetry (INT) |
| =============================== |
| |
| ONOS network configuration for INT application |
| ---------------------------------------------- |
| |
| .. tip:: |
| Learn more about `ONOS network configuration service |
| <https://wiki.onosproject.org/display/ONOS/The+Network+Configuration+Service>`_. |
| |
| Here's a list of fields that you can configure: |
| |
| * ``collectorIp``: The IP address of the INT collector, Must be an IP of a host that attached to the fabric. *Required* |
| |
| * ``collectorPort``: The UDP port that the INT collector will listen on. *Required* |
| |
| * ``minFlowHopLatencyChangeNs``: The minimum latency change to bypass the flow report |
| filter in nanosecond. *Optional, default is 0.* |
| |
| We use this value to instruct an INT-capable device to produce reports only for packets |
| which hop latency changed by at least ``minFlowHopLatencyChangeNs`` nanosecond from |
| the previously reported value for the same flow (5-tuple). |
| |
| For example: produce a report only if ``(currentHopLatency - previousHopLatency) > minFlowHopLatencyChangeNs``. |
| Some pipeline implementations might support only specific intervals, e.g., powers of 2. |
| |
| * ``watchSubnets``: List of subnets we want to watch. *Optional, default is an empty list.* |
| |
| * Devices will watch packets with source IP or destination IP matched in this list. |
| * To watch every packet, use ``0.0.0.0/0``. |
| * Note that the pipeline won't watch the INT report traffic. |
| |
| * ``queueReportLatencyThresholds``: A map that specified thresholds to trigger queue |
| report or reset the queue report quota. *Optional, default is an empty map.* |
| |
| The key of this map is the queue ID. The devices will only report queues in this map. |
| |
| * ``triggerNs``: The latency threshold to trigger queue report in nanosecond. **Required** |
| * ``resetNs``: The latency threshold to reset queue report quota in nanosecond. **Optional** |
| |
| * When absent, the device will reset the queue report quota when latency is half of ``triggerNs``. |
| |
| Below is an example of ONOS network configuration for INT application: |
| |
| .. code-block:: json |
| |
| { |
| "apps": { |
| "org.stratumproject.fabric.tna.inbandtelemetry": { |
| "report": { |
| "collectorIp": "10.32.11.2", |
| "collectorPort": 32766, |
| "minFlowHopLatencyChangeNs": 512, |
| "watchSubnets": [ |
| "10.32.11.0/24" |
| ], |
| "queueReportLatencyThresholds": { |
| "0": {"triggerNs": 2000, "resetNs": 500}, |
| "2": {"triggerNs": 1000, "resetNs": 400} |
| } |
| } |
| } |
| } |
| } |
| |
| |
| Intel DeepInsight integration |
| ----------------------------- |
| |
| .. note:: |
| In this chapter, we assume that you already deploy the |
| `Intel DeepInsight Network Analytics Software <https://www.intel.com/content/www/us/en/products/network-io/programmable-ethernet-switch/network-analytics/deep-insight.html>`_ |
| to your setup with a valid license. |
| |
| Please contact Intel to get the software package and license of the DeepInsight Network Analytics Software. |
| |
| Configure the DeepInsight topology |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| We use `SD-Fabric utiliity <https://github.com/opennetworkinglab/sdfabric-utils>`_ |
| to convert the ONOS topology and configurations to DeepInsight |
| topology configuration and upload it. |
| |
| To install the DeepInsight utility, use the following command: |
| |
| .. code-block:: bash |
| |
| pip3 install git+ssh://git@github.com/opennetworkinglab/sdfabric-utils.git#subdirectory=deep-insight |
| |
| use the following command to generate the topology configuration file: |
| |
| .. code-block:: bash |
| |
| di gen-topology [-s ONOS_ADDRESS] [-u ONOS_USER] [-p ONOS_PASSWORD] [-o TOPOLOGY-CONFIG-JSON] |
| |
| For example, we installs ONOS to ``192.168.100.1:8181`` |
| |
| .. code-block:: bash |
| |
| di gen-topology -s 192.168.100.1:8181 -o /tmp/topology.json |
| |
| .. tip:: |
| |
| Use ``di -h`` to get more detail about commands and parameters |
| |
| To upload the topology configuration file, go to DeepInsight web UI. |
| In ``settings`` page there is a ``Topology Settings`` section. |
| |
| Choose ``Upload topology.json`` and use ``Browse...`` button to upload it. |