The page outlines instructions to achieve INT through ONOS and P4.
For the details of the demonstration, please see followings:
- Ubuntu 18.04 with kernel version >= v4.14
- Python 2.7, python-pip, mininet, InfluxDB, Grafana
Provision emulator VM
- Install pre-built bcc package from https://github.com/iovisor/bcc
Clone BPFCollector repo. (See BPFCollector for details.)
Enable JIT for eBPF to make BPFCollector run faster
Install Cython to run the InfluxDB Client with better performance
Add virtual interfaces for collector
Modify Mininet topology script
- Modify the file $ONOS_ROOT/tools/test/topos/bmv2-demo.py
Look for this line:
Change the line as follows:
Look for this line:
Below this line, add the followings:
How to run
Launch the collector
Activate In-band telemetry control application
You may see the following WARN log right after activating the INT control application.
It will be disappeared when you add collector configuration.
Please note that the INT monitoring works only after the collector configuration is done.
Add mirroring configuration on the switch for telemetry report
- Add collector configuration
- Connect to ONOS web interface (http://localhost:8181/onos/ui/)
- Open "In-band Telemetry Control" in the menu
- Type 127.0.0.1 to "IPv4 address" field and 54321 to "port" field in "INT Collector Configuration" section
- Clink "Apply Configuration" button
- Add IntIntent to specify traffic to monitor
- Open "In-band Telemetry Control" in the ONOS GUI menu
- Fill in "Source IP address", "Destination IP address", "Source port", "Destination port" and "Protocol" field
- Source and Destination IP address fields accepts IP address with mask (e.g., 10.0.0.0/24)
- Source and Destination port number requires exact port number
- Protocol supports either TCP or UDP
- Any field remained empty, except Protocol field, means wildcard.
- Choose metadata to collect
- Switch Id and Egress timestamp must be chosen so as to make the collector to work properly.
- "Egress Port Tx Utilization" are not supported in current version of BMv2 software switch yet.
- Click "Apply Watchlist Rule" button below the metadata to deploy INT Intent.
- Created INT Intent will be appeared in the table below.
Generate some traffic to monitor
- Connect Grafana to see the collected data at http://localhost:3000