Moving helper components to the plugins/ folder. Disabling compilation of these components
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
index fe098ad..9538a1f 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
@@ -65,6 +65,16 @@
virtual boost::any accept( Visitor &v, boost::any param ) = 0;
};
+// Necessary until Buffer::Iterator gets PeekU8 call
+inline
+uint8_t
+BufferIteratorPeekU8 (Buffer::Iterator &i)
+{
+ uint8_t ret = i.ReadU8 ();
+ i.Prev ();
+ return ret;
+}
+
}
}
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc b/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc
index 0fdea06..68fc794 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc
@@ -41,7 +41,7 @@
return; // hack #1. Do not process nesting block for <Content>
// parse attributes until first nested block reached
- while (!start.IsEnd () && start.PeekU8 ()!=CCN_CLOSE)
+ while (!start.IsEnd () && BufferIteratorPeekU8 (start)!=CCN_CLOSE)
{
Ptr<Block> block = Block::ParseBlock (start);
if (DynamicCast<BaseAttr> (block)!=0)
@@ -54,7 +54,7 @@
}
// parse the rest of nested blocks
- while (!start.IsEnd () && start.PeekU8 ()!=CCN_CLOSE)
+ while (!start.IsEnd () && BufferIteratorPeekU8 (start)!=CCN_CLOSE)
{
// hack #2. Stop processing nested blocks if last block was <Content>
if (m_dtag == CCN_DTAG_ContentObject && // we are in <ContentObject>
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc b/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc
index 5862ad4..723c57e 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc
@@ -37,7 +37,7 @@
throw CcnbDecodingException ();
// parse attributes until first nested block reached
- while (!start.IsEnd () && start.PeekU8 ()!=CCN_CLOSE)
+ while (!start.IsEnd () && BufferIteratorPeekU8 (start)!=CCN_CLOSE)
{
Ptr<Block> block = Block::ParseBlock (start);
if (DynamicCast<BaseAttr> (block)!=0)
@@ -50,7 +50,7 @@
}
// parse the rest of nested blocks
- while (!start.IsEnd () && start.PeekU8 ()!=CCN_CLOSE)
+ while (!start.IsEnd () && BufferIteratorPeekU8 (start)!=CCN_CLOSE)
{
Ptr<Block> block = Block::ParseBlock (start);
m_nestedTags.push_back (block);
diff --git a/helper/ccnx-trace-helper.cc b/helper/ccnx-trace-helper.cc
deleted file mode 100644
index a153862..0000000
--- a/helper/ccnx-trace-helper.cc
+++ /dev/null
@@ -1,415 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ccnx-trace-helper.h"
-
-#include "ns3/config.h"
-#include "ns3/callback.h"
-#include "ns3/ccnx-app.h"
-#include "ns3/ccnx-face.h"
-#include "ns3/packet.h"
-#include "ns3/log.h"
-#include "ns3/assert.h"
-#include "ns3/node-list.h"
-#include "ns3/object-vector.h"
-#include "ns3/simulator.h"
-#include "ns3/names.h"
-#include "ns3/tcp-l4-protocol.h"
-#include "ns3/node.h"
-
-#include <boost/ref.hpp>
-#include <boost/lexical_cast.hpp>
-
-#include "tracers/ccnx-aggregate-app-tracer.h"
-#include "tracers/ccnx-aggregate-l3-tracer.h"
-#include "tracers/ccnx-rate-l3-tracer.h"
-#include "tracers/ccnx-seqs-app-tracer.h"
-#include "tracers/ipv4-rate-l3-tracer.h"
-#include "tracers/ipv4-seqs-app-tracer.h"
-#include "tracers/ccnx-consumer-window-tracer.h"
-#include "tracers/ccnx-path-weight-tracer.h"
-
-#include "ns3/ccnx-interest-header.h"
-#include "ns3/ccnx-content-object-header.h"
-
-#include <fstream>
-
-using namespace std;
-using namespace boost;
-
-NS_LOG_COMPONENT_DEFINE ("CcnxTraceHelper");
-
-namespace ns3 {
-
-CcnxTraceHelper::CcnxTraceHelper ()
- : m_l3RateTrace (0)
- , m_appSeqsTrace (0)
- , m_ipv4RateTrace (0)
- , m_ipv4AppSeqsTrace (0)
- , m_windowsTrace (0)
- , m_windowsTcpTrace (0)
- , m_pathWeightsTrace (0)
-{
-}
-
-CcnxTraceHelper::~CcnxTraceHelper ()
-{
- NS_LOG_FUNCTION (this);
- if (m_l3RateTrace != 0) delete m_l3RateTrace;
- if (m_appSeqsTrace != 0) delete m_appSeqsTrace;
- if (m_ipv4AppSeqsTrace != 0) delete m_ipv4AppSeqsTrace;
- if (m_windowsTrace != 0) delete m_windowsTrace;
- if (m_windowsTcpTrace != 0) delete m_windowsTcpTrace;
- if (m_pathWeightsTrace != 0) delete m_pathWeightsTrace;
- if (m_ipv4RateTrace != 0) delete m_ipv4RateTrace;
-
- if (m_apps.size () > 0)
- {
- ofstream of;
- if (!m_appTrace.empty ())
- {
- of.open (m_appTrace.c_str (), ios_base::trunc | ios_base::out);
- of << "# ";
- m_apps.front ()->PrintHeader (of);
- of << "\n";
- }
-
- for (std::list<Ptr<CcnxAppTracer> >::iterator app = m_apps.begin ();
- app != m_apps.end ();
- app++)
- {
- if (!m_appTrace.empty ())
- {
- (*app)->Print (of);
- of << "\n";
- }
- else
- {
- NS_LOG_INFO (*(*app));
- }
- }
- }
-
- if (m_l3s.size () > 0)
- {
- ofstream of;
- if (!m_l3Trace.empty ())
- {
- of.open (m_l3Trace.c_str (), ios_base::trunc | ios_base::out);
- of << "# ";
- m_l3s.front ()->PrintHeader (of);
- of << "\n";
- }
-
- for (std::list<Ptr<CcnxL3Tracer> >::iterator l3 = m_l3s.begin ();
- l3 != m_l3s.end ();
- l3++)
- {
- if (!m_l3Trace.empty ())
- {
- (*l3)->Print (of);
- of << "\n";
- }
- else
- {
- NS_LOG_INFO (*(*l3));
- }
- }
- }
-}
-
-void
-CcnxTraceHelper::SetAppTraceFile (const std::string &appTrace)
-{
- NS_LOG_FUNCTION (this << appTrace);
- m_appTrace = appTrace;
-}
-
-void
-CcnxTraceHelper::SetL3TraceFile (const std::string &l3Trace)
-{
- NS_LOG_FUNCTION (this << l3Trace);
- m_l3Trace = l3Trace;
-}
-
-void
-CcnxTraceHelper::EnableAggregateAppAll (const std::string &appName)
-{
- NS_LOG_FUNCTION (this << appName);
- for (NodeList::Iterator node = NodeList::Begin ();
- node != NodeList::End ();
- node++)
- {
- ObjectVectorValue apps;
- (*node)->GetAttribute ("ApplicationList", apps);
-
- NS_LOG_DEBUG ("Node: " << lexical_cast<string> ((*node)->GetId ()));
-
- uint32_t appId = 0;
- for (ObjectVectorValue::Iterator app = apps.Begin ();
- app != apps.End ();
- app++, appId++)
- {
- NS_LOG_DEBUG ("App: " << lexical_cast<string> (appId) << ", typeId: " << (*app)->GetInstanceTypeId ().GetName ());
- if ((*app)->GetInstanceTypeId ().GetName () == appName)
- {
- m_apps.push_back (Create<CcnxAggregateAppTracer> (appName,
- *node,
- lexical_cast<string> (appId)));
- }
- }
- }
-}
-
-void
-CcnxTraceHelper::EnableAggregateL3All ()
-{
- NS_LOG_FUNCTION (this);
-
- for (NodeList::Iterator node = NodeList::Begin ();
- node != NodeList::End ();
- node++)
- {
- NS_LOG_DEBUG ("Node: " << lexical_cast<string> ((*node)->GetId ()));
-
- m_l3s.push_back (Create<CcnxAggregateL3Tracer> (*node));
- }
-}
-
-void
-CcnxTraceHelper::EnableRateL3All (const std::string &l3RateTrace)
-{
- NS_LOG_FUNCTION (this);
- m_l3RateTrace = new ofstream (l3RateTrace.c_str (), ios::trunc);
-
- for (NodeList::Iterator node = NodeList::Begin ();
- node != NodeList::End ();
- node++)
- {
- NS_LOG_DEBUG ("Node: " << lexical_cast<string> ((*node)->GetId ()));
-
- Ptr<CcnxRateL3Tracer> trace = Create<CcnxRateL3Tracer> (boost::ref(*m_l3RateTrace), *node);
- trace->SetAveragingPeriod (Seconds (0.2));
- m_l3Rates.push_back (trace);
- }
-
- if (m_l3Rates.size () > 0)
- {
- // *m_l3RateTrace << "# "; // not necessary for R's read.table
- m_l3Rates.front ()->PrintHeader (*m_l3RateTrace);
- *m_l3RateTrace << "\n";
- }
-}
-
-void
-CcnxTraceHelper::EnableIpv4RateL3All (const std::string &file)
-{
- NS_LOG_FUNCTION (this);
- m_ipv4RateTrace = new ofstream (file.c_str (), ios::trunc);
-
- for (NodeList::Iterator node = NodeList::Begin ();
- node != NodeList::End ();
- node++)
- {
- NS_LOG_DEBUG ("Node: " << lexical_cast<string> ((*node)->GetId ()));
-
- Ptr<Ipv4RateL3Tracer> trace = Create<Ipv4RateL3Tracer> (boost::ref(*m_ipv4RateTrace), *node);
- trace->SetAveragingPeriod (Seconds (0.2));
- m_ipv4Rates.push_back (trace);
- }
-
- if (m_ipv4Rates.size () > 0)
- {
- // *m_ipv4RateTrace << "# "; // not necessary for R's read.table
- m_ipv4Rates.front ()->PrintHeader (*m_ipv4RateTrace);
- *m_ipv4RateTrace << "\n";
- }
-}
-
-
-void
-CcnxTraceHelper::EnableSeqsAppAll (const std::string &appName, const std::string &trace)
-{
- NS_LOG_FUNCTION (this);
- m_appSeqsTrace = new ofstream (trace.c_str (), ios::trunc);
-
- for (NodeList::Iterator node = NodeList::Begin ();
- node != NodeList::End ();
- node++)
- {
- ObjectVectorValue apps;
- (*node)->GetAttribute ("ApplicationList", apps);
-
- NS_LOG_DEBUG ("Node: " << lexical_cast<string> ((*node)->GetId ()));
-
- uint32_t appId = 0;
- for (ObjectVectorValue::Iterator app = apps.Begin ();
- app != apps.End ();
- app++, appId++)
- {
- NS_LOG_DEBUG ("App: " << lexical_cast<string> (appId) << ", typeId: " << (*app)->GetInstanceTypeId ().GetName ());
- if ((*app)->GetInstanceTypeId ().GetName () == appName)
- {
- Ptr<CcnxSeqsAppTracer> trace = Create<CcnxSeqsAppTracer> (boost::ref(*m_appSeqsTrace),
- appName,
- *node,
- lexical_cast<string> (appId));
- m_appSeqs.push_back (trace);
- }
- }
-
- }
-
- if (m_appSeqs.size () > 0)
- {
- // *m_l3RateTrace << "# "; // not necessary for R's read.table
- m_appSeqs.front ()->PrintHeader (*m_appSeqsTrace);
- *m_appSeqsTrace << "\n";
- }
-}
-
-void
-CcnxTraceHelper::EnableIpv4SeqsAppAll (const std::string &trace)
-{
- NS_LOG_FUNCTION (this);
- m_ipv4AppSeqsTrace = new ofstream (trace.c_str (), ios::trunc);
-
- for (NodeList::Iterator node = NodeList::Begin ();
- node != NodeList::End ();
- node++)
- {
- ObjectVectorValue apps;
- (*node)->GetAttribute ("ApplicationList", apps);
-
- NS_LOG_DEBUG ("Node: " << lexical_cast<string> ((*node)->GetId ()));
-
- uint32_t appId = 0;
- for (ObjectVectorValue::Iterator app = apps.Begin ();
- app != apps.End ();
- app++, appId++)
- {
- NS_LOG_DEBUG ("App: " << lexical_cast<string> (appId) << ", typeId: " << (*app)->GetInstanceTypeId ().GetName ());
- if ((*app)->GetInstanceTypeId ().GetName () == "ns3::PacketSink" ||
- (*app)->GetInstanceTypeId ().GetName () == "ns3::BulkSendApplication")
- {
- Ptr<Ipv4SeqsAppTracer> trace = Create<Ipv4SeqsAppTracer> (boost::ref(*m_ipv4AppSeqsTrace),
- *node,
- lexical_cast<string> (appId));
- m_ipv4AppSeqs.push_back (trace);
- }
- }
-
- }
-
- if (m_ipv4AppSeqs.size () > 0)
- {
- m_ipv4AppSeqs.front ()->PrintHeader (*m_ipv4AppSeqsTrace);
- *m_ipv4AppSeqsTrace << "\n";
- }
-}
-
-void
-CcnxTraceHelper::EnableWindowsAll (const std::string &windowTrace)
-{
- NS_LOG_FUNCTION (this);
- m_windowsTrace = new ofstream (windowTrace.c_str (), ios::trunc);
-
- for (NodeList::Iterator node = NodeList::Begin ();
- node != NodeList::End ();
- node++)
- {
- ObjectVectorValue apps;
- (*node)->GetAttribute ("ApplicationList", apps);
-
- NS_LOG_DEBUG ("Node: " << lexical_cast<string> ((*node)->GetId ()));
-
- uint32_t appId = 0;
- for (ObjectVectorValue::Iterator app = apps.Begin ();
- app != apps.End ();
- app++, appId++)
- {
- if ((*app)->GetInstanceTypeId ().GetName () == "ns3::CcnxConsumerWindow")
- {
- Ptr<CcnxConsumerWindowTracer> trace = Create<CcnxConsumerWindowTracer> (boost::ref(*m_windowsTrace),
- *node,
- lexical_cast<string> (appId));
- m_windows.push_back (trace);
- }
- }
-
- }
-
- if (m_windows.size () > 0)
- {
- m_windows.front ()->PrintHeader (*m_windowsTrace);
- *m_windowsTrace << "\n";
- }
-}
-
-void
-CcnxTraceHelper::TcpConnect (Ptr<Node> node)
-{
- ObjectVectorValue sockets;
- node->GetObject<TcpL4Protocol> ()->GetAttribute ("SocketList", sockets);
-
- uint32_t sockId = 0;
- for (ObjectVectorValue::Iterator socket = sockets.Begin ();
- socket != sockets.End ();
- socket++, sockId++)
- {
- // std::cout << "Node: " << node->GetId () << ", Socket " << sockId << "\n";
-
- Ptr<TcpCongestionWindowTracer> trace = Create<TcpCongestionWindowTracer> (boost::ref(*m_windowsTcpTrace),
- node,
- lexical_cast<string> (sockId));
- m_windowsTcp.push_back (trace);
- }
-}
-
-void
-CcnxTraceHelper::EnableWindowsTcpAll (const std::string &windowTrace)
-{
- NS_LOG_FUNCTION (this);
- m_windowsTcpTrace = new ofstream (windowTrace.c_str (), ios::trunc);
-
- WindowTracer::PrintHeader (*m_windowsTcpTrace);
- *m_windowsTcpTrace << "\n";
-}
-
-void
-CcnxTraceHelper::EnablePathWeights (const std::string &pathWeights)
-{
- NS_LOG_FUNCTION (this);
- m_pathWeightsTrace = new ofstream (pathWeights.c_str (), ios::trunc);
-
- CcnxPathWeightTracer::PrintHeader (*m_pathWeightsTrace);
- *m_pathWeightsTrace << "\n";
-
- for (NodeList::Iterator node = NodeList::Begin ();
- node != NodeList::End ();
- node++)
- {
- Ptr<CcnxPathWeightTracer> trace = Create<CcnxPathWeightTracer> (boost::ref(*m_pathWeightsTrace),
- *node);
- m_pathWeights.push_back (trace);
- }
-}
-
-} // namespace ns3
diff --git a/helper/tracers/ccnx-aggregate-app-tracer.cc b/helper/tracers/ccnx-aggregate-app-tracer.cc
deleted file mode 100644
index 6129e8c..0000000
--- a/helper/tracers/ccnx-aggregate-app-tracer.cc
+++ /dev/null
@@ -1,172 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ccnx-aggregate-app-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/callback.h"
-#include "ns3/ccnx-app.h"
-#include "ns3/ccnx-face.h"
-#include "ns3/ccnx-interest-header.h"
-#include "ns3/ccnx-content-object-header.h"
-
-namespace ns3 {
-
-CcnxAggregateAppTracer::CcnxAggregateAppTracer (const std::string &app, Ptr<Node> node, const std::string &appId)
- : CcnxAppTracer (app, node, appId)
- , m_inInterests (0)
- , m_outInterests (0)
- , m_inNacks (0)
- , m_inData (0)
- , m_outData (0)
-
- , m_inInterestsBytes (0)
- , m_outInterestsBytes (0)
- , m_inNacksBytes (0)
- , m_inDataBytes (0)
- , m_outDataBytes (0)
-{
-}
-
-CcnxAggregateAppTracer::CcnxAggregateAppTracer (const std::string &app, const std::string &node, const std::string &appId)
- : CcnxAppTracer (app, node, appId)
- , m_inInterests (0)
- , m_outInterests (0)
- , m_inNacks (0)
- , m_inData (0)
- , m_outData (0)
-
- , m_inInterestsBytes (0)
- , m_outInterestsBytes (0)
- , m_inNacksBytes (0)
- , m_inDataBytes (0)
- , m_outDataBytes (0)
-{
-}
-
-void
-CcnxAggregateAppTracer::Reset ()
-{
- m_inInterests = 0;
- m_outInterests = 0;
- m_inNacks = 0;
- m_inData = 0;
- m_outData = 0;
-
- m_inInterestsBytes = 0;
- m_outInterestsBytes = 0;
- m_inNacksBytes = 0;
- m_inDataBytes = 0;
- m_outDataBytes = 0;
-}
-
-void
-CcnxAggregateAppTracer::PrintHeader (std::ostream &os) const
-{
- os << "NodeId" << "\t"
- << "App" << "\t"
- << "AppId" << "\t"
- << "InInterests" << "\t"
- << "OutInterests" << "\t"
-
- << "InNacks" << "\t"
-
- << "InData" << "\t"
- << "OutData" << "\t"
-
- << "InInterestsBytes" << "\t"
- << "OutInterestsBytes" << "\t"
-
- << "InNacksBytes" << "\t"
-
- << "InDataBytes" << "\t"
- << "OutDataBytes";
-}
-
-void
-CcnxAggregateAppTracer::Print (std::ostream &os) const
-{
- os << m_node << "\t"
- << m_app << "\t"
- << m_appId << "\t"
-
- << m_inInterests << "\t"
- << m_outInterests << "\t"
-
- << m_inNacks << "\t"
-
- << m_inData << "\t"
- << m_outData << "\t"
-
- << m_inInterestsBytes << "\t"
- << m_outInterestsBytes << "\t"
-
- << m_inNacksBytes << "\t"
-
- << m_inDataBytes << "\t"
- << m_outDataBytes;
-}
-
-void
-CcnxAggregateAppTracer::OutInterests (std::string context,
- Ptr<const CcnxInterestHeader> header, Ptr<CcnxApp>, Ptr<CcnxFace>)
-{
- m_outInterests++;
- m_outInterestsBytes += header->GetSerializedSize ();
-}
-
-void
-CcnxAggregateAppTracer::OutData (std::string context,
- Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
- Ptr<CcnxApp>, Ptr<CcnxFace>)
-{
- m_outData++;
- m_outDataBytes += header->GetSerializedSize () + payload->GetSerializedSize ();
-}
-
-void
-CcnxAggregateAppTracer::InInterests (std::string context,
- Ptr<const CcnxInterestHeader> header,
- Ptr<CcnxApp>, Ptr<CcnxFace>)
-{
- m_inInterests++;
- m_inInterestsBytes += header->GetSerializedSize ();
-}
-
-void
-CcnxAggregateAppTracer::InNacks (std::string context,
- Ptr<const CcnxInterestHeader> header,
- Ptr<CcnxApp>, Ptr<CcnxFace>)
-{
- m_inNacks++;
- m_inNacksBytes += header->GetSerializedSize ();
-}
-
-void
-CcnxAggregateAppTracer::InData (std::string context,
- Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
- Ptr<CcnxApp>, Ptr<CcnxFace>)
-{
- m_inData++;
- m_inDataBytes += header->GetSerializedSize () + payload->GetSerializedSize ();
-}
-
-} // namespace ns3
diff --git a/helper/tracers/ccnx-aggregate-app-tracer.h b/helper/tracers/ccnx-aggregate-app-tracer.h
deleted file mode 100644
index e321b64..0000000
--- a/helper/tracers/ccnx-aggregate-app-tracer.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef CCNX_AGGREGATE_APP_TRACER_H
-#define CCNX_AGGREGATE_APP_TRACER_H
-
-#include "ns3/ccnx-app-tracer.h"
-
-namespace ns3 {
-
-class CcnxAggregateAppTracer : public CcnxAppTracer
-{
-public:
- CcnxAggregateAppTracer (const std::string &app, Ptr<Node> node, const std::string &appId = "*");
- CcnxAggregateAppTracer (const std::string &app, const std::string &node, const std::string &appId = "*");
- virtual ~CcnxAggregateAppTracer () { };
-
- virtual void
- PrintHeader (std::ostream &os) const;
-
- virtual void
- Print (std::ostream &os) const;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
-protected:
- void
- Reset ();
-
-protected:
- uint64_t m_inInterests;
- uint64_t m_outInterests;
- uint64_t m_inNacks;
- uint64_t m_inData;
- uint64_t m_outData;
-
- uint64_t m_inInterestsBytes;
- uint64_t m_outInterestsBytes;
- uint64_t m_inNacksBytes;
- uint64_t m_inDataBytes;
- uint64_t m_outDataBytes;
-};
-
-} // namespace ns3
-
-#endif // CCNX_AGGREGATE_APP_TRACER_H
diff --git a/helper/tracers/ccnx-aggregate-l3-tracer.cc b/helper/tracers/ccnx-aggregate-l3-tracer.cc
deleted file mode 100644
index 596f036..0000000
--- a/helper/tracers/ccnx-aggregate-l3-tracer.cc
+++ /dev/null
@@ -1,201 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ccnx-aggregate-l3-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/callback.h"
-#include "ns3/ccnx-app.h"
-#include "ns3/ccnx-face.h"
-#include "ns3/ccnx-interest-header.h"
-#include "ns3/ccnx-content-object-header.h"
-
-namespace ns3 {
-
-CcnxAggregateL3Tracer::CcnxAggregateL3Tracer (Ptr<Node> node)
- : CcnxL3Tracer (node)
-{
- Reset ();
-}
-
-CcnxAggregateL3Tracer::CcnxAggregateL3Tracer (const std::string &node)
- : CcnxL3Tracer (node)
-{
- Reset ();
-}
-
-void
-CcnxAggregateL3Tracer::Stats::Reset ()
-{
- m_inInterests = 0;
- m_outInterests = 0;
- m_dropInterests = 0;
- m_inNacks = 0;
- m_outNacks = 0;
- m_dropNacks = 0;
- m_inData = 0;
- m_outData = 0;
- m_dropData = 0;
-}
-
-
-void
-CcnxAggregateL3Tracer::Reset ()
-{
- m_packets.Reset ();
- m_bytes.Reset ();
-}
-
-
-void
-CcnxAggregateL3Tracer::PrintHeader (std::ostream &os) const
-{
- os << "Node" << "\t"
- << "InInterests" << "\t"
- << "OutInterests" << "\t"
- << "DropInterests" << "\t"
-
- << "InNacks" << "\t"
- << "OutNacks" << "\t"
- << "DropNacks" << "\t"
-
- << "InData" << "\t"
- << "OutData" << "\t"
- << "DropData" << "\t"
-
- << "InInterestsBytes" << "\t"
- << "OutInterestsBytes" << "\t"
- << "DropInterestsBytes" << "\t"
-
- << "InNacksBytes" << "\t"
- << "OutNacksBytes" << "\t"
- << "DropNacksBytes" << "\t"
-
- << "InDataBytes" << "\t"
- << "OutDataBytes" << "\t"
- << "DropDataBytes";
-}
-
-void
-CcnxAggregateL3Tracer::Print (std::ostream &os) const
-{
- os << m_node << "\t"
- << m_packets.m_inInterests << "\t"
- << m_packets.m_outInterests << "\t"
- << m_packets.m_dropInterests << "\t"
-
- << m_packets.m_inNacks << "\t"
- << m_packets.m_outNacks << "\t"
- << m_packets.m_dropNacks << "\t"
-
- << m_packets.m_inData << "\t"
- << m_packets.m_outData << "\t"
- << m_packets.m_dropData << "\t"
-
- << m_bytes.m_inInterests << "\t"
- << m_bytes.m_outInterests << "\t"
- << m_bytes.m_dropInterests << "\t"
-
- << m_bytes.m_inNacks << "\t"
- << m_bytes.m_outNacks << "\t"
- << m_bytes.m_dropNacks << "\t"
-
- << m_bytes.m_inData << "\t"
- << m_bytes.m_outData << "\t"
- << m_bytes.m_dropData;
-}
-
-void
-CcnxAggregateL3Tracer::OutInterests (std::string context,
- Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace>)
-{
- m_packets.m_outInterests++;
- m_bytes.m_outInterests += header->GetSerializedSize ();
-}
-
-void
-CcnxAggregateL3Tracer::InInterests (std::string context,
- Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace>)
-{
- m_packets.m_inInterests++;
- m_bytes.m_inInterests += header->GetSerializedSize ();
-}
-
-void
-CcnxAggregateL3Tracer::DropInterests (std::string context,
- Ptr<const CcnxInterestHeader> header, Ccnx::DropReason, Ptr<const CcnxFace>)
-{
- m_packets.m_dropInterests++;
- m_bytes.m_dropInterests += header->GetSerializedSize ();
-}
-
-void
-CcnxAggregateL3Tracer::OutNacks (std::string context,
- Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace>)
-{
- m_packets.m_outNacks++;
- m_bytes.m_outNacks += header->GetSerializedSize ();
-}
-
-void
-CcnxAggregateL3Tracer::InNacks (std::string context,
- Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace>)
-{
- m_packets.m_inNacks++;
- m_bytes.m_inNacks += header->GetSerializedSize ();
-}
-
-void
-CcnxAggregateL3Tracer::DropNacks (std::string context,
- Ptr<const CcnxInterestHeader> header, Ccnx::DropReason, Ptr<const CcnxFace>)
-{
- m_packets.m_dropNacks++;
- m_bytes.m_dropNacks += header->GetSerializedSize ();
-}
-
-void
-CcnxAggregateL3Tracer::OutData (std::string context,
- Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
- bool fromCache, Ptr<const CcnxFace>)
-{
- m_packets.m_outData++;
- m_bytes.m_outData += header->GetSerializedSize () + payload->GetSize ();
-}
-
-void
-CcnxAggregateL3Tracer::InData (std::string context,
- Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
- Ptr<const CcnxFace>)
-{
- m_packets.m_inData++;
- m_bytes.m_inData += header->GetSerializedSize () + payload->GetSize ();
-}
-
-void
-CcnxAggregateL3Tracer::DropData (std::string context,
- Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
- Ccnx::DropReason, Ptr<const CcnxFace>)
-{
- m_packets.m_dropData++;
- m_bytes.m_dropData += header->GetSerializedSize () + payload->GetSize ();
-}
-
-} // namespace ns3
diff --git a/helper/tracers/ccnx-aggregate-l3-tracer.h b/helper/tracers/ccnx-aggregate-l3-tracer.h
deleted file mode 100644
index 8536258..0000000
--- a/helper/tracers/ccnx-aggregate-l3-tracer.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef CCNX_AGGREGATE_L3_TRACER_H
-#define CCNX_AGGREGATE_L3_TRACER_H
-
-#include "ns3/ccnx-l3-tracer.h"
-
-namespace ns3 {
-
-class CcnxAggregateL3Tracer : public CcnxL3Tracer
-{
-public:
- CcnxAggregateL3Tracer (Ptr<Node> node);
- CcnxAggregateL3Tracer (const std::string &node);
- virtual ~CcnxAggregateL3Tracer () { };
-
- virtual void
- PrintHeader (std::ostream &os) const;
-
- virtual void
- Print (std::ostream &os) const;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- DropInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
- virtual void
- OutNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- DropNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>);
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<const CcnxFace>);
-
- virtual void
- DropData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
-protected:
- void
- Reset ();
-
-protected:
- Stats m_packets;
- Stats m_bytes;
-};
-
-} // namespace ns3
-
-#endif // CCNX_AGGREGATE_L3_TRACER_H
diff --git a/helper/tracers/ccnx-app-tracer.cc b/helper/tracers/ccnx-app-tracer.cc
deleted file mode 100644
index a2bbbdd..0000000
--- a/helper/tracers/ccnx-app-tracer.cc
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ccnx-app-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/callback.h"
-#include "ns3/names.h"
-
-#include "ns3/ccnx-app.h"
-#include "ns3/ccnx-face.h"
-
-#include <boost/lexical_cast.hpp>
-
-#include "ns3/ccnx-interest-header.h"
-#include "ns3/ccnx-content-object-header.h"
-
-using namespace std;
-using namespace boost;
-
-namespace ns3 {
-
-CcnxAppTracer::CcnxAppTracer (const std::string &app, Ptr<Node> node, const std::string &appId)
- : m_app (app)
- , m_appId (appId)
- , m_nodePtr (node)
-{
- m_node = boost::lexical_cast<string> (m_nodePtr->GetId ());
-
- Connect ();
-
- string name = Names::FindName (node);
- if (!name.empty ())
- {
- m_node = name;
- }
-}
-
-CcnxAppTracer::CcnxAppTracer (const std::string &app, const std::string &node, const std::string &appId)
- : m_app (app)
- , m_appId (appId)
- , m_node (node)
-{
- Connect ();
-}
-
-void
-CcnxAppTracer::Connect ()
-{
- Config::Connect ("/NodeList/"+m_node+"/ApplicationList/"+m_appId+"/$"+m_app+"/TransmittedInterests",
- MakeCallback (&CcnxAppTracer::OutInterests, this));
-
- Config::Connect ("/NodeList/"+m_node+"/ApplicationList/"+m_appId+"/$"+m_app+"/ReceivedNacks",
- MakeCallback (&CcnxAppTracer::InNacks, this));
-
- Config::Connect ("/NodeList/"+m_node+"/ApplicationList/"+m_appId+"/$"+m_app+"/ReceivedInterests",
- MakeCallback (&CcnxAppTracer::InInterests, this));
-
- Config::Connect ("/NodeList/"+m_node+"/ApplicationList/"+m_appId+"/$"+m_app+"/TransmittedContentObjects",
- MakeCallback (&CcnxAppTracer::OutData, this));
-
- Config::Connect ("/NodeList/"+m_node+"/ApplicationList/"+m_appId+"/$"+m_app+"/ReceivedContentObjects",
- MakeCallback (&CcnxAppTracer::InData, this));
-}
-
-} // namespace ns3
diff --git a/helper/tracers/ccnx-app-tracer.h b/helper/tracers/ccnx-app-tracer.h
deleted file mode 100644
index fd9f42d..0000000
--- a/helper/tracers/ccnx-app-tracer.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef CCNX_APP_TRACER_H
-#define CCNX_APP_TRACER_H
-
-#include "ns3/ptr.h"
-#include "ns3/simple-ref-count.h"
-#include "ns3/ccnx.h"
-
-namespace ns3 {
-
-class CcnxApp;
-
-class CcnxAppTracer : public SimpleRefCount<CcnxAppTracer>
-{
-public:
- CcnxAppTracer (const std::string &app, Ptr<Node> node, const std::string &appId = "*");
- CcnxAppTracer (const std::string &app, const std::string &node, const std::string &appId = "*");
- virtual ~CcnxAppTracer () { };
-
- void
- Connect ();
-
- virtual void
- PrintHeader (std::ostream &os) const = 0;
-
- virtual void
- Print (std::ostream &os) const = 0;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
-
-protected:
- std::string m_app;
- std::string m_appId;
- std::string m_node;
- Ptr<Node> m_nodePtr;
-};
-
-inline std::ostream&
-operator << (std::ostream &os, const CcnxAppTracer &tracer)
-{
- os << "# ";
- tracer.PrintHeader (os);
- os << "\n";
- tracer.Print (os);
- return os;
-}
-
-} // namespace ns3
-
-#endif // CCNX_APP_TRACER_H
diff --git a/helper/tracers/ccnx-consumer-window-tracer.cc b/helper/tracers/ccnx-consumer-window-tracer.cc
deleted file mode 100644
index eea664a..0000000
--- a/helper/tracers/ccnx-consumer-window-tracer.cc
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ccnx-consumer-window-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/callback.h"
-#include "ns3/names.h"
-#include "ns3/simulator.h"
-
-#include <boost/lexical_cast.hpp>
-
-using namespace std;
-using namespace boost;
-
-namespace ns3 {
-
-void
-CcnxConsumerWindowTracer::Connect ()
-{
- Config::Connect ("/NodeList/"+m_node+"/ApplicationList/"+m_appId+"/$ns3::CcnxConsumerWindow/WindowTrace",
- MakeCallback (&WindowTracer::OnWindowChange, this));
-}
-
-void
-TcpCongestionWindowTracer::Connect ()
-{
- Config::Connect ("/NodeList/"+m_node+"/$ns3::TcpL4Protocol/SocketList/*/CongestionWindow",
- MakeCallback (&WindowTracer::OnWindowChange, this));
-}
-
-
-WindowTracer::WindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId)
- : m_appId (appId)
- , m_nodePtr (node)
- , m_os (os)
-{
- m_node = boost::lexical_cast<string> (m_nodePtr->GetId ());
-
- string name = Names::FindName (node);
- if (!name.empty ())
- {
- m_nodeName = name;
- }
- else
- m_nodeName = m_node;
-}
-
-
-void
-WindowTracer::PrintHeader (std::ostream &os)
-{
- os << "Time\t"
- << "Node\t"
- << "AppId\t"
- << "Window";
-}
-
-void
-WindowTracer::OnWindowChange (std::string context,
- uint32_t oldValue, uint32_t newValue)
-{
- m_os
- << Simulator::Now ().ToDouble (Time::S) << "\t"
- << m_nodeName << "\t"
- << m_appId << "\t"
- << newValue << endl;
-}
-
-} // namespace ns3
diff --git a/helper/tracers/ccnx-consumer-window-tracer.h b/helper/tracers/ccnx-consumer-window-tracer.h
deleted file mode 100644
index c538931..0000000
--- a/helper/tracers/ccnx-consumer-window-tracer.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2012 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef CCNX_CONSUMER_WINDOW_TRACER_H
-#define CCNX_CONSUMER_WINDOW_TRACER_H
-
-#include "ns3/ptr.h"
-#include "ns3/simple-ref-count.h"
-
-namespace ns3 {
-
-class Node;
-
-class WindowTracer : public SimpleRefCount<WindowTracer>
-{
-public:
- WindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*");
- virtual ~WindowTracer () { };
-
- static void
- PrintHeader (std::ostream &os);
-
- virtual void
- OnWindowChange (std::string context,
- uint32_t oldValue, uint32_t newValue);
-
-protected:
- std::string m_appId;
- std::string m_node;
- std::string m_nodeName;
- Ptr<Node> m_nodePtr;
- std::ostream& m_os;
-};
-
-class CcnxConsumerWindowTracer : public WindowTracer
-{
-public:
- CcnxConsumerWindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*")
- : WindowTracer (os, node, appId)
- { Connect (); }
-
- void
- Connect ();
-};
-
-class TcpCongestionWindowTracer : public WindowTracer
-{
-public:
- TcpCongestionWindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*")
- : WindowTracer (os, node, appId)
- { Connect (); }
-
- void
- Connect ();
-};
-
-
-} // namespace ns3
-
-#endif // CCNX_CONSUMER_WINDOW_TRACER_H
diff --git a/helper/tracers/ccnx-l3-tracer.cc b/helper/tracers/ccnx-l3-tracer.cc
deleted file mode 100644
index 415105b..0000000
--- a/helper/tracers/ccnx-l3-tracer.cc
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ccnx-l3-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/names.h"
-#include "ns3/callback.h"
-#include "ns3/ccnx-app.h"
-#include "ns3/ccnx-face.h"
-
-#include <boost/lexical_cast.hpp>
-
-#include "ns3/ccnx-interest-header.h"
-#include "ns3/ccnx-content-object-header.h"
-
-using namespace std;
-
-namespace ns3 {
-
-CcnxL3Tracer::CcnxL3Tracer (Ptr<Node> node)
-: m_nodePtr (node)
-{
- m_node = boost::lexical_cast<string> (m_nodePtr->GetId ());
-
- Connect ();
-
- string name = Names::FindName (node);
- if (!name.empty ())
- {
- m_node = name;
- }
-}
-
-CcnxL3Tracer::CcnxL3Tracer (const std::string &node)
-: m_node (node)
-{
- Connect ();
-}
-
-void
-CcnxL3Tracer::Connect ()
-{
- Config::Connect ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/ForwardingStrategy/OutInterests",
- MakeCallback (&CcnxL3Tracer::OutInterests, this));
- Config::Connect ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/InInterests",
- MakeCallback (&CcnxL3Tracer::InInterests, this));
- Config::Connect ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/DropInterests",
- MakeCallback (&CcnxL3Tracer::DropInterests, this));
-
- Config::Connect ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/OutNacks",
- MakeCallback (&CcnxL3Tracer::OutNacks, this));
- Config::Connect ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/InNacks",
- MakeCallback (&CcnxL3Tracer::InNacks, this));
- Config::Connect ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/DropNacks",
- MakeCallback (&CcnxL3Tracer::DropNacks, this));
-
- Config::Connect ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/OutData",
- MakeCallback (&CcnxL3Tracer::OutData, this));
- Config::Connect ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/InData",
- MakeCallback (&CcnxL3Tracer::InData, this));
- Config::Connect ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/DropData",
- MakeCallback (&CcnxL3Tracer::DropData, this));
-}
-
-} // namespace ns3
diff --git a/helper/tracers/ccnx-l3-tracer.h b/helper/tracers/ccnx-l3-tracer.h
deleted file mode 100644
index ac21cef..0000000
--- a/helper/tracers/ccnx-l3-tracer.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef CCNX_L3_TRACER_H
-#define CCNX_L3_TRACER_H
-
-#include "ns3/ptr.h"
-#include "ns3/simple-ref-count.h"
-#include "ns3/ccnx.h"
-
-namespace ns3 {
-
-class Node;
-
-class CcnxL3Tracer : public SimpleRefCount<CcnxL3Tracer>
-{
-public:
- CcnxL3Tracer (Ptr<Node> node);
- CcnxL3Tracer (const std::string &node);
- virtual ~CcnxL3Tracer () { };
-
- void
- Connect ();
-
- virtual void
- PrintHeader (std::ostream &os) const = 0;
-
- virtual void
- Print (std::ostream &os) const = 0;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
-
- virtual void
- DropInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
-
- virtual void
- OutNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
-
- virtual void
- DropNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
-
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>) = 0;
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<const CcnxFace>) = 0;
-
- virtual void
- DropData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
-
-protected:
- std::string m_node;
- Ptr<Node> m_nodePtr;
-
- struct Stats
- {
- void Reset ();
-
- uint64_t m_inInterests;
- uint64_t m_outInterests;
- uint64_t m_dropInterests;
- uint64_t m_inNacks;
- uint64_t m_outNacks;
- uint64_t m_dropNacks;
- uint64_t m_inData;
- uint64_t m_outData;
- uint64_t m_dropData;
- };
-};
-
-inline std::ostream&
-operator << (std::ostream &os, const CcnxL3Tracer &tracer)
-{
- os << "# ";
- tracer.PrintHeader (os);
- os << "\n";
- tracer.Print (os);
- return os;
-}
-
-} // namespace ns3
-
-#endif // CCNX_L3_TRACER_H
diff --git a/helper/tracers/ccnx-path-weight-tracer.cc b/helper/tracers/ccnx-path-weight-tracer.cc
deleted file mode 100644
index b2685bd..0000000
--- a/helper/tracers/ccnx-path-weight-tracer.cc
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ccnx-path-weight-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/names.h"
-#include "ns3/callback.h"
-#include "ns3/ccnx-app.h"
-#include "ns3/ccnx-face.h"
-#include "ns3/boolean.h"
-#include "ns3/simulator.h"
-
-#include <boost/lexical_cast.hpp>
-#include <boost/foreach.hpp>
-
-using namespace std;
-
-namespace ns3 {
-
-CcnxPathWeightTracer::CcnxPathWeightTracer (std::ostream &os, Ptr<Node> node)
- : m_os (os)
- , m_nodePtr (node)
-{
- m_node = boost::lexical_cast<string> (m_nodePtr->GetId ());
-
- Connect ();
-
- string name = Names::FindName (node);
- if (!name.empty ())
- {
- m_node = name;
- }
-}
-
-void
-CcnxPathWeightTracer::Connect ()
-{
- Config::Set ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/FaceList/*/MetricTagging",
- BooleanValue (true));
-
- Config::Connect ("/NodeList/"+m_node+"/ApplicationList/*/PathWeightsTrace",
- MakeCallback (&CcnxPathWeightTracer::InLocalFace, this));
-}
-
-void
-CcnxPathWeightTracer::PrintHeader (std::ostream &os)
-{
- os << "Time\t"
- << "Src\t"
- << "Dst\t"
- << "SeqNo\t"
- << "Weight";
-}
-
-void
-CcnxPathWeightTracer::InLocalFace (std::string context,
- Ptr<Node> src, Ptr<Node> dst, uint32_t seqno, uint32_t weight)
-{
- std::string srcName = Names::FindName (src);
- std::string dstName = Names::FindName (dst);
- if (srcName == "") srcName = boost::lexical_cast<std::string> (src->GetId ());
- if (dstName == "") srcName = boost::lexical_cast<std::string> (dst->GetId ());
- // std::cout << "Path weights from " << Names::FindName (src) << " to "<< Names::FindName (dst) <<" : " << weight << "\n";
-
- m_os << Simulator::Now ().ToDouble (Time::S) << "\t"
- << srcName << "\t"
- << dstName << "\t"
- << seqno << "\t"
- << weight << "\n";
-}
-
-} // namespace ns3
diff --git a/helper/tracers/ccnx-path-weight-tracer.h b/helper/tracers/ccnx-path-weight-tracer.h
deleted file mode 100644
index 303197d..0000000
--- a/helper/tracers/ccnx-path-weight-tracer.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef CCNX_PATH_WEIGHT_TRACER_H
-#define CCNX_PATH_WEIGHT_TRACER_H
-
-#include "ns3/ptr.h"
-#include "ns3/simple-ref-count.h"
-#include "ns3/weights-path-stretch-tag.h"
-#include <list>
-
-namespace ns3 {
-
-class Node;
-class Packet;
-class CcnxApp;
-
-class CcnxPathWeightTracer : public SimpleRefCount<CcnxPathWeightTracer>
-{
-public:
- CcnxPathWeightTracer (std::ostream &os, Ptr<Node> node);
- virtual ~CcnxPathWeightTracer () { };
-
- void
- Connect ();
-
- static void
- PrintHeader (std::ostream &os);
-
- /**
- * \brief Process packet weight upon reception of packet on a local face
- */
- virtual void
- InLocalFace (std::string context,
- Ptr<Node> src, Ptr<Node> dst, uint32_t seqno, uint32_t weight);
-
-protected:
- std::ostream &m_os;
- std::string m_node;
- Ptr<Node> m_nodePtr;
-};
-
-} // namespace ns3
-
-#endif // CCNX_PATH_WEIGHT_TRACER_H
diff --git a/helper/tracers/ccnx-rate-l3-tracer.cc b/helper/tracers/ccnx-rate-l3-tracer.cc
deleted file mode 100644
index d44ce44..0000000
--- a/helper/tracers/ccnx-rate-l3-tracer.cc
+++ /dev/null
@@ -1,213 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ccnx-rate-l3-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/callback.h"
-#include "ns3/simulator.h"
-
-#include "ns3/ccnx-app.h"
-#include "ns3/ccnx-face.h"
-#include "ns3/ccnx-interest-header.h"
-#include "ns3/ccnx-content-object-header.h"
-
-namespace ns3 {
-
-CcnxRateL3Tracer::CcnxRateL3Tracer (std::ostream &os, Ptr<Node> node)
- : CcnxL3Tracer (node)
- , m_os (os)
-{
- SetAveragingPeriod (Seconds (1.0));
-}
-
-CcnxRateL3Tracer::CcnxRateL3Tracer (std::ostream &os, const std::string &node)
- : CcnxL3Tracer (node)
- , m_os (os)
-{
- SetAveragingPeriod (Seconds (1.0));
-}
-
-CcnxRateL3Tracer::~CcnxRateL3Tracer ()
-{
- m_printEvent.Cancel ();
-}
-
-void
-CcnxRateL3Tracer::SetAveragingPeriod (const Time &period)
-{
- m_period = period;
- m_printEvent.Cancel ();
- m_printEvent = Simulator::Schedule (m_period, &CcnxRateL3Tracer::PeriodicPrinter, this);
-}
-
-void
-CcnxRateL3Tracer::PeriodicPrinter ()
-{
- Print (m_os);
- Reset ();
-
- m_printEvent = Simulator::Schedule (m_period, &CcnxRateL3Tracer::PeriodicPrinter, this);
-}
-
-void
-CcnxRateL3Tracer::PrintHeader (std::ostream &os) const
-{
- os << "Time" << "\t"
-
- << "Node" << "\t"
- << "FaceId" << "\t"
- << "FaceDescr" << "\t"
-
- << "Type" << "\t"
- << "Packets" << "\t"
- << "Kilobytes";
-}
-
-void
-CcnxRateL3Tracer::Reset ()
-{
- for (std::map<Ptr<const CcnxFace>, boost::tuple<Stats, Stats, Stats, Stats> >::iterator stats = m_stats.begin ();
- stats != m_stats.end ();
- stats++)
- {
- stats->second.get<0> ().Reset ();
- stats->second.get<1> ().Reset ();
- }
-}
-
-const double alpha = 0.8;
-
-#define STATS(INDEX) stats->second.get<INDEX> ()
-#define RATE(INDEX, fieldName) STATS(INDEX).fieldName / m_period.ToDouble (Time::S)
-
-#define PRINTER(printName, fieldName) \
-STATS(2).fieldName = /*new value*/alpha * RATE(0, fieldName) + /*old value*/(1-alpha) * STATS(2).fieldName; \
- STATS(3).fieldName = /*new value*/alpha * RATE(1, fieldName) / 1024.0 + /*old value*/(1-alpha) * STATS(3).fieldName; \
- \
-os << time.ToDouble (Time::S) << "\t" \
- << m_node << "\t" \
- << stats->first->GetId () << "\t" \
- << *stats->first << "\t" \
- << printName << "\t" \
- << STATS(2).fieldName << "\t" \
- << STATS(3).fieldName << "\n";
-
-void
-CcnxRateL3Tracer::Print (std::ostream &os) const
-{
- for (std::map<Ptr<const CcnxFace>, boost::tuple<Stats, Stats, Stats, Stats> >::iterator stats = m_stats.begin ();
- stats != m_stats.end ();
- stats++)
- {
- Time time = Simulator::Now ();
-
- PRINTER ("InInterests", m_inInterests);
- PRINTER ("OutInterests", m_outInterests);
- PRINTER ("DropInterests", m_dropInterests);
-
- PRINTER ("InNacks", m_inNacks);
- PRINTER ("OutNacks", m_outNacks);
- PRINTER ("DropNacks", m_dropNacks);
-
- PRINTER ("InData", m_inData);
- PRINTER ("OutData", m_outData);
- PRINTER ("DropData", m_dropData);
- }
-}
-
-
-void
-CcnxRateL3Tracer::OutInterests (std::string context,
- Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace> face)
-{
- m_stats[face].get<0> ().m_outInterests ++;
- m_stats[face].get<1> ().m_outInterests += header->GetSerializedSize ();
-}
-
-void
-CcnxRateL3Tracer::InInterests (std::string context,
- Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace> face)
-{
- m_stats[face].get<0> ().m_inInterests ++;
- m_stats[face].get<1> ().m_inInterests += header->GetSerializedSize ();
-}
-
-void
-CcnxRateL3Tracer::DropInterests (std::string context,
- Ptr<const CcnxInterestHeader> header, Ccnx::DropReason, Ptr<const CcnxFace> face)
-{
- m_stats[face].get<0> ().m_dropInterests ++;
- m_stats[face].get<1> ().m_dropInterests += header->GetSerializedSize ();
-}
-
-void
-CcnxRateL3Tracer::OutNacks (std::string context,
- Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace> face)
-{
- m_stats[face].get<0> ().m_outNacks ++;
- m_stats[face].get<1> ().m_outNacks += header->GetSerializedSize ();
-}
-
-void
-CcnxRateL3Tracer::InNacks (std::string context,
- Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace> face)
-{
- m_stats[face].get<0> ().m_inNacks ++;
- m_stats[face].get<1> ().m_inNacks += header->GetSerializedSize ();
-}
-
-void
-CcnxRateL3Tracer::DropNacks (std::string context,
- Ptr<const CcnxInterestHeader> header, Ccnx::DropReason, Ptr<const CcnxFace> face)
-{
- m_stats[face].get<0> ().m_dropNacks ++;
- m_stats[face].get<1> ().m_dropNacks += header->GetSerializedSize ();
-}
-
-void
-CcnxRateL3Tracer::OutData (std::string context,
- Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
- bool fromCache, Ptr<const CcnxFace> face)
-{
- m_stats[face].get<0> ().m_inData ++;
- m_stats[face].get<1> ().m_inData += header->GetSerializedSize () + payload->GetSize ();
-}
-
-void
-CcnxRateL3Tracer::InData (std::string context,
- Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
- Ptr<const CcnxFace> face)
-{
- m_stats[face].get<0> ().m_outData ++;
- m_stats[face].get<1> ().m_outData += header->GetSerializedSize () + payload->GetSize ();
-}
-
-void
-CcnxRateL3Tracer::DropData (std::string context,
- Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
- Ccnx::DropReason, Ptr<const CcnxFace> face)
-{
- m_stats[face].get<0> ().m_dropData ++;
- m_stats[face].get<1> ().m_dropData += header->GetSerializedSize () + payload->GetSize ();
-}
-
-} // namespace ns3
diff --git a/helper/tracers/ccnx-rate-l3-tracer.h b/helper/tracers/ccnx-rate-l3-tracer.h
deleted file mode 100644
index 83e48c4..0000000
--- a/helper/tracers/ccnx-rate-l3-tracer.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef CCNX_RATE_L3_TRACER_H
-#define CCNX_RATE_L3_TRACER_H
-
-#include "ns3/ccnx-l3-tracer.h"
-
-#include "ns3/nstime.h"
-#include "ns3/event-id.h"
-
-#include <boost/tuple/tuple.hpp>
-#include <map>
-
-namespace ns3 {
-
-/**
- * @ingroup ccnx
- * @brief CCNx network-layer rate tracer
- */
-class CcnxRateL3Tracer : public CcnxL3Tracer
-{
-public:
- /**
- * @brief Network layer tracer constructor
- */
- CcnxRateL3Tracer (std::ostream &os, Ptr<Node> node);
- CcnxRateL3Tracer (std::ostream &os, const std::string &node);
- virtual ~CcnxRateL3Tracer ();
-
- void
- SetAveragingPeriod (const Time &period);
-
- virtual void
- PrintHeader (std::ostream &os) const;
-
- virtual void
- Print (std::ostream &os) const;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- DropInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
- virtual void
- OutNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- DropNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>);
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<const CcnxFace>);
-
- virtual void
- DropData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
-private:
- void
- PeriodicPrinter ();
-
- void
- Reset ();
-
-private:
- std::ostream& m_os;
- Time m_period;
- EventId m_printEvent;
-
- mutable std::map<Ptr<const CcnxFace>, boost::tuple<Stats, Stats, Stats, Stats> > m_stats;
-};
-
-} // namespace ns3
-
-#endif // CCNX_RATE_L3_TRACER_H
diff --git a/helper/tracers/ccnx-seqs-app-tracer.cc b/helper/tracers/ccnx-seqs-app-tracer.cc
deleted file mode 100644
index 5ea636e..0000000
--- a/helper/tracers/ccnx-seqs-app-tracer.cc
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ccnx-seqs-app-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/callback.h"
-#include "ns3/simulator.h"
-
-#include "ns3/ccnx-app.h"
-#include "ns3/ccnx-face.h"
-#include "ns3/ccnx-interest-header.h"
-#include "ns3/ccnx-content-object-header.h"
-
-namespace ns3 {
-
-CcnxSeqsAppTracer::CcnxSeqsAppTracer (std::ostream &os, const std::string &app, Ptr<Node> node, const std::string &appId)
- : CcnxAppTracer (app, node, appId)
- , m_os (os)
-{
-}
-
-CcnxSeqsAppTracer::CcnxSeqsAppTracer (std::ostream &os, const std::string &app, const std::string &node, const std::string &appId)
- : CcnxAppTracer (app, node, appId)
- , m_os (os)
-{
-}
-
-void
-CcnxSeqsAppTracer::Reset ()
-{
-}
-
-void
-CcnxSeqsAppTracer::PrintHeader (std::ostream &os) const
-{
- os << "Time\t"
- << "Node\t"
- << "AppName\t"
- << "AppId\t"
- << "Type\t"
- << "SeqNo";
-}
-
-void
-CcnxSeqsAppTracer::Print (std::ostream &os) const
-{
-}
-
-#define PRINTER(type) \
- m_os \
- << Simulator::Now ().ToDouble (Time::S) << "\t" \
- << m_node << "\t" \
- << m_app << "\t" \
- << m_appId << "\t" \
- << type << "\t" \
- << header->GetName ().GetLastComponent () << std::endl;
-
-void
-CcnxSeqsAppTracer::OutInterests (std::string context,
- Ptr<const CcnxInterestHeader> header, Ptr<CcnxApp>, Ptr<CcnxFace>)
-{
- PRINTER ("OutInterest");
-}
-
-void
-CcnxSeqsAppTracer::OutData (std::string context,
- Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet>,
- Ptr<CcnxApp>, Ptr<CcnxFace>)
-{
- PRINTER ("OutData");
-}
-
-void
-CcnxSeqsAppTracer::InInterests (std::string context,
- Ptr<const CcnxInterestHeader> header,
- Ptr<CcnxApp>, Ptr<CcnxFace>)
-{
- PRINTER ("InInterest");
-}
-
-void
-CcnxSeqsAppTracer::InNacks (std::string context,
- Ptr<const CcnxInterestHeader> header,
- Ptr<CcnxApp>, Ptr<CcnxFace>)
-{
- PRINTER ("InNacks");
-}
-
-void
-CcnxSeqsAppTracer::InData (std::string context,
- Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet>,
- Ptr<CcnxApp>, Ptr<CcnxFace>)
-{
- PRINTER ("InData");
-}
-
-} // namespace ns3
diff --git a/helper/tracers/ccnx-seqs-app-tracer.h b/helper/tracers/ccnx-seqs-app-tracer.h
deleted file mode 100644
index b0fd618..0000000
--- a/helper/tracers/ccnx-seqs-app-tracer.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef CCNX_SEQS_APP_TRACER_H
-#define CCNX_SEQS_APP_TRACER_H
-
-#include "ns3/ccnx-app-tracer.h"
-
-namespace ns3 {
-
-class CcnxSeqsAppTracer : public CcnxAppTracer
-{
-public:
- CcnxSeqsAppTracer (std::ostream &os, const std::string &app, Ptr<Node> node, const std::string &appId = "*");
- CcnxSeqsAppTracer (std::ostream &os, const std::string &app, const std::string &node, const std::string &appId = "*");
- virtual ~CcnxSeqsAppTracer () { };
-
- virtual void
- PrintHeader (std::ostream &os) const;
-
- virtual void
- Print (std::ostream &os) const;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
-protected:
- void
- Reset ();
-
-protected:
- std::ostream& m_os;
-};
-
-} // namespace ns3
-
-#endif // CCNX_AGGREGATE_APP_TRACER_H
diff --git a/helper/tracers/ipv4-app-tracer.cc b/helper/tracers/ipv4-app-tracer.cc
deleted file mode 100644
index 57fb612..0000000
--- a/helper/tracers/ipv4-app-tracer.cc
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2012 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ipv4-app-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/callback.h"
-#include "ns3/names.h"
-
-#include <boost/lexical_cast.hpp>
-
-using namespace std;
-using namespace boost;
-
-namespace ns3 {
-
-Ipv4AppTracer::Ipv4AppTracer (Ptr<Node> node, const std::string &appId)
- : m_appId (appId)
- , m_nodePtr (node)
-{
- m_node = boost::lexical_cast<string> (m_nodePtr->GetId ());
-
- Connect ();
-
- string name = Names::FindName (node);
- if (!name.empty ())
- {
- m_node = name;
- }
-}
-
-void
-Ipv4AppTracer::Connect ()
-{
- Config::Connect ("/NodeList/"+m_node+"/$ns3::Ipv4L3Protocol/SendOutgoing",
- MakeCallback (&Ipv4AppTracer::Tx, this));
-
- Config::Connect ("/NodeList/"+m_node+"/$ns3::Ipv4L3Protocol/LocalDeliver",
- MakeCallback (&Ipv4AppTracer::Rx, this));
-
- // Config::Connect ("/NodeList/"+m_node+"/$ns3::Ipv4L3Protocol/Tx",
- // MakeCallback (&Ipv4AppTracer::Rx, this));
-
- // Config::Connect ("/NodeList/"+m_node+"/ApplicationList/"+m_appId+"/$ns3::PacketSink/Rx",
- // MakeCallback (&Ipv4AppTracer::InData, this));
-
- // Config::Connect ("/NodeList/"+m_node+"/ApplicationList/"+m_appId+"/$ns3::BulkSendApplication/Tx",
- // MakeCallback (&Ipv4AppTracer::OutData, this));
-}
-
-
-} // namespace ns3
diff --git a/helper/tracers/ipv4-app-tracer.h b/helper/tracers/ipv4-app-tracer.h
deleted file mode 100644
index f24c6c3..0000000
--- a/helper/tracers/ipv4-app-tracer.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2012 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef IPV4_APP_TRACER_H
-#define IPV4_APP_TRACER_H
-
-#include "ns3/ptr.h"
-#include "ns3/simple-ref-count.h"
-#include "ns3/ipv4.h"
-
-namespace ns3 {
-
-class Ipv4Header;
-
-class Ipv4AppTracer : public SimpleRefCount<Ipv4AppTracer>
-{
-public:
- Ipv4AppTracer (Ptr<Node> node, const std::string &appId = "*");
- virtual ~Ipv4AppTracer () { };
-
- void
- Connect ();
-
- virtual void
- PrintHeader (std::ostream &os) const = 0;
-
- virtual void
- Print (std::ostream &os) const = 0;
-
- virtual void
- Rx (std::string context,
- const Ipv4Header &, Ptr<const Packet>, uint32_t) = 0;
-
- virtual void
- Tx (std::string context,
- const Ipv4Header &, Ptr<const Packet>, uint32_t) = 0;
-
-protected:
- std::string m_app;
- std::string m_appId;
- std::string m_node;
- Ptr<Node> m_nodePtr;
-};
-
-inline std::ostream&
-operator << (std::ostream &os, const Ipv4AppTracer &tracer)
-{
- os << "# ";
- tracer.PrintHeader (os);
- os << "\n";
- tracer.Print (os);
- return os;
-}
-
-} // namespace ns3
-
-#endif // IPV4_APP_TRACER_H
diff --git a/helper/tracers/ipv4-l3-tracer.cc b/helper/tracers/ipv4-l3-tracer.cc
deleted file mode 100644
index ed2cb9c..0000000
--- a/helper/tracers/ipv4-l3-tracer.cc
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ipv4-l3-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/names.h"
-#include "ns3/callback.h"
-#include "ns3/ccnx-app.h"
-#include "ns3/ccnx-face.h"
-
-#include <boost/lexical_cast.hpp>
-
-using namespace std;
-
-namespace ns3 {
-
-Ipv4L3Tracer::Ipv4L3Tracer (Ptr<Node> node)
-: m_nodePtr (node)
-{
- m_node = boost::lexical_cast<string> (m_nodePtr->GetId ());
-
- Connect ();
-
- string name = Names::FindName (node);
- if (!name.empty ())
- {
- m_node = name;
- }
-}
-
-void
-Ipv4L3Tracer::Connect ()
-{
- Config::Connect ("/NodeList/"+m_node+"/$ns3::Ipv4L3Protocol/Tx",
- MakeCallback (&Ipv4L3Tracer::Tx, this));
- Config::Connect ("/NodeList/"+m_node+"/$ns3::Ipv4L3Protocol/Rx",
- MakeCallback (&Ipv4L3Tracer::Rx, this));
- Config::Connect ("/NodeList/"+m_node+"/$ns3::Ipv4L3Protocol/Drop",
- MakeCallback (&Ipv4L3Tracer::Drop, this));
-}
-
-} // namespace ns3
diff --git a/helper/tracers/ipv4-l3-tracer.h b/helper/tracers/ipv4-l3-tracer.h
deleted file mode 100644
index e5f3c74..0000000
--- a/helper/tracers/ipv4-l3-tracer.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef IPV4_L3_TRACER_H
-#define IPV4_L3_TRACER_H
-
-#include "ns3/ptr.h"
-#include "ns3/simple-ref-count.h"
-#include "ns3/ipv4-l3-protocol.h"
-
-namespace ns3 {
-
-class Node;
-
-class Ipv4L3Tracer : public SimpleRefCount<Ipv4L3Tracer>
-{
-public:
- Ipv4L3Tracer (Ptr<Node> node);
- virtual ~Ipv4L3Tracer () { };
-
- void
- Connect ();
-
- virtual void
- PrintHeader (std::ostream &os) const = 0;
-
- virtual void
- Print (std::ostream &os) const = 0;
-
- virtual void
- Rx (std::string context,
- Ptr<const Packet>, Ptr<Ipv4>, uint32_t) = 0;
-
- virtual void
- Tx (std::string context,
- Ptr<const Packet>, Ptr<Ipv4>, uint32_t) = 0;
-
- virtual void
- Drop (std::string context,
- const Ipv4Header &, Ptr<const Packet>, Ipv4L3Protocol::DropReason, Ptr<Ipv4>, uint32_t) = 0;
-
-protected:
- std::string m_node;
- Ptr<Node> m_nodePtr;
-
- struct Stats
- {
- void Reset ()
- {
- m_in = 0;
- m_out = 0;
- m_drop = 0;
- }
-
- uint64_t m_in;
- uint64_t m_out;
- uint64_t m_drop;
- };
-};
-
-inline std::ostream&
-operator << (std::ostream &os, const Ipv4L3Tracer &tracer)
-{
- os << "# ";
- tracer.PrintHeader (os);
- os << "\n";
- tracer.Print (os);
- return os;
-}
-
-} // namespace ns3
-
-#endif // IPV4_L3_TRACER_H
diff --git a/helper/tracers/ipv4-rate-l3-tracer.cc b/helper/tracers/ipv4-rate-l3-tracer.cc
deleted file mode 100644
index e97ba18..0000000
--- a/helper/tracers/ipv4-rate-l3-tracer.cc
+++ /dev/null
@@ -1,142 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ipv4-rate-l3-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/callback.h"
-#include "ns3/simulator.h"
-
-#include "ns3/ipv4-header.h"
-
-namespace ns3 {
-
-Ipv4RateL3Tracer::Ipv4RateL3Tracer (std::ostream &os, Ptr<Node> node)
- : Ipv4L3Tracer (node)
- , m_os (os)
-{
- SetAveragingPeriod (Seconds (1.0));
-}
-
-Ipv4RateL3Tracer::~Ipv4RateL3Tracer ()
-{
- m_printEvent.Cancel ();
-}
-
-void
-Ipv4RateL3Tracer::SetAveragingPeriod (const Time &period)
-{
- m_period = period;
- m_printEvent.Cancel ();
- m_printEvent = Simulator::Schedule (m_period, &Ipv4RateL3Tracer::PeriodicPrinter, this);
-}
-
-void
-Ipv4RateL3Tracer::PeriodicPrinter ()
-{
- Print (m_os);
- Reset ();
-
- m_printEvent = Simulator::Schedule (m_period, &Ipv4RateL3Tracer::PeriodicPrinter, this);
-}
-
-void
-Ipv4RateL3Tracer::PrintHeader (std::ostream &os) const
-{
- os << "Time" << "\t"
-
- << "Node" << "\t"
- << "Interface" << "\t"
-
- << "Type" << "\t"
- << "Packets" << "\t"
- << "Kilobytes";
-}
-
-void
-Ipv4RateL3Tracer::Reset ()
-{
- for (std::map<uint32_t, boost::tuple<Stats, Stats, Stats, Stats> >::iterator stats = m_stats.begin ();
- stats != m_stats.end ();
- stats++)
- {
- stats->second.get<0> ().Reset ();
- stats->second.get<1> ().Reset ();
- }
-}
-
-const double alpha = 0.8;
-
-#define STATS(INDEX) stats->second.get<INDEX> ()
-#define RATE(INDEX, fieldName) STATS(INDEX).fieldName / m_period.ToDouble (Time::S)
-
-#define PRINTER(printName, fieldName) \
-STATS(2).fieldName = /*new value*/alpha * RATE(0, fieldName) + /*old value*/(1-alpha) * STATS(2).fieldName; \
-STATS(3).fieldName = /*new value*/alpha * RATE(1, fieldName) / 1024.0 + /*old value*/(1-alpha) * STATS(3).fieldName; \
- \
-os << time.ToDouble (Time::S) << "\t" \
- << m_node << "\t" \
- << stats->first << "\t" \
- << printName << "\t" \
- << STATS(2).fieldName << "\t" \
- << STATS(3).fieldName << "\n";
-
-void
-Ipv4RateL3Tracer::Print (std::ostream &os) const
-{
- for (std::map<uint32_t, boost::tuple<Stats, Stats, Stats, Stats> >::iterator stats = m_stats.begin ();
- stats != m_stats.end ();
- stats++)
- {
- Time time = Simulator::Now ();
-
- PRINTER ("In", m_in);
- PRINTER ("Out", m_out);
- PRINTER ("Drop", m_drop);
- }
-}
-
-void
-Ipv4RateL3Tracer::Rx (std::string context,
- Ptr<const Packet> packet, Ptr<Ipv4> ipv4, uint32_t iface)
-{
- m_stats[iface].get<0> ().m_in ++;
- m_stats[iface].get<1> ().m_in += packet->GetSize ();
-}
-
-void
-Ipv4RateL3Tracer::Tx (std::string context,
- Ptr<const Packet> packet, Ptr<Ipv4> ipv4, uint32_t iface)
-{
- m_stats[iface].get<0> ().m_out ++;
- m_stats[iface].get<1> ().m_out += packet->GetSize ();
-}
-
-void
-Ipv4RateL3Tracer::Drop (std::string context,
- const Ipv4Header &header, Ptr<const Packet> packet, Ipv4L3Protocol::DropReason, Ptr<Ipv4> ipv4, uint32_t iface)
-{
- m_stats[iface].get<0> ().m_drop ++;
- m_stats[iface].get<1> ().m_drop += packet->GetSize ();
-}
-
-
-} // namespace ns3
diff --git a/helper/tracers/ipv4-rate-l3-tracer.h b/helper/tracers/ipv4-rate-l3-tracer.h
deleted file mode 100644
index 454ac14..0000000
--- a/helper/tracers/ipv4-rate-l3-tracer.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef IPV4_RATE_L3_TRACER_H
-#define IPV4_RATE_L3_TRACER_H
-
-#include "ipv4-l3-tracer.h"
-
-#include "ns3/nstime.h"
-#include "ns3/event-id.h"
-
-#include <boost/tuple/tuple.hpp>
-#include <map>
-
-namespace ns3 {
-
-/**
- * @ingroup ccnx
- * @brief CCNx network-layer rate tracer
- */
-class Ipv4RateL3Tracer : public Ipv4L3Tracer
-{
-public:
- /**
- * @brief Network layer tracer constructor
- */
- Ipv4RateL3Tracer (std::ostream &os, Ptr<Node> node);
- virtual ~Ipv4RateL3Tracer ();
-
- void
- SetAveragingPeriod (const Time &period);
-
- virtual void
- PrintHeader (std::ostream &os) const;
-
- virtual void
- Print (std::ostream &os) const;
-
- virtual void
- Rx (std::string context,
- Ptr<const Packet>, Ptr<Ipv4>, uint32_t);
-
- virtual void
- Tx (std::string context,
- Ptr<const Packet>, Ptr<Ipv4>, uint32_t);
-
- virtual void
- Drop (std::string context,
- const Ipv4Header &, Ptr<const Packet>, Ipv4L3Protocol::DropReason, Ptr<Ipv4>, uint32_t);
-
-private:
- void
- PeriodicPrinter ();
-
- void
- Reset ();
-
-private:
- std::ostream& m_os;
- Time m_period;
- EventId m_printEvent;
-
- mutable std::map<uint32_t, boost::tuple<Stats, Stats, Stats, Stats> > m_stats;
-};
-
-} // namespace ns3
-
-#endif // IPV4_RATE_L3_TRACER_H
diff --git a/helper/tracers/ipv4-seqs-app-tracer.cc b/helper/tracers/ipv4-seqs-app-tracer.cc
deleted file mode 100644
index 3147ed0..0000000
--- a/helper/tracers/ipv4-seqs-app-tracer.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#include "ipv4-seqs-app-tracer.h"
-#include "ns3/node.h"
-#include "ns3/packet.h"
-#include "ns3/config.h"
-#include "ns3/callback.h"
-#include "ns3/simulator.h"
-
-#include "ns3/tcp-l4-protocol.h"
-#include "ns3/tcp-header.h"
-#include "ns3/ipv4-header.h"
-
-namespace ns3 {
-
-Ipv4SeqsAppTracer::Ipv4SeqsAppTracer (std::ostream &os, Ptr<Node> node, const std::string &appId)
- : Ipv4AppTracer (node, appId)
- , m_os (os)
-{
-}
-
-void
-Ipv4SeqsAppTracer::Reset ()
-{
-}
-
-void
-Ipv4SeqsAppTracer::PrintHeader (std::ostream &os) const
-{
- os << "Time\t"
- << "Node\t"
- << "AppName\t"
- << "AppId\t"
- << "Type\t"
- << "SeqNo";
-}
-
-void
-Ipv4SeqsAppTracer::Print (std::ostream &os) const
-{
-}
-
-#define PRINTER(type,size) \
- m_os \
- << Simulator::Now ().ToDouble (Time::S) << "\t" \
- << m_node << "\t" \
- << m_app << "\t" \
- << m_appId << "\t" \
- << type << "\t" \
- << size / 1040.0 << std::endl;
-
-void
-Ipv4SeqsAppTracer::Tx (std::string context,
- const Ipv4Header &ip, Ptr<const Packet>, uint32_t)
-{
- if (ip.GetProtocol () != TcpL4Protocol::PROT_NUMBER) return;
-}
-
-void
-Ipv4SeqsAppTracer::Rx (std::string context,
- const Ipv4Header &ip, Ptr<const Packet> pktOrig, uint32_t)
-{
- if (ip.GetProtocol () != TcpL4Protocol::PROT_NUMBER) return;
-
- TcpHeader tcp;
- Ptr<Packet> packet = pktOrig->Copy ();
- packet->RemoveHeader (tcp);
-
- if (tcp.GetFlags () | TcpHeader::ACK)
- {
- PRINTER("InAck", tcp.GetAckNumber ().GetValue ());
- }
-}
-
-
-// void
-// Ipv4SeqsAppTracer::InData (std::string context,
-// Ptr<const Packet> packet, const Address &address)
-// {
-// PRINTER ("InData", m_inSeq);
-// m_inSeq += packet->GetSize ();
-// }
-
-// void
-// Ipv4SeqsAppTracer::OutData (std::string context,
-// Ptr<const Packet> packet)
-// {
-// PRINTER ("OutData", m_outSeq);
-// m_outSeq += packet->GetSize ();
-// }
-
-} // namespace ns3
diff --git a/helper/tracers/ipv4-seqs-app-tracer.h b/helper/tracers/ipv4-seqs-app-tracer.h
deleted file mode 100644
index 4805968..0000000
--- a/helper/tracers/ipv4-seqs-app-tracer.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 UCLA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef IPV4_SEQS_APP_TRACER_H
-#define IPV4_SEQS_APP_TRACER_H
-
-#include "ns3/ipv4-app-tracer.h"
-
-namespace ns3 {
-
-class Ipv4SeqsAppTracer : public Ipv4AppTracer
-{
-public:
- Ipv4SeqsAppTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*");
- virtual ~Ipv4SeqsAppTracer () { };
-
- virtual void
- PrintHeader (std::ostream &os) const;
-
- virtual void
- Print (std::ostream &os) const;
-
- virtual void
- Rx (std::string context,
- const Ipv4Header &, Ptr<const Packet>, uint32_t);
-
- virtual void
- Tx (std::string context,
- const Ipv4Header &, Ptr<const Packet>, uint32_t);
-
-protected:
- void
- Reset ();
-
-protected:
- std::ostream& m_os;
-};
-
-} // namespace ns3
-
-#endif // IPV4_AGGREGATE_APP_TRACER_H