Adding new trace into CcnxFace
diff --git a/model/ccnx-face.cc b/model/ccnx-face.cc
index 86daa26..3c18af0 100644
--- a/model/ccnx-face.cc
+++ b/model/ccnx-face.cc
@@ -38,6 +38,8 @@
 
 namespace ns3 {
 
+NS_OBJECT_ENSURE_REGISTERED (CcnxFace);
+
 TypeId
 CcnxFace::GetTypeId ()
 {
@@ -63,6 +65,13 @@
     //                BooleanValue (false),
     //                MakeBooleanAccessor (&CcnxFace::m_enableMetricTagging),
     //                MakeBooleanChecker ())
+
+    .AddTraceSource ("CcnxTx", "Transmitted packet trace",
+                     MakeTraceSourceAccessor (&CcnxFace::m_ccnxTxTrace))
+    .AddTraceSource ("CcnxRx", "Received packet trace",
+                     MakeTraceSourceAccessor (&CcnxFace::m_ccnxRxTrace))
+    .AddTraceSource ("CcnxDrop", "Dropped packet trace",
+                     MakeTraceSourceAccessor (&CcnxFace::m_ccnxDropTrace))
     ;
   return tid;
 }
@@ -82,7 +91,7 @@
   , m_id ((uint32_t)-1)
   , m_lastLeakTime (0)
   , m_metric (0)
-  , m_enableMetricTagging (false)
+  // , m_enableMetricTagging (false)
 {
   NS_LOG_FUNCTION (this);
 
@@ -152,10 +161,11 @@
   NS_LOG_FUNCTION (boost::cref (*this) << packet << packet->GetSize ());
   NS_LOG_DEBUG (*packet);
 
-  /// \todo Implement tracing, if requested
-
   if (!IsUp ())
-    return false;
+    {
+      m_ccnxDropTrace (packet);
+      return false;
+    }
 
   // if (m_enableMetricTagging)
   //   {
@@ -174,7 +184,8 @@
   //     tag->AddPathInfo (m_node, GetMetric ());
   //     packet->AddPacketTag (tag);
   //   }
-  
+
+  m_ccnxTxTrace (packet);
   SendImpl (packet);
   return true;
 }
@@ -184,11 +195,13 @@
 {
   NS_LOG_FUNCTION (boost::cref (*this) << packet << packet->GetSize ());
 
-  /// \todo Implement tracing, if requested
-
   if (!IsUp ())
-    return false;
+    {
+      // no tracing here. If we were off while receiving, we shouldn't even know that something was there
+      return false;
+    }
 
+  m_ccnxRxTrace (packet);
   m_protocolHandler (this, packet);
   
   return true;