26 #ifndef NFD_DAEMON_FW_FORWARDER_HPP 27 #define NFD_DAEMON_FW_FORWARDER_HPP 69 return *m_unsolicitedDataPolicy;
75 BOOST_ASSERT(policy !=
nullptr);
76 m_unsolicitedDataPolicy = std::move(policy);
87 this->onIncomingInterest(ingress, interest);
97 this->onIncomingData(ingress, data);
107 this->onIncomingNack(ingress, nack);
117 this->onNewNextHop(prefix, nextHop);
147 return m_measurements;
153 return m_strategyChoice;
159 return m_deadNonceList;
165 return m_networkRegionTable;
172 onIncomingInterest(
const FaceEndpoint& ingress,
const Interest& interest);
177 onInterestLoop(
const FaceEndpoint& ingress,
const Interest& interest);
183 const shared_ptr<pit::Entry>& pitEntry,
const Interest& interest);
188 onContentStoreHit(
const FaceEndpoint& ingress,
const shared_ptr<pit::Entry>& pitEntry,
189 const Interest& interest,
const Data& data);
195 onOutgoingInterest(
const shared_ptr<pit::Entry>& pitEntry,
196 Face& egress,
const Interest& interest);
201 onInterestFinalize(
const shared_ptr<pit::Entry>& pitEntry);
206 onIncomingData(
const FaceEndpoint& ingress,
const Data& data);
211 onDataUnsolicited(
const FaceEndpoint& ingress,
const Data& data);
217 onOutgoingData(
const Data& data,
Face& egress);
222 onIncomingNack(
const FaceEndpoint& ingress,
const lp::Nack& nack);
228 onOutgoingNack(
const shared_ptr<pit::Entry>& pitEntry,
229 Face& egress,
const lp::NackHeader& nack);
232 onDroppedInterest(
const Face& egress,
const Interest& interest);
235 onNewNextHop(
const Name& prefix,
const fib::NextHop& nextHop);
241 setExpiryTimer(
const shared_ptr<pit::Entry>& pitEntry, time::milliseconds duration);
256 template<
class Function>
258 dispatchToStrategy(
pit::Entry& pitEntry, Function trigger)
261 trigger(m_strategyChoice.findEffectiveStrategy(pitEntry));
268 unique_ptr<fw::UnsolicitedDataPolicy> m_unsolicitedDataPolicy;
285 #endif // NFD_DAEMON_FW_FORWARDER_HPP void startProcessNewNextHop(const Name &prefix, const fib::NextHop &nextHop)
start new nexthop processing
Main class of NFD's forwarding engine.
A common index structure for FIB, PIT, StrategyChoice, and Measurements.
Represents the Strategy Choice table.
Contains information about an Interest toward an outgoing face.
StrategyChoice & getStrategyChoice()
void startProcessData(const FaceEndpoint &ingress, const Data &data)
start incoming Data processing
const ForwarderCounters & getCounters() const
Represents the Forwarding Information Base (FIB)
implements the Content Store
#define PROTECTED_WITH_TESTS_ELSE_PRIVATE
DeadNonceList & getDeadNonceList()
fw::UnsolicitedDataPolicy & getUnsolicitedDataPolicy() const
Represents a face-endpoint pair in the forwarder.
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
stores a collection of producer region names
Represents the Dead Nonce List.
void setUnsolicitedDataPolicy(unique_ptr< fw::UnsolicitedDataPolicy > policy)
generalization of a network interface
determines how to process an unsolicited Data
Counters provided by Forwarder.
Represents a forwarding strategy.
#define VIRTUAL_WITH_TESTS
Represents the Interest Table.
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
void startProcessInterest(const FaceEndpoint &ingress, const Interest &interest)
start incoming Interest processing
void startProcessNack(const FaceEndpoint &ingress, const lp::Nack &nack)
start incoming Nack processing
Represents a nexthop record in a FIB entry.
Measurements & getMeasurements()
NetworkRegionTable & getNetworkRegionTable()