26 #ifndef NFD_DAEMON_FW_FORWARDER_HPP
27 #define NFD_DAEMON_FW_FORWARDER_HPP
73 return *m_unsolicitedDataPolicy;
79 BOOST_ASSERT(policy !=
nullptr);
80 m_unsolicitedDataPolicy = std::move(policy);
110 return m_measurements;
116 return m_strategyChoice;
122 return m_deadNonceList;
128 return m_networkRegionTable;
142 onIncomingInterest(
const Interest& interest,
const FaceEndpoint& ingress);
147 onInterestLoop(
const Interest& interest,
const FaceEndpoint& ingress);
152 onContentStoreMiss(
const Interest& interest,
const FaceEndpoint& ingress,
153 const shared_ptr<pit::Entry>& pitEntry);
158 onContentStoreHit(
const Interest& interest,
const FaceEndpoint& ingress,
159 const shared_ptr<pit::Entry>& pitEntry,
const Data& data);
165 onOutgoingInterest(
const Interest& interest,
Face& egress,
166 const shared_ptr<pit::Entry>& pitEntry);
171 onInterestFinalize(
const shared_ptr<pit::Entry>& pitEntry);
178 onIncomingData(
const Data& data,
const FaceEndpoint& ingress);
183 onDataUnsolicited(
const Data& data,
const FaceEndpoint& ingress);
189 onOutgoingData(
const Data& data,
Face& egress);
196 onIncomingNack(
const lp::Nack& nack,
const FaceEndpoint& ingress);
202 onOutgoingNack(
const lp::NackHeader& nack,
Face& egress,
203 const shared_ptr<pit::Entry>& pitEntry);
206 onDroppedInterest(
const Interest& interest,
Face& egress);
209 onNewNextHop(
const Name& prefix,
const fib::NextHop& nextHop);
215 setExpiryTimer(
const shared_ptr<pit::Entry>& pitEntry, time::milliseconds duration);
225 processConfig(
const ConfigSection& configSection,
bool isDryRun,
226 const std::string& filename);
236 uint8_t defaultHopLimit = 0;
241 ForwarderCounters m_counters;
243 FaceTable& m_faceTable;
244 unique_ptr<fw::UnsolicitedDataPolicy> m_unsolicitedDataPolicy;
250 Measurements m_measurements;
251 StrategyChoice m_strategyChoice;
252 DeadNonceList m_deadNonceList;
253 NetworkRegionTable m_networkRegionTable;
256 friend ::nfd::fw::Strategy;
Configuration file parsing utility.
Represents the Dead Nonce List.
Represents a face-endpoint pair in the forwarder.
Counters provided by Forwarder.
Main class of NFD's forwarding engine.
void setConfigFile(ConfigFile &configFile)
Register handler for forwarder section of NFD configuration file.
fw::UnsolicitedDataPolicy & getUnsolicitedDataPolicy() const noexcept
NetworkRegionTable & getNetworkRegionTable() noexcept
NameTree & getNameTree() noexcept
Forwarder(FaceTable &faceTable)
DeadNonceList & getDeadNonceList() noexcept
Measurements & getMeasurements() noexcept
const ForwarderCounters & getCounters() const noexcept
void setUnsolicitedDataPolicy(unique_ptr< fw::UnsolicitedDataPolicy > policy) noexcept
StrategyChoice & getStrategyChoice() noexcept
Stores a collection of producer region names.
Implements the Content Store.
Generalization of a network interface.
Represents the Forwarding Information Base (FIB).
Represents a nexthop record in a FIB entry.
Determines how to process an unsolicited Data packet.
A common index structure for FIB, PIT, StrategyChoice, and Measurements.
Represents an entry in the Interest table (PIT).
Contains information about an Interest toward an outgoing face.
Represents the Strategy Choice table.
#define NFD_PUBLIC_WITH_TESTS_ELSE_PRIVATE
#define NFD_VIRTUAL_WITH_TESTS
boost::property_tree::ptree ConfigSection
A configuration file section.