Initial steps for Interest packet processing
diff --git a/model/ccnx-l3-protocol.h b/model/ccnx-l3-protocol.h
index 2cd81ea..4adf03f 100644
--- a/model/ccnx-l3-protocol.h
+++ b/model/ccnx-l3-protocol.h
@@ -89,9 +89,10 @@
    */
   enum DropReason 
   {
-    NDN_DUPLICATE_INTEREST,  ///< \brief Duplicate Interest 
+    NDN_DUPLICATE_INTEREST,  ///< \brief Duplicate Interest
+    NDN_SUPPRESSED_INTEREST, ///< \brief Suppressed Interest
     NDN_UNSOLICITED_DATA,    ///< \brief Unsolicited ContentObject (duplicate?)
-    // INTERFACE_DOWN,          ///< \brief Interface is down
+    INTERFACE_DOWN,          ///< \brief Interface is down
 
     DROP_CONGESTION, /**< Congestion detected */
     DROP_NO_ROUTE,   /**< No route to host */
@@ -121,7 +122,12 @@
   void SetForwardingStrategy (Ptr<CcnxForwardingStrategy> forwardingStrategy);
   Ptr<CcnxForwardingStrategy> GetForwardingStrategy () const;
 
-  virtual void Send (const Ptr<CcnxFace> &face, const Ptr<Packet> &packet);
+  virtual void SendInterest (const Ptr<CcnxFace> &face,
+                             const Ptr<CcnxInterestHeader> &header,
+                             const Ptr<Packet> &packet);
+  virtual void SendContentObject (const Ptr<CcnxFace> &face,
+                                  const Ptr<CcnxContentObjectHeader> &header,
+                                  const Ptr<Packet> &packet);
   virtual void Receive (const Ptr<CcnxFace> &face, const Ptr<const Packet> &p);
 
   virtual uint32_t AddFace (const Ptr<CcnxFace> &face);
@@ -177,6 +183,14 @@
   // virtual void
   // ReceiveAndProcess (const Ptr<CcnxFace> face, Ptr<Header> header, Ptr<Packet> p);
 
+  /**
+   * \brief A helper function
+   */
+  void TransmittedDataTrace (Ptr<Packet>,
+                             ContentObjectSource,
+                             Ptr<Ccnx>, Ptr<const CcnxFace>);
+  
+  
 private:
   uint32_t m_faceCounter; ///< \brief counter of faces. Increased every time a new face is added to the stack
   typedef std::vector<Ptr<CcnxFace> > CcnxFaceList;
@@ -185,11 +199,9 @@
   Ptr<Node> m_node; ///< \brief node on which ccnx stack is installed
   Ptr<CcnxForwardingStrategy> m_forwardingStrategy; ///< \brief smart pointer to the selected forwarding strategy
 
-  CcnxRit m_rit; ///< \brief RIT (recently interest table)
-  CcnxPit m_pit; ///< \brief PIT (pending interest table)
-  CcnxFib m_fib; ///< \brief FIB
-  
-  CcnxContentStore m_contentStore; ///< \brief Content store (for caching purposes only)
+  Ptr<CcnxRit> m_rit; ///< \brief RIT (recently interest table)
+  Ptr<CcnxPit> m_pit; ///< \brief PIT (pending interest table)
+  Ptr<CcnxContentStore> m_contentStore; ///< \brief Content store (for caching purposes only)
   
   TracedCallback<Ptr<const CcnxInterestHeader>,
                  Ptr<Ccnx>, Ptr<const CcnxFace> > m_receivedInterestsTrace;
@@ -209,7 +221,7 @@
   TracedCallback<Ptr<const CcnxContentObjectHeader>,
                  Ptr<const Packet>,/*payload*/
                  DropReason,
-                 Ptr<Ccnx>, Ptr<const CcnxFace> > m_droppeddDataTrace;
+                 Ptr<Ccnx>, Ptr<const CcnxFace> > m_droppedDataTrace;
   
   /**
    * \brief Trace of dropped packets, including reason and all headers