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,