blob: aefc2ca2d0c3f3ab5da98cd09389f01b142087a0 [file] [log] [blame]
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.