26 #ifndef NFD_DAEMON_TABLE_FIB_HPP
27 #define NFD_DAEMON_TABLE_FIB_HPP
32 #include <boost/range/adaptor/transformed.hpp>
36 namespace measurements {
50 class Fib : noncopyable
90 static constexpr
size_t
100 std::pair<Entry*, bool>
101 insert(
const Name& prefix);
104 erase(
const Name& prefix);
139 return this->getRange().begin();
148 return this->getRange().end();
161 findLongestPrefixMatchImpl(
const K& key)
const;
178 static const unique_ptr<Entry> s_emptyEntry;
Generalization of a network interface.
Represents an entry in the FIB.
Represents the Forwarding Information Base (FIB).
@ NEXTHOP_REMOVED
the nexthop is removed and the fib entry stays
@ FIB_ENTRY_REMOVED
the nexthop is removed and the fib entry is removed
@ NO_SUCH_NEXTHOP
the nexthop is not found
std::pair< Entry *, bool > insert(const Name &prefix)
Find or insert a FIB entry.
Entry * findExactMatch(const Name &prefix)
Performs an exact match lookup.
boost::range_iterator< Range >::type const_iterator
const_iterator begin() const
RemoveNextHopResult removeNextHop(Entry &entry, const Face &face)
Remove the NextHop record for face from entry.
boost::transformed_range< name_tree::GetTableEntry< Entry >, const name_tree::Range > Range
signal::Signal< Fib, Name, NextHop > afterNewNextHop
Signals on Fib entry nexthop creation.
void erase(const Name &prefix)
const_iterator end() const
static constexpr size_t getMaxDepth()
Maximum number of components in a FIB entry prefix.
size_t size() const noexcept
const Entry & findLongestPrefixMatch(const Name &prefix) const
Performs a longest prefix match.
void addOrUpdateNextHop(Entry &entry, Face &face, uint64_t cost)
Add a NextHop record.
Represents an entry in the Measurements table.
An entry in the name tree.
A common index structure for FIB, PIT, StrategyChoice, and Measurements.
static constexpr size_t getMaxDepth()
Maximum depth of the name tree.
Represents an entry in the Interest table (PIT).
boost::iterator_range< Iterator > Range
A forward range of name tree entries.