NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
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:117
nfd::fib::Entry
represents a FIB entry
Definition:
fib-entry.hpp:51
cleanup.hpp
nfd::pit::Pit
represents the Interest Table
Definition:
pit.hpp:46
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:136
nfd::name_tree::NameTree
a common index structure for FIB, PIT, StrategyChoice, and Measurements
Definition:
name-tree.hpp:36
nfd::name_tree::Entry
an entry in the name tree
Definition:
name-tree-entry.hpp:41
ndnSIM
NFD
daemon
table
cleanup.cpp
Generated on Sun Feb 25 2018 13:27:06 for ndnSIM by
1.8.14