diff --git a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java
index 9be0b53..79e391b 100644
--- a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java
+++ b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java
@@ -1644,6 +1644,9 @@
     @Override
     public boolean sendMsg(Iterable<OFMessage> msgs) {
         if (channel.isActive()) {
+            if (log.isTraceEnabled()) {
+                log.trace("Sending messages for switch {} via openflow channel: {}", getSwitchInfoString(), msgs);
+            }
             channel.writeAndFlush(msgs, channel.voidPromise());
             return true;
         } else {
diff --git a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OpenFlowControllerImpl.java b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OpenFlowControllerImpl.java
index 974a71c..b704e51 100644
--- a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OpenFlowControllerImpl.java
+++ b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OpenFlowControllerImpl.java
@@ -313,6 +313,9 @@
     @Override
     public void processPacket(Dpid dpid, OFMessage msg) {
         OpenFlowSwitch sw = this.getSwitch(dpid);
+        if (log.isTraceEnabled()) {
+            log.trace("Processing message from switch {} via openflow: {}", dpid, msg);
+        }
 
         // Check if someone is waiting for this message
         ConcurrentMap<Long, CompletableFuture<OFMessage>> xids = responses.get(dpid);
