diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
index 7246518dbf60808a5920d295b630f60a19f9cfb3..f1821e5b66978c3c9a219ec6d6e335b4b1bb498e 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
@@ -221,7 +221,7 @@ public class Controller implements IFloodlightProviderService,
     protected static final String CONTROLLER_INTERFACE_DISCOVERED_IP = "discovered_ip";
 
     // Perf. related configuration
-    protected static final int SEND_BUFFER_SIZE = 4 * 1024 * 1024;
+    protected int sendBufferSize = 4 * 1024 * 1024;
     public static final int BATCH_MAX_SIZE = 100;
     protected static final boolean ALWAYS_DECODE_ETH = true;
 
@@ -1721,7 +1721,7 @@ public class Controller implements IFloodlightProviderService,
             bootstrap.setOption("reuseAddr", true);
             bootstrap.setOption("child.keepAlive", true);
             bootstrap.setOption("child.tcpNoDelay", true);
-            bootstrap.setOption("child.sendBufferSize", Controller.SEND_BUFFER_SIZE);
+            bootstrap.setOption("child.sendBufferSize", sendBufferSize);
 
             ChannelPipelineFactory pfact =
                     new OpenflowPipelineFactory(this, null);
@@ -1777,7 +1777,11 @@ public class Controller implements IFloodlightProviderService,
             this.workerThreads = Integer.parseInt(threads);
         }
         log.debug("Number of worker threads set to {}", this.workerThreads);
-
+        String sendBufferStr = configParams.get("sendBufferSize");
+        if (sendBufferStr != null) {
+            this.sendBufferSize = Integer.parseInt(sendBufferStr);
+        }
+        log.debug("Send buffer size set to {}", sendBufferSize);
     }
 
     private void initVendorMessages() {