[SDFAB-589] Add INT configuration guide
Change-Id: I948af0b815e792f4db9b7e587f5f6f1b82bc8376
diff --git a/.gitignore b/.gitignore
index 52e491f..bbdbe68 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
.vscode
.env
.idea
+.DS_Store
diff --git a/advanced/int.rst b/advanced/int.rst
index 6f7cb02..0816792 100644
--- a/advanced/int.rst
+++ b/advanced/int.rst
@@ -1,2 +1,64 @@
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}
+ }
+ }
+ }
+ }
+ }
diff --git a/dict.txt b/dict.txt
index 7af9b5a..c466f85 100644
--- a/dict.txt
+++ b/dict.txt
@@ -21,6 +21,8 @@
pipeconf
reStructuredText
routable
+downlink
+netcfg
subnets
topologies
uplink