Ask Your Question

How to enable STP?

asked 2014-11-07 06:13:58 -0700

pskhanapur gravatar image

updated 2014-11-08 15:58:08 -0700

Hi, I have created a custom topology in mininet and connected it with ODL controller. Topology has multiple paths between switches. Ping from hosts creates ARP packets being looped between switches. Everything hangs!

Controller does not seem to handle typologies with multiple path, arp packets keeps looping between switches. I have installed feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-core

Im looking for STP functionality in ODL. I looked up wiki: I have installed odl-l2switch-switch (in karaf). I also see that L2 loop remover is installed.

opendaylight-user@root> feature:list | grep l2 odl-integration-compatible-with-l2switch | 0.2.0-Helium | | odl-integration-0.2.0-Helium | odl-l2switch-all | 0.1.0-Helium | | l2switch-0.1.0-Helium | OpenDaylight :: L2Switch :: All odl-l2switch-switch | 0.1.0-Helium | x | l2switch-0.1.0-Helium | OpenDaylight :: L2Switch :: Switch odl-l2switch-switch-rest | 0.1.0-Helium | | l2switch-0.1.0-Helium | OpenDaylight :: L2Switch :: Switch odl-l2switch-switch-ui | 0.1.0-Helium | | l2switch-0.1.0-Helium | OpenDaylight :: L2Swit

Do I need to include something else? Any suggestions?


edit retag flag offensive close merge delete

2 answers

Sort by » oldest newest most voted

answered 2014-11-21 07:15:29 -0700

luissantos gravatar image

I'm in the same trouble. I also captured traffic. No STP packets found elsewhere! Feedback will be really appreciated!


edit flag offensive delete publish link more


I'm still waiting for an answer for my question. I have created new topology in the mininet which has multiple paths between switches. Ping generates ARP and since ARP are broadcasts they keep looping between switches. So I was wondering if I can eanble STP to solve this problem. But from what I understand is that we probably dont need STP in SDN network. Since controller has knowledge of network topology we really don't need to run STP. (Someone correct me if I'm wrong) There is a Loop Remover module within L2switch feature. My guess is... it handles functionality of STP. In the developers guide, if you search for STP, you will find TopologyLinkDataChangeHandler. I tried turning off/on several values related to that example: is-install-lldp-flow, is-install-dropall-flow, but I havent got it working. If someone knows something more, please share!

pskhanapur ( 2014-11-21 14:28:20 -0700 )edit

answered 2014-12-10 05:43:33 -0700

luissantos gravatar image

updated 2015-01-05 08:02:21 -0700

I'm not using Mininet. I'm using CORE instead. It also uses Network Namespaces for terminal emulation purposes. I'm using Open virtual switch 2.3.0, Ubuntu 14.04.1 LTS and kernel 3.13.0-36-generic. After a lots of experiments I finnaly find out the reason for getting traffic storms on looped topologies.

The secondary sympthom that alerts me: the network topology was allways not well discovered (as reported at the DLUX web interface: http://<odl-ip>:8181/dlux/index.html)</odl-ip>

The critical issue: LLDP packets were sent by OvS switches but never received at the other end of the links.

The root cause: The CORE emulator uses Linux bridges to implement point-to-point links.

Such bridges follow the 802.1D-2004 section 7.12.6, blocking some link-layer packets like STP and LLDP. The hard part is that I captured LLDP packets leaving the OvS interfaces which made me believe they were being delivered at the other end (i.e. at the other OvS switches). In fact they were intercepted and dropped on the way :-(

The solution I'm working in: recompile the Linux Bridge module with a redefined "#define BRGROUPFWDRESTRICTED 0x0007u" constant at "linux-3.13.0/net/bridge/br_private.h".

[2015-01-05] I already recompiled the kernel. The Linux "bridge" module were now bypassing all the link-local control traffic (including LLDPs). LLDP packets were now observed arriving at the neighbor switches (I remember you that this is the issue I was fighting with). As expected the topology discovery subsystem is now performing the right job, correctly depicting the connections between the virtual switches (I’m using OvS). I check this by inspecting the DLUX output with my browser. DLUX is now presenting the switch interconnections as they are in the topology under ODL control. However I must stress that a minor imperfection is still present: DLUX is presenting inexistent terminals, one per connected switch, owning the IP addresses of the switches. At this point I must clarify you that I’m using in-band management and maybe this is the reason behind such strange “vision”. However, several problems persist! When I "close" the topology loop (involving just three switches) my emulated network hangs with a traffic storm. I'm still do not know from where the problem come. I'm still observing irregular events. For instance, for every OF flowmod message sent by ODL, the OvS switch replied with the following error (even though flow became correctly installed): 2014-12-29T16:48:32.112Z|00157|pktbuf|WARN|attempt to reuse buffer 00000000 2014-12-29T16:48:32.112Z|00158|connmgr|INFO|ovs3<->tcp: sending OFPBRCBUFFEREMPTY error reply to OFPTFLOW_MOD message Such error triggers a second attempt to install every flow (and the same error). After googling a bit I found a plugfeast reporting common issues ([].

I'm using ODL (Helium-SR1.1) with a network topology powered by OvS (2.3.0). Does someone plugged ... (more)

edit flag offensive delete publish link more


That's a interesting finding. I would like to know if everything works fine with bridge module change you are trying out. I'm wondering, LLDP packets being dropped would make lot of things not work in the controller.

pskhanapur ( 2014-12-11 04:30:00 -0700 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

[hide preview]

Question Tools



Asked: 2014-11-07 06:13:58 -0700

Seen: 783 times

Last updated: Jan 05 '15