A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
application-packet-probe.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011 Bucknell University
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Authors: L. Felipe Perrone (perrone@bucknell.edu)
7
* Tiago G. Rodrigues (tgr002@bucknell.edu)
8
*
9
* Modified by: Mitch Watrous (watrous@u.washington.edu)
10
*/
11
12
#ifndef APPLICATION_PACKET_PROBE_H
13
#define APPLICATION_PACKET_PROBE_H
14
15
#include "ns3/application.h"
16
#include "ns3/boolean.h"
17
#include "ns3/callback.h"
18
#include "ns3/nstime.h"
19
#include "ns3/object.h"
20
#include "ns3/packet.h"
21
#include "ns3/probe.h"
22
#include "ns3/simulator.h"
23
#include "ns3/traced-value.h"
24
25
namespace
ns3
26
{
27
28
/**
29
* @brief Probe to translate from a TraceSource to two more easily parsed TraceSources.
30
*
31
* This class is designed to probe an underlying ns3 TraceSource
32
* exporting a packet and a socket address. This probe exports a
33
* trace source "Output" with arguments of type Ptr<const Packet> and
34
* const Address&. This probe exports another trace source
35
* "OutputBytes" with arguments of type uint32_t, which is the number
36
* of bytes in the packet. The trace sources emit values when either
37
* the probed trace source emits a new value, or when SetValue () is
38
* called.
39
*/
40
class
ApplicationPacketProbe
:
public
Probe
41
{
42
public
:
43
/**
44
* @brief Get the type ID.
45
* @return the object TypeId
46
*/
47
static
TypeId
GetTypeId
();
48
ApplicationPacketProbe
();
49
~ApplicationPacketProbe
()
override
;
50
51
/**
52
* @brief Set a probe value
53
*
54
* @param packet set the traced packet equal to this
55
* @param address set the socket address for the traced packet equal to this
56
*/
57
void
SetValue
(
Ptr<const Packet>
packet,
const
Address
& address);
58
59
/**
60
* @brief Set a probe value by its name in the Config system
61
*
62
* @param path config path to access the probe
63
* @param packet set the traced packet equal to this
64
* @param address set the socket address for the traced packet equal to this
65
*/
66
static
void
SetValueByPath
(std::string path,
Ptr<const Packet>
packet,
const
Address
& address);
67
68
/**
69
* @brief connect to a trace source attribute provided by a given object
70
*
71
* @param traceSource the name of the attribute TraceSource to connect to
72
* @param obj ns3::Object to connect to
73
* @return true if the trace source was successfully connected
74
*/
75
bool
ConnectByObject
(std::string traceSource,
Ptr<Object>
obj)
override
;
76
77
/**
78
* @brief connect to a trace source provided by a config path
79
*
80
* @param path Config path to bind to
81
*
82
* Note, if an invalid path is provided, the probe will not be connected
83
* to anything.
84
*/
85
void
ConnectByPath
(std::string path)
override
;
86
87
private
:
88
/**
89
* @brief Method to connect to an underlying ns3::TraceSource with
90
* arguments of type Ptr<const Packet> and const Address&
91
*
92
* @param packet the traced packet
93
* @param address the socket address for the traced packet
94
*
95
*/
96
void
TraceSink
(
Ptr<const Packet>
packet,
const
Address
& address);
97
98
/// Output trace, packet and source address
99
TracedCallback<Ptr<const Packet>
,
const
Address
&>
m_output
;
100
/// Output trace, previous packet size and current packet size
101
TracedCallback<uint32_t, uint32_t>
m_outputBytes
;
102
103
/// The traced packet.
104
Ptr<const Packet>
m_packet
;
105
106
/// The socket address for the traced packet.
107
Address
m_address
;
108
109
/// The size of the traced packet.
110
uint32_t
m_packetSizeOld
;
111
};
112
113
}
// namespace ns3
114
115
#endif
// APPLICATION_PACKET_PROBE_H
ns3::Address
a polymophic address class
Definition
address.h:90
ns3::ApplicationPacketProbe
Probe to translate from a TraceSource to two more easily parsed TraceSources.
Definition
application-packet-probe.h:41
ns3::ApplicationPacketProbe::m_packet
Ptr< const Packet > m_packet
The traced packet.
Definition
application-packet-probe.h:104
ns3::ApplicationPacketProbe::ConnectByObject
bool ConnectByObject(std::string traceSource, Ptr< Object > obj) override
connect to a trace source attribute provided by a given object
Definition
application-packet-probe.cc:83
ns3::ApplicationPacketProbe::SetValue
void SetValue(Ptr< const Packet > packet, const Address &address)
Set a probe value.
Definition
application-packet-probe.cc:59
ns3::ApplicationPacketProbe::ConnectByPath
void ConnectByPath(std::string path) override
connect to a trace source provided by a config path
Definition
application-packet-probe.cc:94
ns3::ApplicationPacketProbe::m_outputBytes
TracedCallback< uint32_t, uint32_t > m_outputBytes
Output trace, previous packet size and current packet size.
Definition
application-packet-probe.h:101
ns3::ApplicationPacketProbe::ApplicationPacketProbe
ApplicationPacketProbe()
Definition
application-packet-probe.cc:47
ns3::ApplicationPacketProbe::~ApplicationPacketProbe
~ApplicationPacketProbe() override
Definition
application-packet-probe.cc:53
ns3::ApplicationPacketProbe::m_output
TracedCallback< Ptr< const Packet >, const Address & > m_output
Output trace, packet and source address.
Definition
application-packet-probe.h:99
ns3::ApplicationPacketProbe::TraceSink
void TraceSink(Ptr< const Packet > packet, const Address &address)
Method to connect to an underlying ns3::TraceSource with arguments of type Ptr<const Packet> and cons...
Definition
application-packet-probe.cc:103
ns3::ApplicationPacketProbe::m_packetSizeOld
uint32_t m_packetSizeOld
The size of the traced packet.
Definition
application-packet-probe.h:110
ns3::ApplicationPacketProbe::m_address
Address m_address
The socket address for the traced packet.
Definition
application-packet-probe.h:107
ns3::ApplicationPacketProbe::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
application-packet-probe.cc:28
ns3::ApplicationPacketProbe::SetValueByPath
static void SetValueByPath(std::string path, Ptr< const Packet > packet, const Address &address)
Set a probe value by its name in the Config system.
Definition
application-packet-probe.cc:72
ns3::Probe
Base class for probes.
Definition
probe.h:30
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition
mpi-test-fixtures.h:37
ns3::TracedCallback
Forward calls to a chain of Callback.
Definition
traced-callback.h:43
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:48
uint32_t
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
applications
model
application-packet-probe.h
Generated on Thu Dec 12 2024 18:40:35 for ns-3 by
1.11.0