Skip to content

kytos-ng/sdntrace

Repository files navigation

Tag License Build status Code coverage Code-quality score

amlight/sdntrace

Napp that traces OpenFlow paths in the data plane

Overview

sdntrace traces OpenFlow paths in the data plane. This NApp can used by either network operators to troubleshoot data plane entries or other NApps that might need to make sure that a data plane path is traceable.

Installing

To install this NApp, make sure to have the same venv activated as you have kytos installed on:

$ git clone https://github.com/kytos-ng/sdntrace.git
$ cd sdntrace
$ python3 -m pip install --editable .

To install the kytos environment, please follow our development environment setup.

Requirements

Modus operandi

The AmLight SDNTrace gets the "colored" flows from the AmLight Coloring Napp. These colors are used to create path trace probe messages to be sent via PacketOut.

Once one submits a request via REST, it will receive a Trace ID. This Trace ID is used by the napp to support parallel traces and to allow one to retrieve the result.

When the TraceManager receives the request, a Tracer thread is created, sending PacketOut and looking for PacketIn. If a PacketIn is not received in 1.5s, another PacketOut is sent. Three PacketOuts are sent before generating a TimeOut event. Once the timeout is detected, all steps of the data plane path trace are provided via REST.

This Napp works with OpenFlow 1.3. Queries and results are also available through WEB UI.

Events

Subscribed

  • kytos/of_core.v0x04.messages.in.ofpt_packet_in

Published

kytos/of_lldp.messages.out.ofpt_packet_out

buffer: message_out

Standard message out event with a PacketOut sending a specific packet

Content:

{ 'message': <object>, # instance of a python-openflow PacketOut message
  'destination': <object> # instance of kytos.core.switch.Connection class
}

References

This napp is based on the following ACM paper:

Agarwal, K., Rozner, E., Dixon, C., & Carter, J. (2014, August). SDN traceroute:
Tracing SDN forwarding without changing network behavior. In Proceedings of the third workshop on Hot topics in software defined networking (pp. 145-150). ACM.