receiving packet ins
diff --git a/providers/of/packet/src/main/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProvider.java b/providers/of/packet/src/main/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProvider.java
index c854daa..44a3a58 100644
--- a/providers/of/packet/src/main/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProvider.java
+++ b/providers/of/packet/src/main/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProvider.java
@@ -2,17 +2,24 @@
 
 import static org.slf4j.LoggerFactory.getLogger;
 
+import java.nio.ByteBuffer;
+
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.onlab.onos.net.ConnectPoint;
+import org.onlab.onos.net.DeviceId;
+import org.onlab.onos.net.PortNumber;
+import org.onlab.onos.net.packet.DefaultInboundPacket;
 import org.onlab.onos.net.packet.OutboundPacket;
 import org.onlab.onos.net.packet.PacketProvider;
 import org.onlab.onos.net.packet.PacketProviderRegistry;
 import org.onlab.onos.net.packet.PacketProviderService;
 import org.onlab.onos.net.provider.AbstractProvider;
 import org.onlab.onos.net.provider.ProviderId;
+import org.onlab.onos.of.controller.Dpid;
 import org.onlab.onos.of.controller.OpenFlowController;
 import org.onlab.onos.of.controller.OpenFlowPacketContext;
 import org.onlab.onos.of.controller.PacketListener;
@@ -35,12 +42,8 @@
 
     private PacketProviderService providerService;
 
-    private final boolean useBDDP = true;
-
     private final InternalPacketProvider listener = new InternalPacketProvider();
 
-
-
     /**
      * Creates an OpenFlow link provider.
      */
@@ -51,7 +54,7 @@
     @Activate
     public void activate() {
         providerService = providerRegistry.register(this);
-        controller.addPacketListener(0, listener);
+        controller.addPacketListener(1, listener);
         log.info("Started");
     }
 
@@ -65,18 +68,29 @@
 
     @Override
     public void emit(OutboundPacket packet) {
-        // TODO Auto-generated method stub
 
     }
 
 
+    /**
+     * Internal Packet Provider implementation.
+     *
+     */
     private class InternalPacketProvider implements PacketListener {
 
 
         @Override
         public void handlePacket(OpenFlowPacketContext pktCtx) {
+            DeviceId id = DeviceId.deviceId(Dpid.uri(pktCtx.dpid().value()));
 
+            DefaultInboundPacket inPkt = new DefaultInboundPacket(
+                    new ConnectPoint(id, PortNumber.portNumber(pktCtx.inPort())),
+                    pktCtx.parsed(), ByteBuffer.wrap(pktCtx.unparsed()));
 
+            OpenFlowCorePacketContext corePktCtx =
+                    new OpenFlowCorePacketContext(0, inPkt, null, false, pktCtx,
+                            controller.getSwitch(pktCtx.dpid()));
+            providerService.processPacket(corePktCtx);
         }
 
     }