A Discrete-Event Network Simulator
lorawan @ (+)
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Typedefs
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
g
h
l
m
n
o
p
q
r
s
t
w
Enumerator
a
b
c
d
e
f
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
Related Symbols
:
a
b
c
d
e
g
h
i
j
l
m
n
o
p
q
r
s
t
u
w
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
Enumerations
Enumerator
e
l
v
Macros
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
▼
ns-3
►
ns-3 Documentation
►
All Environment Variables
Todo List
Deprecated List
Bug List
►
Topics
►
Namespaces
►
Classes
▼
Files
▼
File List
►
doc
►
examples
▼
src
►
antenna
►
aodv
►
applications
►
bridge
►
brite
►
buildings
►
click
►
config-store
►
core
►
csma
►
csma-layout
►
dsdv
►
dsr
►
energy
►
fd-net-device
►
flow-monitor
▼
internet
►
examples
►
helper
▼
model
arp-cache.cc
►
arp-cache.h
arp-header.cc
arp-header.h
arp-l3-protocol.cc
arp-l3-protocol.h
arp-queue-disc-item.cc
arp-queue-disc-item.h
►
candidate-queue.cc
candidate-queue.h
►
global-route-manager-impl.cc
►
global-route-manager-impl.h
global-route-manager.cc
global-route-manager.h
►
global-router-interface.cc
►
global-router-interface.h
global-routing.h
icmpv4-l4-protocol.cc
icmpv4-l4-protocol.h
icmpv4.cc
icmpv4.h
icmpv6-header.cc
icmpv6-header.h
icmpv6-l4-protocol.cc
icmpv6-l4-protocol.h
ip-l4-protocol.cc
ip-l4-protocol.h
►
ipv4-address-generator.cc
ipv4-address-generator.h
ipv4-end-point-demux.cc
ipv4-end-point-demux.h
ipv4-end-point.cc
ipv4-end-point.h
ipv4-global-routing.cc
ipv4-global-routing.h
ipv4-header.cc
ipv4-header.h
►
ipv4-interface-address.cc
►
ipv4-interface-address.h
ipv4-interface.cc
ipv4-interface.h
ipv4-l3-protocol.cc
►
ipv4-l3-protocol.h
ipv4-list-routing.cc
ipv4-list-routing.h
ipv4-packet-filter.cc
ipv4-packet-filter.h
ipv4-packet-info-tag.cc
ipv4-packet-info-tag.h
ipv4-packet-probe.cc
ipv4-packet-probe.h
ipv4-queue-disc-item.cc
ipv4-queue-disc-item.h
ipv4-raw-socket-factory-impl.cc
ipv4-raw-socket-factory-impl.h
ipv4-raw-socket-factory.cc
ipv4-raw-socket-factory.h
ipv4-raw-socket-impl.cc
►
ipv4-raw-socket-impl.h
►
ipv4-route.cc
►
ipv4-route.h
ipv4-routing-protocol.cc
ipv4-routing-protocol.h
►
ipv4-routing-table-entry.cc
►
ipv4-routing-table-entry.h
►
ipv4-static-routing.cc
ipv4-static-routing.h
ipv4.cc
ipv4.h
►
ipv6-address-generator.cc
ipv6-address-generator.h
ipv6-autoconfigured-prefix.cc
ipv6-autoconfigured-prefix.h
ipv6-end-point-demux.cc
ipv6-end-point-demux.h
ipv6-end-point.cc
ipv6-end-point.h
ipv6-extension-demux.cc
ipv6-extension-demux.h
ipv6-extension-header.cc
ipv6-extension-header.h
ipv6-extension.cc
ipv6-extension.h
ipv6-header.cc
ipv6-header.h
►
ipv6-interface-address.cc
►
ipv6-interface-address.h
ipv6-interface.cc
ipv6-interface.h
►
ipv6-l3-protocol.cc
ipv6-l3-protocol.h
ipv6-list-routing.cc
ipv6-list-routing.h
ipv6-option-demux.cc
ipv6-option-demux.h
ipv6-option-header.cc
►
ipv6-option-header.h
ipv6-option.cc
ipv6-option.h
ipv6-packet-filter.cc
ipv6-packet-filter.h
ipv6-packet-info-tag.cc
ipv6-packet-info-tag.h
ipv6-packet-probe.cc
ipv6-packet-probe.h
ipv6-pmtu-cache.cc
ipv6-pmtu-cache.h
ipv6-queue-disc-item.cc
ipv6-queue-disc-item.h
ipv6-raw-socket-factory-impl.cc
ipv6-raw-socket-factory-impl.h
ipv6-raw-socket-factory.cc
ipv6-raw-socket-factory.h
ipv6-raw-socket-impl.cc
►
ipv6-raw-socket-impl.h
►
ipv6-route.cc
►
ipv6-route.h
ipv6-routing-protocol.cc
ipv6-routing-protocol.h
►
ipv6-routing-table-entry.cc
►
ipv6-routing-table-entry.h
ipv6-static-routing.cc
ipv6-static-routing.h
ipv6.cc
ipv6.h
loopback-net-device.cc
loopback-net-device.h
►
ndisc-cache.cc
►
ndisc-cache.h
►
rip-header.cc
►
rip-header.h
►
rip.cc
►
rip.h
►
ripng-header.cc
►
ripng-header.h
►
ripng.cc
►
ripng.h
►
rtt-estimator.cc
rtt-estimator.h
tcp-bbr.cc
tcp-bbr.h
tcp-bic.cc
tcp-bic.h
tcp-congestion-ops.cc
►
tcp-congestion-ops.h
►
tcp-cubic.cc
►
tcp-cubic.h
tcp-dctcp.cc
tcp-dctcp.h
►
tcp-header.cc
tcp-header.h
tcp-highspeed.cc
tcp-highspeed.h
tcp-htcp.cc
tcp-htcp.h
tcp-hybla.cc
tcp-hybla.h
tcp-illinois.cc
tcp-illinois.h
►
tcp-l4-protocol.cc
tcp-l4-protocol.h
tcp-ledbat.cc
►
tcp-ledbat.h
tcp-linux-reno.cc
tcp-linux-reno.h
tcp-lp.cc
tcp-lp.h
tcp-option-rfc793.cc
►
tcp-option-rfc793.h
tcp-option-sack-permitted.cc
►
tcp-option-sack-permitted.h
►
tcp-option-sack.cc
►
tcp-option-sack.h
tcp-option-ts.cc
tcp-option-ts.h
tcp-option-winscale.cc
tcp-option-winscale.h
tcp-option.cc
tcp-option.h
tcp-prr-recovery.cc
tcp-prr-recovery.h
►
tcp-rate-ops.cc
►
tcp-rate-ops.h
tcp-recovery-ops.cc
►
tcp-recovery-ops.h
tcp-rx-buffer.cc
tcp-rx-buffer.h
tcp-scalable.cc
tcp-scalable.h
►
tcp-socket-base.cc
►
tcp-socket-base.h
tcp-socket-factory-impl.cc
tcp-socket-factory-impl.h
tcp-socket-factory.cc
tcp-socket-factory.h
tcp-socket-state.cc
►
tcp-socket-state.h
►
tcp-socket.cc
►
tcp-socket.h
►
tcp-tx-buffer.cc
►
tcp-tx-buffer.h
tcp-tx-item.cc
►
tcp-tx-item.h
tcp-vegas.cc
tcp-vegas.h
tcp-veno.cc
tcp-veno.h
tcp-westwood-plus.cc
tcp-westwood-plus.h
tcp-yeah.cc
tcp-yeah.h
udp-header.cc
udp-header.h
udp-l4-protocol.cc
udp-l4-protocol.h
udp-socket-factory-impl.cc
udp-socket-factory-impl.h
udp-socket-factory.cc
udp-socket-factory.h
►
udp-socket-impl.cc
udp-socket-impl.h
udp-socket.cc
udp-socket.h
win32-internet.h
►
windowed-filter.h
►
test
►
internet-apps
►
lorawan
►
lr-wpan
►
lte
►
mesh
►
mobility
►
mpi
►
netanim
►
network
►
nix-vector-routing
►
olsr
►
openflow
►
point-to-point
►
point-to-point-layout
►
propagation
►
sixlowpan
►
spectrum
►
stats
►
tap-bridge
►
test
►
topology-read
►
traffic-control
►
uan
►
virtual-net-device
►
visualizer
►
wifi
►
wimax
►
utils
►
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
ipv4-route.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009 University of Washington
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
*/
7
#ifndef IPV4_ROUTE_H
8
#define IPV4_ROUTE_H
9
10
#include "ns3/ipv4-address.h"
11
#include "ns3/simple-ref-count.h"
12
13
#include <list>
14
#include <map>
15
#include <ostream>
16
17
namespace
ns3
18
{
19
20
class
NetDevice;
21
22
/**
23
* \ingroup ipv4Routing
24
*
25
* \brief IPv4 route cache entry (similar to Linux struct rtable)
26
*
27
* This is a reference counted object. In the future, we will add other
28
* entries from struct dst_entry, struct rtable, and struct dst_ops as needed.
29
*/
30
class
Ipv4Route
:
public
SimpleRefCount
<Ipv4Route>
31
{
32
public
:
33
Ipv4Route
();
34
35
/**
36
* \param dest Destination Ipv4Address
37
*/
38
void
SetDestination
(
Ipv4Address
dest);
39
/**
40
* \return Destination Ipv4Address of the route
41
*/
42
Ipv4Address
GetDestination
()
const
;
43
44
/**
45
* \param src Source Ipv4Address
46
*/
47
void
SetSource
(
Ipv4Address
src);
48
/**
49
* \return Source Ipv4Address of the route
50
*/
51
Ipv4Address
GetSource
()
const
;
52
53
/**
54
* \param gw Gateway (next hop) Ipv4Address
55
*/
56
void
SetGateway
(
Ipv4Address
gw);
57
/**
58
* \return Ipv4Address of the gateway (next hop)
59
*/
60
Ipv4Address
GetGateway
()
const
;
61
62
/**
63
* Equivalent in Linux to dst_entry.dev
64
*
65
* \param outputDevice pointer to NetDevice for outgoing packets
66
*/
67
void
SetOutputDevice
(
Ptr<NetDevice>
outputDevice);
68
/**
69
* \return pointer to NetDevice for outgoing packets
70
*/
71
Ptr<NetDevice>
GetOutputDevice
()
const
;
72
73
#ifdef NOTYET
74
// rtable.idev
75
void
SetInputIfIndex(
uint32_t
iif);
76
uint32_t
GetInputIfIndex()
const
;
77
#endif
78
79
private
:
80
Ipv4Address
m_dest
;
//!< Destination address.
81
Ipv4Address
m_source
;
//!< Source address.
82
Ipv4Address
m_gateway
;
//!< Gateway address.
83
Ptr<NetDevice>
m_outputDevice
;
//!< Output device.
84
#ifdef NOTYET
85
uint32_t
m_inputIfIndex;
86
#endif
87
};
30
class
Ipv4Route
:
public
SimpleRefCount
<Ipv4Route> {
…
};
88
89
/**
90
* \brief Stream insertion operator.
91
*
92
* \param os the reference to the output stream
93
* \param route the Ipv4 route
94
* \returns the reference to the output stream
95
*/
96
std::ostream&
operator<<
(std::ostream& os,
const
Ipv4Route
& route);
97
98
/**
99
* \ingroup ipv4Routing
100
*
101
* \brief Ipv4 multicast route cache entry (similar to Linux struct mfc_cache)
102
*/
103
class
Ipv4MulticastRoute
:
public
SimpleRefCount
<Ipv4MulticastRoute>
104
{
105
public
:
106
Ipv4MulticastRoute
();
107
108
/**
109
* \param group Ipv4Address of the multicast group
110
*/
111
void
SetGroup
(
const
Ipv4Address
group);
112
/**
113
* \return Ipv4Address of the multicast group
114
*/
115
Ipv4Address
GetGroup
()
const
;
116
117
/**
118
* \param origin Ipv4Address of the origin address
119
*/
120
void
SetOrigin
(
const
Ipv4Address
origin);
121
/**
122
* \return Ipv4Address of the origin address
123
*/
124
Ipv4Address
GetOrigin
()
const
;
125
126
/**
127
* \param iif Parent (input interface) for this route
128
*/
129
void
SetParent
(
uint32_t
iif);
130
/**
131
* \return Parent (input interface) for this route
132
*/
133
uint32_t
GetParent
()
const
;
134
135
/**
136
* \param oif Outgoing interface index
137
* \param ttl time-to-live for this route
138
*/
139
void
SetOutputTtl
(
uint32_t
oif,
uint32_t
ttl);
140
141
/**
142
* \return map of output interface Ids and TTLs for this route
143
*/
144
std::map<uint32_t, uint32_t>
GetOutputTtlMap
()
const
;
145
146
static
const
uint32_t
MAX_INTERFACES
=
147
16;
//!< Maximum number of multicast interfaces on a router
148
static
const
uint32_t
MAX_TTL
= 255;
//!< Maximum time-to-live (TTL)
149
150
private
:
151
Ipv4Address
m_group
;
//!< Group
152
Ipv4Address
m_origin
;
//!< Source of packet
153
uint32_t
m_parent
;
//!< Source interface
154
std::map<uint32_t, uint32_t>
m_ttls
;
//!< Time to Live container
155
};
103
class
Ipv4MulticastRoute
:
public
SimpleRefCount
<Ipv4MulticastRoute> {
…
};
156
157
}
// namespace ns3
158
159
#endif
/* IPV4_ROUTE_H */
ns3::Ipv4Address
Ipv4 addresses are stored in host order in this class.
Definition
ipv4-address.h:31
ns3::Ipv4MulticastRoute
Ipv4 multicast route cache entry (similar to Linux struct mfc_cache)
Definition
ipv4-route.h:104
ns3::Ipv4MulticastRoute::GetParent
uint32_t GetParent() const
Definition
ipv4-route.cc:130
ns3::Ipv4MulticastRoute::m_group
Ipv4Address m_group
Group.
Definition
ipv4-route.h:151
ns3::Ipv4MulticastRoute::GetGroup
Ipv4Address GetGroup() const
Definition
ipv4-route.cc:102
ns3::Ipv4MulticastRoute::GetOutputTtlMap
std::map< uint32_t, uint32_t > GetOutputTtlMap() const
Definition
ipv4-route.cc:156
ns3::Ipv4MulticastRoute::GetOrigin
Ipv4Address GetOrigin() const
Definition
ipv4-route.cc:116
ns3::Ipv4MulticastRoute::SetOrigin
void SetOrigin(const Ipv4Address origin)
Definition
ipv4-route.cc:109
ns3::Ipv4MulticastRoute::m_origin
Ipv4Address m_origin
Source of packet.
Definition
ipv4-route.h:152
ns3::Ipv4MulticastRoute::SetOutputTtl
void SetOutputTtl(uint32_t oif, uint32_t ttl)
Definition
ipv4-route.cc:137
ns3::Ipv4MulticastRoute::SetGroup
void SetGroup(const Ipv4Address group)
Definition
ipv4-route.cc:95
ns3::Ipv4MulticastRoute::MAX_INTERFACES
static const uint32_t MAX_INTERFACES
Maximum number of multicast interfaces on a router.
Definition
ipv4-route.h:146
ns3::Ipv4MulticastRoute::m_parent
uint32_t m_parent
Source interface.
Definition
ipv4-route.h:153
ns3::Ipv4MulticastRoute::MAX_TTL
static const uint32_t MAX_TTL
Maximum time-to-live (TTL)
Definition
ipv4-route.h:148
ns3::Ipv4MulticastRoute::m_ttls
std::map< uint32_t, uint32_t > m_ttls
Time to Live container.
Definition
ipv4-route.h:154
ns3::Ipv4MulticastRoute::Ipv4MulticastRoute
Ipv4MulticastRoute()
Definition
ipv4-route.cc:88
ns3::Ipv4MulticastRoute::SetParent
void SetParent(uint32_t iif)
Definition
ipv4-route.cc:123
ns3::Ipv4Route
IPv4 route cache entry (similar to Linux struct rtable)
Definition
ipv4-route.h:31
ns3::Ipv4Route::m_source
Ipv4Address m_source
Source address.
Definition
ipv4-route.h:81
ns3::Ipv4Route::SetGateway
void SetGateway(Ipv4Address gw)
Definition
ipv4-route.cc:53
ns3::Ipv4Route::GetOutputDevice
Ptr< NetDevice > GetOutputDevice() const
Definition
ipv4-route.cc:74
ns3::Ipv4Route::GetGateway
Ipv4Address GetGateway() const
Definition
ipv4-route.cc:60
ns3::Ipv4Route::SetDestination
void SetDestination(Ipv4Address dest)
Definition
ipv4-route.cc:25
ns3::Ipv4Route::SetSource
void SetSource(Ipv4Address src)
Definition
ipv4-route.cc:39
ns3::Ipv4Route::GetSource
Ipv4Address GetSource() const
Definition
ipv4-route.cc:46
ns3::Ipv4Route::m_gateway
Ipv4Address m_gateway
Gateway address.
Definition
ipv4-route.h:82
ns3::Ipv4Route::SetOutputDevice
void SetOutputDevice(Ptr< NetDevice > outputDevice)
Equivalent in Linux to dst_entry.dev.
Definition
ipv4-route.cc:67
ns3::Ipv4Route::GetDestination
Ipv4Address GetDestination() const
Definition
ipv4-route.cc:32
ns3::Ipv4Route::m_outputDevice
Ptr< NetDevice > m_outputDevice
Output device.
Definition
ipv4-route.h:83
ns3::Ipv4Route::Ipv4Route
Ipv4Route()
Definition
ipv4-route.cc:19
ns3::Ipv4Route::m_dest
Ipv4Address m_dest
Destination address.
Definition
ipv4-route.h:80
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition
mpi-test-fixtures.h:37
ns3::SimpleRefCount
A template-based reference counting class.
Definition
simple-ref-count.h:70
uint32_t
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::operator<<
std::ostream & operator<<(std::ostream &os, const Angles &a)
Definition
angles.cc:148
src
internet
model
ipv4-route.h
Generated on Mon Jan 27 2025 16:35:47 for ns-3 by
1.11.0