Switches and Controller

  • 0
  • 1
  • Question
  • Updated 4 years ago
  • Answered
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.
Photo of Chandrasekaran, Arun

Chandrasekaran, Arun, Alum

  • 342 Points 250 badge 2x thumb

Posted 4 years ago

  • 0
  • 1
Photo of Rob Udechukwu

Rob Udechukwu

  • 10 Points

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<Node> connectedSwitches = switchManager.getNodes();

for(Node s: connectedSwitches)

{

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

}

Photo of Chandrasekaran, Arun

Chandrasekaran, Arun, Alum

  • 342 Points 250 badge 2x thumb
Thanks Rob. And what are your thoughts about my first question?
Photo of Andrew Kinard

Andrew Kinard

  • 170 Points 100 badge 2x thumb
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.