Enabling app-layer tracing

Network-layer tracing is not working yet (needs a couple of attributes
to be implemented)
diff --git a/model/annotated-topology-reader.cc b/model/annotated-topology-reader.cc
index 6553f86..15c0d6b 100644
--- a/model/annotated-topology-reader.cc
+++ b/model/annotated-topology-reader.cc
@@ -59,7 +59,7 @@
 {
   NS_LOG_FUNCTION (this);
 
-  // SetMobilityModel ("ns3::ConstantPositionMobilityModel");
+  SetMobilityModel ("ns3::ConstantPositionMobilityModel");
 }
     
 void
diff --git a/model/ccnx-face.cc b/model/ccnx-face.cc
index 40ac57b..ec35d8b 100644
--- a/model/ccnx-face.cc
+++ b/model/ccnx-face.cc
@@ -32,6 +32,16 @@
 
 namespace ns3 {
 
+TypeId
+CcnxFace::GetTypeId ()
+{
+  static TypeId tid = TypeId ("ns3::CcnxFace")
+    .SetParent<Object> ()
+    .SetGroupName ("Ccnx")
+    ;
+  return tid;
+}
+
 /** 
  * By default, Ccnx face are created in the "down" state
  *  with no IP addresses.  Before becoming useable, the user must 
@@ -79,6 +89,7 @@
   NS_LOG_FUNCTION_NOARGS ();
 
   /// \todo Implement tracing, if requested
+  
   if (!IsUp ())
     return false;
   
diff --git a/model/ccnx-face.h b/model/ccnx-face.h
index 0499abb..b63b1e7 100644
--- a/model/ccnx-face.h
+++ b/model/ccnx-face.h
@@ -47,11 +47,14 @@
  *
  * \see CcnxLocalFace, CcnxNetDeviceFace, CcnxIpv4Face, CcnxUdpFace
  */
-class CcnxFace  : public SimpleRefCount<CcnxFace>
+class CcnxFace  : public Object
 {
 public:
+  static TypeId
+  GetTypeId ();
+  
   /**
-   * \brief Ccnx protocol hanler
+   * \brief Ccnx protocol handler
    *
    * \param face Face from which packet has been received
    * \param packet Original packet
diff --git a/model/ccnx-l3-protocol.cc b/model/ccnx-l3-protocol.cc
index 6b567c8..f05a80f 100644
--- a/model/ccnx-l3-protocol.cc
+++ b/model/ccnx-l3-protocol.cc
@@ -256,48 +256,6 @@
 void 
 CcnxL3Protocol::Receive (const Ptr<CcnxFace> &face, const Ptr<const Packet> &p)
 {
-  if (!face->IsUp ())
-    {
-      NS_LOG_LOGIC ("Dropping received packet -- interface is down");
-        
-      //m_droppedDTrace (p, INTERFACE_DOWN, m_node->GetObject<Ccnx> ()/*this*/, face);
-        
-        Ptr<Packet> packet = p->Copy (); // give upper layers a rw copy of the packet
-        try
-        {
-            CcnxHeaderHelper::Type type = CcnxHeaderHelper::GetCcnxHeaderType (p);
-            switch (type)
-            {
-                case CcnxHeaderHelper::INTEREST:
-                {
-                    Ptr<CcnxInterestHeader> header = Create<CcnxInterestHeader> ();
-                    m_droppedInterestsTrace (header, INTERFACE_DOWN, m_node->GetObject<Ccnx> (), face);
-                    break;
-                }
-                case CcnxHeaderHelper::CONTENT_OBJECT:
-                {
-                    Ptr<CcnxContentObjectHeader> header = Create<CcnxContentObjectHeader> ();
-                    
-                    static CcnxContentObjectTail contentObjectTrailer; //there is no data in this object
-                    
-                    // Deserialization. Exception may be thrown
-                    packet->RemoveHeader (*header);
-                    packet->RemoveTrailer (contentObjectTrailer);
-                    
-                    m_droppedDataTrace (header, packet, INTERFACE_DOWN, m_node->GetObject<Ccnx> (), face);
-                    break;
-                }
-            }
-            
-            // exception will be thrown if packet is not recognized
-        }
-        catch (CcnxUnknownHeaderException)
-        {
-            NS_ASSERT_MSG (false, "Unknown CCNx header. Should not happen");
-        }
-        
-      return;
-    }
   NS_LOG_LOGIC ("Packet from face " << *face << " received on node " <<  m_node->GetId ());
 
   Ptr<Packet> packet = p->Copy (); // give upper layers a rw copy of the packet
diff --git a/model/ccnx-l3-protocol.h b/model/ccnx-l3-protocol.h
index d55ccd4..29500fc 100644
--- a/model/ccnx-l3-protocol.h
+++ b/model/ccnx-l3-protocol.h
@@ -103,9 +103,7 @@
     NACK_NONDUPLICATE,
 
     DROP_NO_ROUTE,   /**< No route to host */
-  };
-    
-    
+  };    
 
   /**
    * \enum DropReason
@@ -247,16 +245,19 @@
   EventId m_bucketLeakEvent;
   
   TracedCallback<Ptr<const CcnxInterestHeader>,
-                  Ptr<Ccnx>, Ptr<const CcnxFace> > m_receivedInterestsTrace;
+                 Ptr<Ccnx>, Ptr<const CcnxFace> > m_receivedInterestsTrace;
+  
   TracedCallback<Ptr<const CcnxInterestHeader>,
-                  Ptr<Ccnx>, Ptr<const CcnxFace> > m_transmittedInterestsTrace;
+                 Ptr<Ccnx>, Ptr<const CcnxFace> > m_transmittedInterestsTrace;
+  
   TracedCallback<Ptr<const CcnxInterestHeader>,
-                  DropReason,
-                  Ptr<Ccnx>, Ptr<const CcnxFace> > m_droppedInterestsTrace;
+                 DropReason,
+                 Ptr<Ccnx>, Ptr<const CcnxFace> > m_droppedInterestsTrace;
 
   TracedCallback<Ptr<const CcnxContentObjectHeader>,
-                  Ptr<const Packet>,/*payload*/
-                  Ptr<Ccnx>, Ptr<const CcnxFace> > m_receivedDataTrace;
+                 Ptr<const Packet>,/*payload*/
+                 Ptr<Ccnx>, Ptr<const CcnxFace> > m_receivedDataTrace;
+
   TracedCallback<Ptr<const CcnxContentObjectHeader>,
                   Ptr<const Packet>,/*payload*/
                   ContentObjectSource,