Build an OpenFlow switch using the Raspberry Pi


Published on

The Raspberry Pi is a low cost computer and you can use it to build your own OpenFlow switch for around $70 ! Learn about what you can and can't do with OpenFlow through experimentation.

This share explains how to make the RPi useful since it is not useful as a switch with just 1 Ethernet port, what software to install (Erlang + LINC) and finally how to make your new switch useful since an OpenFlow switch is pretty useless without an OpenFlow controller.

Published in: Technology
1 Comment
  • Hello Steve,
    This looks interesting. I've been working with open flow for 2 years now. I've been working with RYU recently and I am interested in deploying openflow router for a home network. That seems similar to your openflow capable wifi access point.

    Please let me know if we can collaborate or maybe I can learn something from you.

    Kiran Vemuri
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Build an OpenFlow switch using the Raspberry Pi

  1. 1. Steve Roberts Turning the Raspberry Pi into an OpenFlow Switch + =
  2. 2. Steve Roberts What is OpenFlow?  OpenFlow is a new concept in data networking  It's a way to implement Software Defined Networks (SDN)  It's a standard developed by the ONF  Google invented in and they use it  It's likely to be the future of IP networking
  3. 3. Steve Roberts Why is it new?  OpenFlow separates control plane from data plane  What does that mean?  The decision how packets are routed is handled separately from actually routing them  The decision how packets are routed can now be programmed
  4. 4. Steve Roberts So what?  Telecom networks separated control from data 20+ years ago  Separation allowed new services to be created like: freephone, virtualised switchboards, mobile phones...  OpenFlow will enable new services to be created in the data world  It will lower the price point for routing much like PC architecture did for computing  It will simplify networks
  5. 5. Steve Roberts Why OpenFlow on RPi?  OpenFlow is new, so experimentation is the best way to learn about it  Raspberry Pi is a cheap computer (~ $40)  Build your own OpenFlow switch or OpenFlow network so you can learn what OpenFlow can and can't do.
  6. 6. Steve Roberts The Raspberry Pi  Cheap (~ $40)  Runs Linux  1 Ethernet port  USB ports
  7. 7. Steve Roberts Switches and Routers  Ethernet switches and IP routers have more than 1 Ethernet port  To be a switch or router you need more than 1 port  RPi only has 1 Ethernet port  Solution: Use USB to add more ports
  8. 8. Steve Roberts Expanded RPi Rpi $40 USB to Ethernet adaptors $5 USB to WiFi adaptors $12 Total cost: $70 Spec: 3x Ethernet 1x WiFi
  9. 9. Steve Roberts Software  OpenFlow is attracting lots of Open Source attention with lots of high quality free software available.  My switch uses LINC from FlowForwarding  Why use LINC?  Free  Supports latest standards  I've been involved with it
  10. 10. Steve Roberts LINC  Runs on Erlang  Easy to get Erlang running on Raspberry Pi  Download LINC from  Supports latest OpenFlow protocol (1.3)  Supports OpenFlow config protocol (OFC1.1)
  11. 11. Steve Roberts Typical OpenFlow Architecture OpenFlow Switch OpenFlow Controller Business Logic (Controller or controllers) (Applications eg Firewall) OpenFlow Switch OpenFlow Controller This is what the Raspberry Pi is Doing – it's a switch
  12. 12. Steve Roberts Now what?  An OpenFlow switch on it's own is useless  It does nothing without a controller  Possible to run controller software on the same Raspberry Pi or somewhere else in the network  Lots of free OpenFlow controller software out there.
  13. 13. Steve Roberts OpenFlow Controllers  Recommend to use the following with LINC  Ryu (  Trema (  Why?  These support the latest OF1.3 protocol.  Most other controllers are not as current  Start with Ryu when using LINC. I haven't tried Trema yet but it should work
  14. 14. Steve Roberts What Next?  You can see more detail on how to build an OpenFlow switch on my blog  I'm planning to write the controller for a WiFi access point supporting user authentication and user based routing  Port LINC to a RoutoBox  Feel free to contact me