diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java index 1a41b9bb7a6c1b5a8850becf8629fd8a358aa278..f2f52cac5d5cf47f7d5894d2fb7b2d6b76dd11e3 100644 --- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java +++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java @@ -174,6 +174,7 @@ public class Controller implements IFloodlightProviderService, protected IThreadPoolService threadPool; // Configuration options + protected String openFlowHost = null; protected int openFlowPort = 6633; protected int workerThreads = 0; // The id for this controller node. Should be unique for each controller @@ -1704,7 +1705,10 @@ public class Controller implements IFloodlightProviderService, ChannelPipelineFactory pfact = new OpenflowPipelineFactory(this, null); bootstrap.setPipelineFactory(pfact); - InetSocketAddress sa = new InetSocketAddress(openFlowPort); + InetSocketAddress sa = + (openFlowHost == null) + ? new InetSocketAddress(openFlowPort) + : new InetSocketAddress(openFlowHost, openFlowPort); final ChannelGroup cg = new DefaultChannelGroup(); cg.add(bootstrap.bind(sa)); @@ -1745,6 +1749,11 @@ public class Controller implements IFloodlightProviderService, } public void setConfigParams(Map<String, String> configParams) { + String ofHost = configParams.get("openflowhost"); + if (ofHost != null) { + this.openFlowHost = ofHost; + log.debug("OpenFlow host set to {}", this.openFlowHost); + } String ofPort = configParams.get("openflowport"); if (ofPort != null) { this.openFlowPort = Integer.parseInt(ofPort);