26 #ifndef NFD_DAEMON_FW_ACCESS_STRATEGY_HPP
27 #define NFD_DAEMON_FW_ACCESS_STRATEGY_HPP
32 #include <ndn-cxx/util/rtt-estimator.hpp>
34 #include <unordered_map>
62 const shared_ptr<pit::Entry>& pitEntry)
override;
66 const shared_ptr<pit::Entry>& pitEntry)
override;
69 using RttEstimator = ndn::util::RttEstimator;
83 ndn::scheduler::ScopedEventId rtoTimer;
98 MtInfo(shared_ptr<const RttEstimator::Options> opts)
99 : rtt(std::move(opts))
110 std::tuple<Name, MtInfo*>
111 findPrefixMeasurements(
const pit::Entry& pitEntry);
117 addPrefixMeasurements(
const Data& data);
127 FaceInfo(shared_ptr<const RttEstimator::Options> opts)
128 : rtt(std::move(opts))
138 afterReceiveNewInterest(
const Interest& interest,
const FaceEndpoint& ingress,
139 const shared_ptr<pit::Entry>& pitEntry);
142 afterReceiveRetxInterest(
const Interest& interest,
const FaceEndpoint& ingress,
143 const shared_ptr<pit::Entry>& pitEntry);
149 sendToLastNexthop(
const Interest& interest,
const FaceEndpoint& ingress,
150 const shared_ptr<pit::Entry>& pitEntry, MtInfo& mi,
154 afterRtoTimeout(
const weak_ptr<pit::Entry>& pitWeak,
162 multicast(
const Interest& interest,
const Face& inFace,
163 const shared_ptr<pit::Entry>& pitEntry,
const fib::Entry& fibEntry,
167 updateMeasurements(
const Face& inFace,
const Data& data, time::nanoseconds rtt);
170 const shared_ptr<const RttEstimator::Options> m_rttEstimatorOpts;
171 std::unordered_map<FaceId, FaceInfo> m_fit;
173 signal::ScopedConnection m_removeFaceConn;
Represents a face-endpoint pair in the forwarder.
Main class of NFD's forwarding engine.
Generalization of a network interface.
Represents an entry in the FIB.
A forwarding strategy for "access" routers.
void afterReceiveInterest(const Interest &interest, const FaceEndpoint &ingress, const shared_ptr< pit::Entry > &pitEntry) override
Trigger after an Interest is received.
static const Name & getStrategyName()
AccessStrategy(Forwarder &forwarder, const Name &name=getStrategyName())
void beforeSatisfyInterest(const Data &data, const FaceEndpoint &ingress, const shared_ptr< pit::Entry > &pitEntry) override
Trigger before a PIT entry is satisfied.
A retransmission suppression decision algorithm that suppresses retransmissions within a fixed durati...
Base class of all forwarding strategies.
Contains arbitrary information placed by the forwarding strategy on table entries.
Represents an entry in the Interest table (PIT).
constexpr FaceId INVALID_FACEID
Indicates an invalid FaceId.
uint64_t FaceId
Identifies a face.