Learning Networking with OpenFlow, Pox, and Mininet
Below is my modified copy of the Pox tutorial module that adds the L2 learning switch functionality. I wrote it while following the OpenFlow tutorial for Pox as well as the Open Networking Lab from Stanford. I also put together a Vagrant configuration box to get started quickly.
I’m sure it has some bugs - possibly around handling multicast packets, but it was really cool to be able to create a switch in software and control the flow of packets on the network. If you are just starting to learn about networking, I think that using OpenFlow and Pox to do hands-on learning beats just learning from a textbook.