Module A: Run your first experiment (a.k.a. Implement a Learning Switch)

In this first module of the tutorial you will quickly learn how to design and execute a Lab exercise on a GENI testbed by using LabWiki.


The goal of this assignment is to implement the learning switch capability that is used by Ethernet switches by using a software-based OpenFlow switch. In the topology shown in the figure, this software switch is to be implemented in node “switch”. All the other nodes represent regular hosts. To realize this implementation of a learning switch, a Trema based Openflow controller written in Ruby has to be designed and implemented. The correct functionality of the learning switch can be verified by creating an experiment script in which a node A pings nodes B, C, and D in LabWiki.


In the topology shown in the figure, the switch node will act as the learning switch, which connect nodes A-D with each other. Whenever any of these nodes ping each other for the first time, the switch does not know the destination address of the node. At this point, the switch node floods the packet to all the nodes it is connected to. When it receives a reply to the flood, this information will be used to populate its switching table. After the population of the switching table, whenever a node wants to ping any other node, the switch node will fetch the information from the table. For this purpose, a script called "fdb.rb" is pre-loaded in the switch node. The script offers rudimentary database functionality that is used to maintain the switching table

To learn more about learning-switches, check out this link:

To learn more about the Trema OpenFlow controller, check out this link:

Tutorial Instructions

  • Part II: Execute
    • 2. Configure and Initialize services
    • 3. Run your experiment
    • Appendix: Hints and Explanations

Back: LabWiki Tutorial

Last modified 7 years ago Last modified on 05/24/15 19:20:33

Attachments (1)

Download all attachments as: .zip