NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.0: NDN, CCN, CCNx, content centric networks
API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ndn-l3-rate-tracer.cpp File Reference
#include "ndn-l3-rate-tracer.hpp"
#include "ns3/node.h"
#include "ns3/packet.h"
#include "ns3/config.h"
#include "ns3/callback.h"
#include "ns3/simulator.h"
#include "ns3/log.h"
#include "ns3/node-list.h"
#include "daemon/table/pit-entry.hpp"
#include <fstream>
#include <boost/lexical_cast.hpp>
Include dependency graph for ndn-l3-rate-tracer.cpp:

Go to the source code of this file.

Namespaces

 ns3
 Copyright (c) 2011-2015 Regents of the University of California.
 
 ns3::ndn
 

Macros

#define STATS(INDEX)   std::get<INDEX>(stats.second)
 
#define RATE(INDEX, fieldName)   STATS(INDEX).fieldName / m_period.ToDouble(Time::S)
 
#define PRINTER(printName, fieldName)
 

Variables

ndn L3RateTracer
 Copyright (c) 2011-2015 Regents of the University of California. More...
 
static std::list< std::tuple
< shared_ptr< std::ostream >
, std::list< Ptr< L3RateTracer > > > > 
ns3::ndn::g_tracers
 
const double ns3::ndn::alpha = 0.8
 

Macro Definition Documentation

#define PRINTER (   printName,
  fieldName 
)
Value:
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"; \
if (stats.first != nullptr) { \
os << stats.first->getId() << "\t" << stats.first->getLocalUri() << "\t"; \
} \
else { \
os << "-1\tall\t"; \
} \
os << printName << "\t" << STATS(2).fieldName << "\t" << STATS(3).fieldName << "\t" \
<< STATS(0).fieldName << "\t" << STATS(1).fieldName / 1024.0 << "\n";
#define STATS(INDEX)
#define RATE(INDEX, fieldName)
const double alpha

Definition at line 242 of file ndn-l3-rate-tracer.cpp.

Referenced by ns3::ndn::L3RateTracer::Print().

#define RATE (   INDEX,
  fieldName 
)    STATS(INDEX).fieldName / m_period.ToDouble(Time::S)

Definition at line 240 of file ndn-l3-rate-tracer.cpp.

#define STATS (   INDEX)    std::get<INDEX>(stats.second)

Definition at line 239 of file ndn-l3-rate-tracer.cpp.

Variable Documentation

ndn L3RateTracer

Copyright (c) 2011-2015 Regents of the University of California.

This file is part of ndnSIM. See AUTHORS for complete list of ndnSIM authors and contributors.

ndnSIM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ndnSIM 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 ndnSIM, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

Definition at line 34 of file ndn-l3-rate-tracer.cpp.