diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitch.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/IOFSwitch.java
similarity index 95%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitch.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/IOFSwitch.java
index 8015f3f..afa3703 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitch.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/IOFSwitch.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl;
+package org.onlab.onos.of.controller.impl;
 
 import java.io.IOException;
 import java.util.Collection;
@@ -25,9 +25,9 @@
 import java.util.Set;
 import java.util.concurrent.Future;
 
-import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService;
-import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService.CounterException;
-import net.onrc.onos.of.ctl.util.OrderedCollection;
+import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService;
+import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService.CounterException;
+import org.onlab.onos.of.controller.impl.util.OrderedCollection;
 
 import org.jboss.netty.channel.Channel;
 import org.projectfloodlight.openflow.protocol.OFActionType;
@@ -71,7 +71,6 @@
      * Writes to the OFMessage to the output stream.
      *
      * @param m
-     * @param bc
      * @throws IOException
      */
     public void write(OFMessage m) throws IOException;
@@ -80,7 +79,6 @@
      * Writes the list of messages to the output stream.
      *
      * @param msglist
-     * @param bc
      * @throws IOException
      */
     public void write(List<OFMessage> msglist) throws IOException;
@@ -366,7 +364,7 @@
     public boolean portEnabled(int portName);
 
     /**
-     * @param portNumber
+     * @param portName
      * @return Whether a port is enabled per latest port status message
      * (not configured down nor link down nor in spanning tree blocking state)
      */
@@ -508,7 +506,7 @@
     /**
      * Set debug counter service for per-switch counters.
      * Called immediately after instantiation.
-     * @param debugCounters
+     * @param debugCounter
      * @throws CounterException
      */
     public void setDebugCounterService(IDebugCounterService debugCounter)
@@ -520,7 +518,8 @@
      * ready.
      * This method must only be called from the I/O thread
      * @throws IOException
-     * @throws SwitchDriverSubHandshakeAlreadyStarted if the sub-handshake has
+     * @throws org.onlab.onos.of.controller.impl.internal.SwitchDriverSubHandshakeAlreadyStarted
+     * if the sub-handshake has
      * already been started
      */
     public void startDriverHandshake() throws IOException;
@@ -531,7 +530,8 @@
      *
      * This methods must only be called from the I/O thread
      * @return true if the sub-handshake has been completed. False otherwise
-     * @throws SwitchDriverSubHandshakeNotStarted if startDriverHandshake() has
+     * @throws org.onlab.onos.of.controller.impl.internal.SwitchDriverSubHandshakeNotStarted
+     * if startDriverHandshake() has
      * not been called yet.
      */
     public boolean isDriverHandshakeComplete();
@@ -541,9 +541,11 @@
      * sub-handshake. Must not be called after the handshake has been completed
      * This methods must only be called from the I/O thread
      * @param m The message that the driver should process
-     * @throws SwitchDriverSubHandshakeCompleted if isDriverHandshake() returns
+     * @throws org.onlab.onos.of.controller.impl.internal.SwitchDriverSubHandshakeCompleted
+     * if isDriverHandshake() returns
      * false before this method call
-     * @throws SwitchDriverSubHandshakeNotStarted if startDriverHandshake() has
+     * @throws org.onlab.onos.of.controller.impl.internal.SwitchDriverSubHandshakeNotStarted
+     * if startDriverHandshake() has
      * not been called yet.
      */
     public void processDriverHandshakeMessage(OFMessage m);
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitchManager.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/IOFSwitchManager.java
similarity index 88%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitchManager.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/IOFSwitchManager.java
index b3b8ed3..0acb321 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitchManager.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/IOFSwitchManager.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.of.ctl;
+package org.onlab.onos.of.controller.impl;
 
 import org.projectfloodlight.openflow.protocol.OFVersion;
 
-import net.onrc.onos.of.ctl.registry.IControllerRegistry;
+import org.onlab.onos.of.controller.impl.registry.IControllerRegistry;
 
 /**
  * Interface to passed to controller class in order to allow
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/Role.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/Role.java
similarity index 95%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/Role.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/Role.java
index d892161..081ea10 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/Role.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/Role.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl;
+package org.onlab.onos.of.controller.impl;
 
 import org.projectfloodlight.openflow.protocol.OFControllerRole;
 
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageCategory.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/annotations/LogMessageCategory.java
similarity index 92%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageCategory.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/annotations/LogMessageCategory.java
index 37ac321..643c639 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageCategory.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/annotations/LogMessageCategory.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.annotations;
+package org.onlab.onos.of.controller.impl.annotations;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Target;
@@ -30,7 +30,7 @@
     /**
      * The category for the log messages for this class.
      *
-     * @return
+     * @return category
      */
     String value() default "Core";
 }
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDoc.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/annotations/LogMessageDoc.java
similarity index 97%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDoc.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/annotations/LogMessageDoc.java
index 313e074..6f0db4d 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDoc.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/annotations/LogMessageDoc.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.annotations;
+package org.onlab.onos.of.controller.impl.annotations;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Target;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDocs.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/annotations/LogMessageDocs.java
similarity index 95%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDocs.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/annotations/LogMessageDocs.java
index 74d4405..f8b0dd9 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDocs.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/annotations/LogMessageDocs.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.annotations;
+package org.onlab.onos.of.controller.impl.annotations;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Target;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/DebugCounter.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/DebugCounter.java
similarity index 99%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/DebugCounter.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/DebugCounter.java
index 76110b0..f88a43e 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/DebugCounter.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/DebugCounter.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.debugcounter;
+package org.onlab.onos.of.controller.impl.debugcounter;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounter.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/IDebugCounter.java
similarity index 95%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounter.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/IDebugCounter.java
index e157cf2..2dc0c0a 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounter.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/IDebugCounter.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.debugcounter;
+package org.onlab.onos.of.controller.impl.debugcounter;
 
 public interface IDebugCounter {
     /**
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounterService.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/IDebugCounterService.java
similarity index 97%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounterService.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/IDebugCounterService.java
index 7f55040..216ee74 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounterService.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/IDebugCounterService.java
@@ -1,10 +1,10 @@
-package net.onrc.onos.of.ctl.debugcounter;
+package org.onlab.onos.of.controller.impl.debugcounter;
 
 
 
 import java.util.List;
 
-import net.onrc.onos.of.ctl.debugcounter.DebugCounter.DebugCounterInfo;
+import org.onlab.onos.of.controller.impl.debugcounter.DebugCounter.DebugCounterInfo;
 
 //CHECKSTYLE:OFF
 public interface IDebugCounterService {
@@ -228,7 +228,8 @@
      * may not be enabled for counting, but if it is registered the method will
      * return true.
      *
-     * @param param
+     * @param moduleName
+     * @param counterHierarchy
      * @return false if moduleCounterHierarchy is not a registered counter
      */
     public boolean containsModuleCounterHierarchy(String moduleName,
@@ -240,7 +241,7 @@
      * a counter enabled for counting, but if it is registered the method will
      * return true.
      *
-     * @param param
+     * @param moduleName
      * @return false if moduleName is not a registered counter
      */
     public boolean containsModuleName(String moduleName);
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/NullDebugCounter.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/NullDebugCounter.java
similarity index 94%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/NullDebugCounter.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/NullDebugCounter.java
index 4a88e2e..ae476ea 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/NullDebugCounter.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/debugcounter/NullDebugCounter.java
@@ -1,9 +1,9 @@
-package net.onrc.onos.of.ctl.debugcounter;
+package org.onlab.onos.of.controller.impl.debugcounter;
 
 import java.util.Collections;
 import java.util.List;
 
-import net.onrc.onos.of.ctl.debugcounter.DebugCounter.DebugCounterInfo;
+import org.onlab.onos.of.controller.impl.debugcounter.DebugCounter.DebugCounterInfo;
 
 //CHECKSTYLE:OFF
 public class NullDebugCounter implements IDebugCounterService {
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/Controller.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/Controller.java
similarity index 95%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/Controller.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/Controller.java
index 84f090a..1f0b36d 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/Controller.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/Controller.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 import java.lang.management.ManagementFactory;
 import java.lang.management.RuntimeMXBean;
@@ -29,24 +29,24 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.Executors;
 
-import net.onrc.onos.of.ctl.IOFSwitchManager;
-import net.onrc.onos.of.ctl.Role;
-import net.onrc.onos.of.ctl.annotations.LogMessageDoc;
-import net.onrc.onos.of.ctl.annotations.LogMessageDocs;
-import net.onrc.onos.of.ctl.debugcounter.DebugCounter;
-import net.onrc.onos.of.ctl.debugcounter.IDebugCounter;
-import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService;
-import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService.CounterException;
-import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService.CounterType;
-import net.onrc.onos.of.ctl.internal.OFChannelHandler.RoleRecvStatus;
-import net.onrc.onos.of.ctl.registry.IControllerRegistry;
-import net.onrc.onos.of.ctl.registry.RegistryException;
-import net.onrc.onos.of.ctl.registry.IControllerRegistry.ControlChangeCallback;
-import net.onrc.onos.of.ctl.util.Dpid;
-import net.onrc.onos.of.ctl.util.DummySwitchForTesting;
-import net.onrc.onos.of.ctl.util.InstanceId;
-import net.onrc.onos.of.ctl.IOFSwitch;
-import net.onrc.onos.of.ctl.IOFSwitch.PortChangeType;
+import org.onlab.onos.of.controller.impl.IOFSwitchManager;
+import org.onlab.onos.of.controller.impl.Role;
+import org.onlab.onos.of.controller.impl.annotations.LogMessageDoc;
+import org.onlab.onos.of.controller.impl.annotations.LogMessageDocs;
+import org.onlab.onos.of.controller.impl.debugcounter.DebugCounter;
+import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounter;
+import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService;
+import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService.CounterException;
+import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService.CounterType;
+import org.onlab.onos.of.controller.impl.internal.OFChannelHandler.RoleRecvStatus;
+import org.onlab.onos.of.controller.impl.registry.IControllerRegistry;
+import org.onlab.onos.of.controller.impl.registry.RegistryException;
+import org.onlab.onos.of.controller.impl.registry.IControllerRegistry.ControlChangeCallback;
+import org.onlab.onos.of.controller.impl.util.Dpid;
+import org.onlab.onos.of.controller.impl.util.DummySwitchForTesting;
+import org.onlab.onos.of.controller.impl.util.InstanceId;
+import org.onlab.onos.of.controller.impl.IOFSwitch;
+import org.onlab.onos.of.controller.impl.IOFSwitch.PortChangeType;
 
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
@@ -242,7 +242,9 @@
     /**
      * Indicates that ports on the given switch have changed. Enqueue a
      * switch update.
-     * @param sw
+     * @param dpid
+     * @param port
+     * @param changeType
      */
     protected void notifyPortChanged(long dpid, OFPortDesc port,
             PortChangeType changeType) {
@@ -479,8 +481,6 @@
 
     /**
      * Tell controller that we're ready to accept switches loop.
-     *
-     * @throws IOException
      */
     @LogMessageDocs({
             @LogMessageDoc(message = "Listening for switch connections on {address}",
@@ -818,7 +818,7 @@
     /**
      * Forward to the driver-manager to get an IOFSwitch instance.
      * @param desc
-     * @return
+     * @return switch instance
      */
     protected IOFSwitch getOFSwitchInstance(OFDescStatsReply desc, OFVersion ofv) {
         if (switchManager == null) {
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/HandshakeTimeoutException.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/HandshakeTimeoutException.java
similarity index 94%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/HandshakeTimeoutException.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/HandshakeTimeoutException.java
index 48856a9..c199487 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/HandshakeTimeoutException.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/HandshakeTimeoutException.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 /**
  * Exception is thrown when the handshake fails to complete.
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/HandshakeTimeoutHandler.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/HandshakeTimeoutHandler.java
similarity index 97%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/HandshakeTimeoutHandler.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/HandshakeTimeoutHandler.java
index 2ed3fd2..10a42ca 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/HandshakeTimeoutHandler.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/HandshakeTimeoutHandler.java
@@ -15,7 +15,7 @@
 *    under the License.
 **/
 
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 import java.util.concurrent.TimeUnit;
 
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFChannelHandler.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OFChannelHandler.java
similarity index 98%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFChannelHandler.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OFChannelHandler.java
index 764e48f..667a051 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFChannelHandler.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OFChannelHandler.java
@@ -1,5 +1,5 @@
 //CHECKSTYLE:OFF
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 import java.io.IOException;
 import java.nio.channels.ClosedChannelException;
@@ -10,14 +10,14 @@
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.RejectedExecutionException;
 
-import net.onrc.onos.of.ctl.IOFSwitch;
-import net.onrc.onos.of.ctl.IOFSwitch.PortChangeEvent;
-import net.onrc.onos.of.ctl.Role;
-import net.onrc.onos.of.ctl.annotations.LogMessageDoc;
-import net.onrc.onos.of.ctl.annotations.LogMessageDocs;
-import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService.CounterException;
-import net.onrc.onos.of.ctl.internal.Controller.Counters;
-import net.onrc.onos.of.ctl.internal.OFChannelHandler.ChannelState.RoleReplyInfo;
+import org.onlab.onos.of.controller.impl.IOFSwitch;
+import org.onlab.onos.of.controller.impl.IOFSwitch.PortChangeEvent;
+import org.onlab.onos.of.controller.impl.Role;
+import org.onlab.onos.of.controller.impl.annotations.LogMessageDoc;
+import org.onlab.onos.of.controller.impl.annotations.LogMessageDocs;
+import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService.CounterException;
+import org.onlab.onos.of.controller.impl.internal.Controller.Counters;
+import org.onlab.onos.of.controller.impl.internal.OFChannelHandler.ChannelState.RoleReplyInfo;
 
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelHandlerContext;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFMessageDecoder.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OFMessageDecoder.java
similarity index 97%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFMessageDecoder.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OFMessageDecoder.java
index ff6fbf5..3035103 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFMessageDecoder.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OFMessageDecoder.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 
 import org.jboss.netty.buffer.ChannelBuffer;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFMessageEncoder.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OFMessageEncoder.java
similarity index 96%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFMessageEncoder.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OFMessageEncoder.java
index 86933fc..14a6db5 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFMessageEncoder.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OFMessageEncoder.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 import java.util.List;
 
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OpenflowPipelineFactory.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OpenflowPipelineFactory.java
similarity index 97%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OpenflowPipelineFactory.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OpenflowPipelineFactory.java
index 30f0287..02e3520 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OpenflowPipelineFactory.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/OpenflowPipelineFactory.java
@@ -15,7 +15,7 @@
 *    under the License.
 **/
 
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 import java.util.concurrent.ThreadPoolExecutor;
 
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeAlreadyStarted.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeAlreadyStarted.java
similarity index 86%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeAlreadyStarted.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeAlreadyStarted.java
index 92c673c..53227aa 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeAlreadyStarted.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeAlreadyStarted.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 /**
  * Thrown when IOFSwitch.startDriverHandshake() is called more than once.
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeCompleted.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeCompleted.java
similarity index 91%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeCompleted.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeCompleted.java
index 1600854..ba792e5 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeCompleted.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeCompleted.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 import org.projectfloodlight.openflow.protocol.OFMessage;
 
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeException.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeException.java
similarity index 91%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeException.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeException.java
index c7d68f3..49fdead 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeException.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeException.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 /**
  * Base class for exception thrown by switch driver sub-handshake processing.
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeNotStarted.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeNotStarted.java
similarity index 88%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeNotStarted.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeNotStarted.java
index d568cc6..72b17dc 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeNotStarted.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeNotStarted.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 /**
  * Thrown when a switch driver's sub-handshake has not been started but an
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeStateException.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeStateException.java
similarity index 88%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeStateException.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeStateException.java
index 6091a86..191d1bb 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeStateException.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchDriverSubHandshakeStateException.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 /**
  * Thrown when a switch driver's sub-handshake state-machine receives an
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchStateException.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchStateException.java
similarity index 96%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchStateException.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchStateException.java
index e51b60d..d82e917 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchStateException.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/internal/SwitchStateException.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 /**
  * This exception indicates an error or unexpected message during
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/ControllerRegistryEntry.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/ControllerRegistryEntry.java
similarity index 97%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/ControllerRegistryEntry.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/ControllerRegistryEntry.java
index 2472f64..5e83348 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/ControllerRegistryEntry.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/ControllerRegistryEntry.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.registry;
+package org.onlab.onos.of.controller.impl.registry;
 
 
 
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IControllerRegistry.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/IControllerRegistry.java
similarity index 97%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IControllerRegistry.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/IControllerRegistry.java
index 0b67338..21b1709 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IControllerRegistry.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/IControllerRegistry.java
@@ -1,10 +1,10 @@
-package net.onrc.onos.of.ctl.registry;
+package org.onlab.onos.of.controller.impl.registry;
 
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
-import net.onrc.onos.of.ctl.util.InstanceId;
+import org.onlab.onos.of.controller.impl.util.InstanceId;
 
 /**
  * A registry service that allows ONOS to register controllers and switches in a
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IdBlock.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/IdBlock.java
similarity index 91%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IdBlock.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/IdBlock.java
index 45d3c83..406a60d 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IdBlock.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/IdBlock.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.registry;
+package org.onlab.onos.of.controller.impl.registry;
 
 public class IdBlock {
     private final long start;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/RegistryException.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/RegistryException.java
similarity index 85%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/RegistryException.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/RegistryException.java
index 06f5932..029f028 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/registry/RegistryException.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/registry/RegistryException.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.registry;
+package org.onlab.onos.of.controller.impl.registry;
 
 public class RegistryException extends Exception {
 
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/Dpid.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/Dpid.java
similarity index 96%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/util/Dpid.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/Dpid.java
index 5544354..dec8424 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/Dpid.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/Dpid.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.util;
+package org.onlab.onos.of.controller.impl.util;
 
 import org.projectfloodlight.openflow.util.HexString;
 
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/DummySwitchForTesting.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/DummySwitchForTesting.java
similarity index 95%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/util/DummySwitchForTesting.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/DummySwitchForTesting.java
index a8eabce..2d925f8 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/DummySwitchForTesting.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/DummySwitchForTesting.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.util;
+package org.onlab.onos.of.controller.impl.util;
 
 import java.io.IOException;
 import java.util.Collection;
@@ -25,10 +25,10 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import net.onrc.onos.of.ctl.IOFSwitch;
-import net.onrc.onos.of.ctl.Role;
-import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService;
-import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService.CounterException;
+import org.onlab.onos.of.controller.impl.IOFSwitch;
+import org.onlab.onos.of.controller.impl.Role;
+import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService;
+import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService.CounterException;
 
 public class DummySwitchForTesting implements IOFSwitch {
 
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/EnumBitmaps.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/EnumBitmaps.java
similarity index 98%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/util/EnumBitmaps.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/EnumBitmaps.java
index fe6ccc0..c7734c0 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/EnumBitmaps.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/EnumBitmaps.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.util;
+package org.onlab.onos.of.controller.impl.util;
 
 import java.util.EnumSet;
 import java.util.Set;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/FilterIterator.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/FilterIterator.java
similarity index 97%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/util/FilterIterator.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/FilterIterator.java
index fdde82c..319aae8 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/FilterIterator.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/FilterIterator.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.util;
+package org.onlab.onos.of.controller.impl.util;
 
 import java.util.Iterator;
 import java.util.NoSuchElementException;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/InstanceId.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/InstanceId.java
similarity index 94%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/util/InstanceId.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/InstanceId.java
index 861dec6..4a7892e 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/InstanceId.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/InstanceId.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.util;
+package org.onlab.onos.of.controller.impl.util;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkArgument;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/IterableIterator.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/IterableIterator.java
similarity index 97%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/util/IterableIterator.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/IterableIterator.java
index 79f3c9d..a59b244 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/IterableIterator.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/IterableIterator.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.util;
+package org.onlab.onos.of.controller.impl.util;
 
 import java.util.Iterator;
 import java.util.NoSuchElementException;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/LRUHashMap.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/LRUHashMap.java
similarity index 95%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/util/LRUHashMap.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/LRUHashMap.java
index 17f9354..866794f 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/LRUHashMap.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/LRUHashMap.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.util;
+package org.onlab.onos.of.controller.impl.util;
 
 import java.util.LinkedHashMap;
 import java.util.Map;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/LinkedHashSetWrapper.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/LinkedHashSetWrapper.java
similarity index 93%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/util/LinkedHashSetWrapper.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/LinkedHashSetWrapper.java
index 629e536..1778d06 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/LinkedHashSetWrapper.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/LinkedHashSetWrapper.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.util;
+package org.onlab.onos.of.controller.impl.util;
 
 import java.util.Collection;
 import java.util.LinkedHashSet;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/MultiIterator.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/MultiIterator.java
similarity index 97%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/util/MultiIterator.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/MultiIterator.java
index 693a8bf..7b709e9 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/MultiIterator.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/MultiIterator.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.util;
+package org.onlab.onos.of.controller.impl.util;
 
 import java.util.Iterator;
 import java.util.NoSuchElementException;
diff --git a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/OrderedCollection.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/OrderedCollection.java
similarity index 86%
rename from of/ctl/src/main/java/net/onrc/onos/of/ctl/util/OrderedCollection.java
rename to of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/OrderedCollection.java
index f032212..9dce568 100644
--- a/of/ctl/src/main/java/net/onrc/onos/of/ctl/util/OrderedCollection.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/util/OrderedCollection.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.util;
+package org.onlab.onos.of.controller.impl.util;
 
 import java.util.Collection;
 
diff --git a/of/ctl/src/test/java/net/onrc/onos/of/ctl/internal/ControllerTest.java b/of/ctl/src/test/java/org/onlab/onos/of/controller/impl/internal/ControllerTest.java
similarity index 97%
rename from of/ctl/src/test/java/net/onrc/onos/of/ctl/internal/ControllerTest.java
rename to of/ctl/src/test/java/org/onlab/onos/of/controller/impl/internal/ControllerTest.java
index ea7d884..5de3647 100644
--- a/of/ctl/src/test/java/net/onrc/onos/of/ctl/internal/ControllerTest.java
+++ b/of/ctl/src/test/java/org/onlab/onos/of/controller/impl/internal/ControllerTest.java
@@ -15,10 +15,10 @@
  *    under the License.
  **/
 
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 import junit.framework.TestCase;
-import net.onrc.onos.of.ctl.IOFSwitch;
+import org.onlab.onos.of.controller.impl.IOFSwitch;
 
 import org.easymock.EasyMock;
 import org.junit.After;
diff --git a/of/ctl/src/test/java/net/onrc/onos/of/ctl/internal/OFChannelHandlerTest.java b/of/ctl/src/test/java/org/onlab/onos/of/controller/impl/internal/OFChannelHandlerTest.java
similarity index 98%
rename from of/ctl/src/test/java/net/onrc/onos/of/ctl/internal/OFChannelHandlerTest.java
rename to of/ctl/src/test/java/org/onlab/onos/of/controller/impl/internal/OFChannelHandlerTest.java
index 0213cce..f267923 100644
--- a/of/ctl/src/test/java/net/onrc/onos/of/ctl/internal/OFChannelHandlerTest.java
+++ b/of/ctl/src/test/java/org/onlab/onos/of/controller/impl/internal/OFChannelHandlerTest.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.of.ctl.internal;
+package org.onlab.onos.of.controller.impl.internal;
 
 import static org.easymock.EasyMock.capture;
 import static org.easymock.EasyMock.createMock;
@@ -18,11 +18,11 @@
 import java.util.List;
 import java.util.Set;
 
-import net.onrc.onos.of.ctl.IOFSwitch;
-import net.onrc.onos.of.ctl.Role;
-import net.onrc.onos.of.ctl.debugcounter.DebugCounter;
-import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService;
-import net.onrc.onos.of.ctl.internal.OFChannelHandler.RoleRecvStatus;
+import org.onlab.onos.of.controller.impl.IOFSwitch;
+import org.onlab.onos.of.controller.impl.Role;
+import org.onlab.onos.of.controller.impl.debugcounter.DebugCounter;
+import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService;
+import org.onlab.onos.of.controller.impl.internal.OFChannelHandler.RoleRecvStatus;
 
 import org.easymock.Capture;
 import org.easymock.CaptureType;
