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.
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.
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.
kytos/of_core.v0x04.messages.in.ofpt_packet_in
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
}
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.