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

Reply via email to