NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
+
Namespaces
Namespace List
+
Namespace Members
+
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
+
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
+
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
p
q
r
s
t
u
v
w
+
Typedefs
a
b
c
d
e
f
h
i
k
l
n
o
p
q
r
s
t
u
v
+
Enumerations
a
b
c
d
f
i
k
l
n
p
q
r
s
t
u
+
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
+
Classes
Class List
Class Index
Class Hierarchy
+
Class Members
+
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
~
+
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
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
+
Typedefs
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
Enumerations
+
Enumerator
a
c
d
e
i
k
l
m
n
p
r
s
u
w
+
Related Functions
b
c
d
e
f
g
i
k
l
m
n
o
p
s
v
+
Files
File List
+
File Members
+
All
a
c
d
e
f
g
h
i
k
l
m
n
p
r
s
t
u
v
w
+
Functions
c
f
h
m
r
s
u
w
+
Variables
a
c
d
f
g
i
k
l
m
n
p
r
s
t
Typedefs
+
Macros
d
e
f
i
l
m
n
p
r
s
u
v
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
cleanup.cpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
26
#include "
cleanup.hpp
"
27
28
namespace
nfd
{
29
30
void
31
cleanupOnFaceRemoval
(
NameTree
& nt,
Fib
& fib,
Pit
& pit,
const
Face
&
face
)
32
{
33
std::multimap<size_t, const name_tree::Entry*> maybeEmptyNtes;
34
35
// visit FIB and PIT entries in one pass of NameTree enumeration
36
for
(
const
name_tree::Entry
& nte : nt) {
37
fib::Entry
* fibEntry = nte.getFibEntry();
38
if
(fibEntry !=
nullptr
) {
39
fib.
removeNextHop
(*fibEntry,
face
);
40
}
41
42
for
(
const
auto
& pitEntry : nte.getPitEntries()) {
43
pit.
deleteInOutRecords
(pitEntry.get(),
face
);
44
}
45
46
if
(!nte.hasTableEntries()) {
47
maybeEmptyNtes.emplace(nte.getName().size(), &nte);
48
}
49
}
50
51
// try to erase longer names first, so that children are erased before parent is checked
52
for
(
auto
i = maybeEmptyNtes.rbegin(); i != maybeEmptyNtes.rend(); ++i) {
53
nt.eraseIfEmpty(const_cast<name_tree::Entry*>(i->second),
false
);
54
}
55
56
BOOST_ASSERT(nt.size() == 0 ||
57
std::none_of(nt.begin(), nt.end(),
58
[] (
const
name_tree::Entry
& nte) {
return
nte.isEmpty(); }));
59
}
60
61
}
// namespace nfd
nfd::cleanupOnFaceRemoval
void cleanupOnFaceRemoval(NameTree &nt, Fib &fib, Pit &pit, const Face &face)
cleanup tables when a face is destroyed
Definition:
cleanup.cpp:31
nfd::face::Face
generalization of a network interface
Definition:
face.hpp:67
nfd::pit::Pit::deleteInOutRecords
void deleteInOutRecords(Entry *entry, const Face &face)
deletes in-record and out-record for face
Definition:
pit.cpp:116
nfd::fib::Entry
represents a FIB entry
Definition:
fib-entry.hpp:51
cleanup.hpp
nfd::pit::Pit
represents the Interest Table
Definition:
pit.hpp:47
nfd
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-common.hpp:40
nfd::fib::Fib
represents the Forwarding Information Base (FIB)
Definition:
fib.hpp:49
face
nfd::fib::Fib::removeNextHop
void removeNextHop(Entry &entry, const Face &face)
removes the NextHop record for face
Definition:
fib.cpp:137
nfd::name_tree::NameTree
a common index structure for FIB, PIT, StrategyChoice, and Measurements
Definition:
name-tree.hpp:38
nfd::name_tree::Entry
an entry in the name tree
Definition:
name-tree-entry.hpp:41
ndnSIM
NFD
daemon
table
cleanup.cpp
Generated on Tue Aug 7 2018 16:19:18 for ndnSIM by
1.8.14