Switches and Controller

  • 24 March 2015
  • 3 replies
  • 207 views

Don't know if this question has already been asked but I am curious about how real world deployments would be. Would all the switches have a direct connection to the controller? Or would controllers always be deployed in a distributed fashion with protocols for ensuring consistency between the controllers?

Piggybacking off the same question, is there any way I could identify the switches themselves with Java APIs and maybe use an abstract identifier to recognize each one of them? This is just to get an idea and does not directly relate to my implementation.

3 replies

Each switch has a datapath ID which could be used as an identifier. ISwitchManager contains the function to retrieve the controller's list of known OpenFlow switches. The datapath ID can be verified on the switch using "show openflow"

Set connectedSwitches = switchManager.getNodes();

for(Node s: connectedSwitches)

{

System.out.println("Switch "+s);

}
Each switch has a datapath ID which could be used as an identifier. ISwitchManager contains the function to retrieve the controller's list of known OpenFlow switches. The datapath ID can be verified on the switch using "show openflow"

Set connectedSwitches = switchManager.getNodes();

for(Node s: connectedSwitches)

{

System.out.println("Switch "+s);

}


Thanks Rob. And what are your thoughts about my first question?
The ODL Clustering documentation describes how to give each controller a controller ID which distinguishes it from other controllers in the cluster. If you want a controller to see a far away switch, you could create a tunnel and allow OpenFlow discovery through the tunnel.

Reply