'OpenFlow Discovery Protocol in ONOS Controller
This question is about how ONOS learns the link between switches in Data Layer.
Shown below is a quote referenced from one of the papers I read:
According to built-in forwarding rules in switches, switch S2 sends LLDP packet with OFTP_PACKET_IN message to controller. This packet includes the switch ID and entering port ID which the packet is received from. Because of this information, the controller can determine that an operational channel links switch (S1, Port1) and switch (S2, Port3), and the information about the link is stored in a database which holds information about the topology. This process is iteratively performed for each operational switch in the SDN network.
We can conclude that the information encapsulated under OFTP_Packet_IN contains the following information:
[sw_ID:S2 , entering_port_ID:Port3 and LLDP_Packet[S1, Port1]]
Based on the papers I read, ONOS Controller can learn the link between 2 switches by only analysing the OFTP_Packet_IN encapsulating LLDP Packet received from a switch.
Then I wanted to conclude the statement by actually examining the contents in OFTP_Packet_IN using wireshark and mininet. I created a custom topology with 2 switches connected to each other:
[S1, eth1]-------[eth3, S2]
This is the OFTP_Packet_IN captured under wireshark: Wireshark Capture. Please note that the field highlighted green has no relationship with S2.
We can see that the capture only display the LLDP_Packet. The Switch_ID of S2 and Entering_Port_ID of eth3 is not contained in the OFTP_Packet_IN. But somehow ONOS knows there is a link between the switches with intelligence of which port they are connnected.
How does ONOS know information about the link between S1 and S2 at eth1 and eth3 respectively?
Thanks in advance.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
