Hi all,
I have been experiencing unexpected loss of LLDP packets when running discovery.py in POX, for different tree topologies in Mininet. The loss only starts to occur for a network size of more than ~20 switches, and seems to happen between a pair of switches. There is no other traffic on the network, and no other application running in POX. Below are some more details. I have made a tree topology with depth 5 and fanout 2 which means that we have 31 switches and 32 host. As I understand, in discovery.py the controller sends packet_out messages to all switches, instructing them to send a LLDP packet via each of its ports. When an LLDP packet is received by a switch at the other end of the link, the switch sends a packet_in message to the controller, and the controller can detect a link between these two switches/ports. Based on this, the controller should receive 2 packet_in messages for each link in the network, one for each direction. In my experiments, this works fine for small networks of < 20 switches. However, for larger networks, I’m starting to see a lower than expected number of packet_in messages received at the controller. For example in our example tree topology, the controller should receive 60 packet_in messages during a single topology discovery round, but consistently only gets 55-58. I’ve used wireshark to investigate where the packet loss occurs, and it looks like some LLDP packets are lost in transit between switches. An example is shown below. The first example shows a case without packet loss, i.e. we see the packet_out message, the corresponding LLDP packet at the sender side and at the receiver side, and the corresponding packet_in message. The case with both packet_out and In: OFP+LLDP 133 Packet Out (CSM) (67B) => Chassis Id = dpid:19 Port Id = 1 TTL = 120 LLDP 43 Chassis Id = dpid:19 Port Id = 2 TTL = 120 (sender side) LLDP 43 Chassis Id = dpid:19 Port Id = 2 TTL = 120 (reciever side) OFP+LLDP 127 Packet In (AM) (61B) => Chassis Id = dpid:19 Port Id = 2 TTL = 120 The following example shows the same thing, with the difference that the LLDP packet is sent but not received: The case that packet_In lost: OFP+LLDP 133 Packet Out (CSM) (67B) => Chassis Id = dpid:19 Port Id = 1 TTL = 120 LLDP 43 Chassis Id = dpid:19 Port Id = 2 TTL = 120 (sender side) As mentioned, there is no other traffic, and the load on each link is only 2 LLDP packets, one in each direction, and links are configured to be reliable, so as far as I understand, there should be no packet loss. I’m using the following software: Mininet version 2.0 POX version betta My questions is: Has anybody experienced similar problems, or does anybody have an idea of what the problem could be? Any help would be greatly appreciated. Best regards, Farzaneh