Floodlight OpenFlow Controller Screencast with 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 →
Quick how-to on installing the Floodlight OpenFlow controller and a slick http UI fronted someone put up on GutHub. Floodlight is probably the easiest of all controllers to setup. It is built in Java and based on the Beacon controller project. It is a great way to get your feet wet in SDN. I will work on a post showing some of the capabilities in the next few days.
The switches in the post are a couple HP3500yl running the OpenFlow v1.0 agent. I think the TCAM on that box allows for maybe a 5-tuple in HW. None of the HP switches I am aware of support any layer 2 header rewrites due to TCAM size limitations. Just not enough rows, but maybe the bigger 5400 but I havent dug in. That limits manipulation of the ethertype, L2 src address and L2 dst address. Thanks to the gentleman who shared his code on GitHub with the nifty web UI. It was needed. It looks very much like the Beacon web UI.
Figure 1. Here is the topology.
Kick the tires on a very simple controller install and see what you think. No C compiler errors in this project which can be nice depending on how much you like or dislike Java 🙂
System Preperation
Install dependencies, apt-get for UB and yum for RH:
$apt-get install build-essential default-jdk ant python-dev eclipse git
Start Floodlight
Clone the Github project and build the jar and start the controller:
1 2 3 4 5 6 |
$git clone git://github.com/floodlight/floodlight.git $cd floodlight $ant $java -jar target/floodlight.jar |
Once the service is running you can go to the web GUI and view topologies, flows etc or use curl statements to add remove datapaths.
View the GUI in a web browser http://localhost:8080/ui/index.html
Attach the HP Switch to the OpenFlow Controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
vlan 1 openflow controller tcp:192.168.1.171 enable Here is what the HP config looks like. #Non-OpenFlow Vlan. Out of Band for Control Comm. vlan 1 name "Native Path to Controller" ip address 192.168.1.211 255.255.255.0 tagged 1-3,5 #OpenFlow enabled Vlan vlan 3 name "OF Controlled Vlan" untagged 48 ip address 10.1.1.3 255.255.255.0 tagged 2-3 exit #Enable OF on the Vlan. Needs to enabled per Vlan. vlan 3 enable controller "tcp:192.168.1.171:6633" exit |
Later this week I will breakdown some of the datapaths and flows and we can see what they look like in action.
Hello Brent
We just received about 4 HP Procurve 2610-24 switches….Are these switches Openflow enabled by default or do we have to upgrade the firmware to enable Openflow in the switch.
Can you please let me know as to How would I go about configuring these switches to use it with the Floodlight controller and build a small openflow enabled network ?
Thank you,
Hello Brent,
I hoping you might be able to shed some light on my issue. I originally send the email listed below to the floodlight dev groups without a response. What I ultimately want to do is for two different VLANS on the same switch to communicate while still having floodlight enabled. I have “ip-routing” enabled on the switch and tested that hosts on either VLAN can communicate with each other. However, when openflow is enabled the inter-communication between both VLANs is lost. I can still communicate with hosts on the same OF VLAN but that’s it. I’m sincerely opening you can point me in the right direction.
Original Posting to mail-group:
————————————————-
Hello,
As my username suggest I’m fairly new to open-flow let alone floodlight. First of all I’m just trying to get setup correctly in order to run some tests. Let me first explain the configuration of the HP switch. I currently have it configured for two VLANS: 1) Management or Controller VLAN20 — 2) OPENFLOW VLAN10
e.i.
vlan 10
name “OPENFLOW”
untagged 25-48
ip address 172.16.10.1 255.255.255.0
exit
vlan 20
name “Controller”
untagged 3-5
ip address 192.168.10.1 255.255.255.0
exit
I also also enabled “ip-routing” on the switch so hosts on either VLAN will be able to talk to each other. I verified that hosts on either VLAN can indeed ping each other. Now when it comes to the Openflow commands to enable connectivity to the controller I have the following:
openflow
vlan 10
enable
controller “tcp:192.168.10.2:6633” listener “ptcp:6633”
exit
Once I enable openflow I can still ping hosts on the same openflow VLAN (10 — 172.16.10.0/24). However, I cannot ping hosts from VLAN 10 to hosts in VLAN 20 or vice versa. I’m assuming this must be possible with floodlight by enabling some feature or adding the correct flows
Hello Brent,
May I ask you how did you physically connect/config two switches, and so FloodLight controller can see/control both of them?
Thank you.
Humphrey
Hi Humphrey, apologies for missing your comment. Check the new post and see if that makes it a bit clearer. Let me know if you need a hand and I promise to get back a bit sooner :-/ doh!
Respect,
-Brent
Hi Brent,
I use your postings to try and configure my SDN infrastructure at work. Unfortunately, we are working with a later revision of the HP firmware (k15_10_0003.swi)
– Are you finding problems with this version of software?
– Any chance you will show how to provision a flow or alter minor parameters with your floodlight controller? — for those of us that are not great Java coders or well versed in floodlight.
Thanks
Hi Don! I did an updated post with latest firmware that can be found here: http://networkstatic.net/configure-an-hp-openflow-switch-for-floodlight/
Let me know if you have issues and I will give you a hand.
Respect,
-Brent
Hi Brent and thanks for the post.
I just configured per your post, but now I am getting some weird error message once I enable my instance….
It shows that the connection is attempting but states:
1) New Switch connection from 1.0.40.1331.5:63856
2) Hashed wheel timer #1] Info n.f.core.internal.Controller – Disconnecting switch null: failed to complete handshake.
3) Hashed wheel timer #1 INFO n.f.core.internal.COntroller- Disconnected switch null
We saw the same problem when we tested Extreme switch. How to resolve it?
Thank you so much.
[Hashed wheel timer #1] ERROR n.f.core.internal.Controller – Disconnecting switch null: failed to complete handshake
I am a little bit confused on how to actually connect the openvswitch to flood light. I had floodlight running and I followed your steps to get the openvswitch kind of running. But when it says attach openvswitch to floodlight the link just goes how to connect an HP switch to floodlight.
Hey there! Do you use Twitter? I’d like to follow you if that would
be ok. I’m absolutely enjoying your blog and look forward to new posts.
When someone writes an piece of writing he/she retains the thought of a user in his/her brain that how a user can understand it.
Thus that’s why this piece of writing is perfect.
Thanks!