NS-3 based Named Data Networking (NDN) simulator
ndnSIM: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
ipv4-l3-tracer.h
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
2
/*
3
* Copyright (c) 2011 UCLA
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
19
*/
20
21
#ifndef IPV4_L3_TRACER_H
22
#define IPV4_L3_TRACER_H
23
24
#include "ns3/ptr.h"
25
#include "ns3/simple-ref-count.h"
26
#include "ns3/ipv4-l3-protocol.h"
27
28
namespace
ns3 {
29
30
class
Node;
31
36
class
Ipv4L3Tracer
:
public
SimpleRefCount<Ipv4L3Tracer>
37
{
38
public
:
39
Ipv4L3Tracer
(Ptr<Node> node);
40
virtual
~
Ipv4L3Tracer
() { };
41
42
void
43
Connect ();
44
45
virtual
void
46
PrintHeader (std::ostream &os)
const
= 0;
47
48
virtual
void
49
Print (std::ostream &os)
const
= 0;
50
51
virtual
void
52
Rx (Ptr<const Packet>, Ptr<Ipv4>, uint32_t) = 0;
53
54
virtual
void
55
Tx (Ptr<const Packet>, Ptr<Ipv4>, uint32_t) = 0;
56
57
virtual
void
58
Drop (
const
Ipv4Header &, Ptr<const Packet>, Ipv4L3Protocol::DropReason, Ptr<Ipv4>, uint32_t) = 0;
59
60
protected
:
61
std::string m_node;
62
Ptr<Node> m_nodePtr;
63
64
struct
Stats
65
{
66
void
Reset ()
67
{
68
m_in = 0;
69
m_out = 0;
70
m_drop = 0;
71
}
72
73
uint64_t m_in;
74
uint64_t m_out;
75
uint64_t m_drop;
76
};
77
};
78
79
inline
std::ostream&
80
operator <<
(std::ostream &os,
const
Ipv4L3Tracer
&tracer)
81
{
82
os <<
"# "
;
83
tracer.PrintHeader (os);
84
os <<
"\n"
;
85
tracer.Print (os);
86
return
os;
87
}
88
89
}
// namespace ns3
90
91
#endif // IPV4_L3_TRACER_H
ns3::operator<<
std::ostream & operator<<(std::ostream &os, const Batches &batch)
Output contents of the Batches to the std::ostream.
Definition:
batches.cc:28
ns3::Ipv4L3Tracer::Stats
Definition:
ipv4-l3-tracer.h:64
ns3::Ipv4L3Tracer
Base class for IPv4 network-layer tracers.
Definition:
ipv4-l3-tracer.h:36
ndnSIM
utils
tracers
ipv4-l3-tracer.h
Generated on Mon Jan 19 2015 11:27:04 for ndnSIM by
1.8.7