Configuring an OpenFlow POX SDN Controller and HP Switches

Configuring an OpenFlow POX SDN Controller and HP Switches

Unicorn Rainbow

Configuring an OpenFlow POX SDN Controller and HP Switches

There is an updated post with the newest HP OpenFlow firmware that can be found at: Configure an HP OpenFlow Switch for Floodlight →

Configuring an OpenFlow POX SDN Controller and HP Switches: HP has been supporting OpenFlow v1.0 with general availability longer than anyone in the industry. While there are limitations, just as most vendors will have as we start exploring exposing and/or decoupling control planes. Installing the SDN / OpenFlow controller to attach to the HP switch is very simple using open source controllers like POX and FloodLight. Specific limitations revolve around attempting to modify multiple headers in the OFAction function. This is likely a TCAM width limitation.

POX is a Python based OpenFlow Controller developed by Murphy McCauley at UC Berkeley. POX is great for fast development proofing, along with being platform independent by virtue of being Python based. Mre information can be found here. I highly recommend it over NOX for learning and prototyping since Python is a more abstracted language unless you need to manage hardware resources for performance. Also the development seems to be more focused on POX. Murphy has a nice set of modules to load different features. He has some new ones in the pipe that will help with experimentation for people to get more comfortable with SDN. I really like it for terrible programmers like myself to have an interpreted option to tweak or add modules to.

Here is the algorithm for each new flow that POX follows using the L2 learning python module. This will have your switch operate similarly to your L2 forwarding switch today. Notice step 2. typically an LLDP will trigger a OFPT_PACKET_IN event which would punt the packet to the controller thus ignore if transparent.

packet-in events
  1. Use source address and port to update address/port table.
  2. Is destination address a Bridge Filtered address, or is Ethertpe LLDP? * This step is ignored if transparent = True * Yes: Drop packet to avoid forwarding link-local traffic (LLDP, 802.1x) DONE
  3. Is destination multicast? if Yes:Flood the packet DONE
  4. Port for destination address in our address/port table? No: Flood the packet DONE
  5. Is output port the same as input port? Yes: Drop packet and similar ones for a while
  6. Install flow table entry in the switch so that this
  7. flow goes out the appopriate port
  8. Send buffered packet out appropriate port

OpenFlow Islands

Figure 1. The Layer2 access edge can function in this manner.

OpenFlow Islands

Figure 2. The traffic flow between Vlans/Networks/bcast domains will punt to traditional routers/L3 switches to find a default gateway using an SDN switch with L2 learning. To begin integrating your L3 gateways refer to OpenFlow normal functionality. OFP_Normal

Install POX OpenFlow Controller

Configure the HP OpenFlow Switch

There is a problem with the values in the OFPT_HELLO version being sent from the HP firmware and does not send an explanation in the OFPHFC_COMPATIBLE optional ASCII explanation but it still negotiates and works. I have not seen a new firmware release from HP since February for the 3500, humph :/

About the Author

Brent SalisburyBrent has worked in both the Enterprise and vendor sides. In 2014 Brent left RedHat to be a co-founder of, a startup with a focus on reliable, scalable and performant Docker networking. In 2015, Docker Inc. acquired Socketplane. Now working at Docker, he is part of an engineering team that is building community and working to make sure the users experience of Docker networking is as satisfying as the rest of the amazing project that is fundamentally changing the infrastructure market as fast as anything the industry has experienced since the micro processor.View all posts by Brent Salisbury →

  1. RameshRamesh12-14-2013

    Sir i am using pox controller along with openvswitch and i am using mininet to make a virtual sdn environment i wanted to know if there is any GUI tool for openvswitch and/or pox other than poxdesk controller so that it will be easy for me to visualize my packets ,tables easily with their statistics

    • Brent SalisburyBrent Salisbury12-25-2013

      Hi Ramesh, I have not paid much attention lately to anything other then ODL. I think I saw some code commits last week mentioning statistics in the web UI.