diff --git a/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java b/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java index c2dbd7eb04ef937dcde37250e9844a185e1ab3e7..d1e835de1ccd66f1e067e2c44e28dcc229394d32 100644 --- a/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java +++ b/src/main/java/net/floodlightcontroller/core/OFMessageFilterManager.java @@ -563,7 +563,7 @@ public class OFMessageFilterManager implements IOFMessageListener { return sb.toString().getBytes(); } - private String getStringFromEthernetPacket(Ethernet eth) { + public String getStringFromEthernetPacket(Ethernet eth) { StringBuffer sb = new StringBuffer("\n"); diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java index c44b43503e4419437a33e06ef11eedd59123ac09..14e02f66df7ebb65fbc9889f0e0f5fa9481d1304 100644 --- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java +++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java @@ -723,6 +723,8 @@ public class Controller throws IOException { Ethernet eth = null; + long startTime = System.nanoTime(); + switch (m.getType()) { case PACKET_IN: OFPacketIn pi = (OFPacketIn)m; @@ -785,8 +787,16 @@ public class Controller } else { log.error("Unhandled OF Message: {} from {}", m, sw); } - break; + + long processingTime = System.nanoTime() - startTime; + if (processingTime > (long)500000000) { // processing takes more than half a second + log.info("--**--**-- Time to process packet-in: {} ns", processingTime); + if (eth!= null) + log.info("{}", messageFilterManager.getStringFromEthernetPacket(eth)); + log.info("--**--**-- "); + } } + } /**