The problem might be triggered by broadcast packets.

When the controller receives a packet that has as destination address the bcast MAC address (ff:ff:ff:ff:ff:ff), an ARP packet for example, it will send the packet to the special outport OFPP_FLOOD. OFPP_FLOOD is translated at the switch to all ports other than the input port.

In your topology if End1 sends an ARP request packet then Openflow1 will send a copy to Openflow2 and Openflow3, both of which are going to send a copy to Openflow4. When Openflow4 receives a packet from Openflow2(3) then it will send a copy to End2 and to Openflow3(2) respectively. Openflow2(3) will give the packet back to
Openflow1 and the loop starts again.

The correct solution would be to implement a minimum spanning tree on the topology to disseminate broadcast packets. An easy way out, which I have used before, is to set the NO_FLOOD flag in some ports to break the loop. For example you can choose that Openflow1 will forward bcast packets only to Openflow2, and set the NO_FLOOD flag on the port that connects Openflow1 to Openflow3. This flag will basically
exclude this port when the action specifies as outport the OFPP_FLOOD port.

Note that if you are using a learning switch module then the loops will also cause multiple copies of the same packet to be delivered to the destination even for unicast packets. This happens because until the controller learns the mapping between mac addresses and ports, it will flood packets.

Hope this helps,
Niky


Kyriakos Zarifis wrote:
Are you running 'discovery'? If so, the events you see could be the LLDP packets sent by that component.

On Tue, Nov 16, 2010 at 5:55 PM, Rohit Manohar <rdman...@ncsu.edu <mailto:rdman...@ncsu.edu>> wrote:

    I am trying to build the following topology in Nox:
Openflow2 -------- -------- ---------- ---------
    End1 ----------
Openflow1 Openflow4 ------------ End2 --------- --------- --------- ---------
                                                         Openflow3

    When I register Openflow4 with NOX, some sort of traffic loop is
    getting created. NOX is continuously registering packet-in events
    even when I haven't set up any flows.
    Are cycles not supported by NOX? If yes, do I need to indicate it
    in the .conf file?

    Regards,
-- Rohit Manohar
    Graduate Student
    North Carolina State University
    Raleigh, US.


    _______________________________________________
    nox-dev mailing list
    nox-dev@noxrepo.org <mailto:nox-dev@noxrepo.org>
    http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org


------------------------------------------------------------------------

_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org


_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org

Reply via email to