26 #ifndef NFD_DAEMON_FACE_GENERIC_LINK_SERVICE_HPP 27 #define NFD_DAEMON_FACE_GENERIC_LINK_SERVICE_HPP 160 setOptions(
const Options& options);
163 getCounters()
const override;
175 sendLpPacket(lp::Packet&& pkt);
180 doSendInterest(
const Interest& interest)
override;
185 doSendData(
const Data& data)
override;
190 doSendNack(
const ndn::lp::Nack& nack)
override;
198 encodeLpFields(
const ndn::PacketBase& netPkt, lp::Packet& lpPacket);
205 sendNetPacket(lp::Packet&& pkt,
bool isInterest);
210 assignSequence(lp::Packet& pkt);
215 assignSequences(std::vector<lp::Packet>& pkts);
222 checkCongestionLevel(lp::Packet& pkt);
238 decodeNetPacket(
const Block& netPkt,
const lp::Packet& firstPkt);
250 decodeInterest(
const Block& netPkt,
const lp::Packet& firstPkt);
262 decodeData(
const Block& netPkt,
const lp::Packet& firstPkt);
274 decodeNack(
const Block& netPkt,
const lp::Packet& firstPkt);
281 lp::Sequence m_lastSeqNo;
285 static constexpr
size_t CONGESTION_MARK_SIZE = 3 + 1 +
sizeof(uint64_t);
287 time::steady_clock::TimePoint m_nextMarkTime;
289 time::steady_clock::TimePoint m_lastMarkTime;
291 size_t m_nMarkedSinceInMarkingState;
311 #endif // NFD_DAEMON_FACE_GENERIC_LINK_SERVICE_HPP counters provided by GenericLinkService
provides a counter that observes the size of a table
SizeCounter< LpReassembler > nReassembling
count of network-layer packets currently being reassembled
PacketCounter nInLpInvalid
count of invalid LpPackets dropped before reassembly
const Options & getOptions() const
get Options used by GenericLinkService
PacketCounter nFragmentationErrors
count of failed fragmentations
bool allowFragmentation
enables fragmentation
PacketCounter nAcknowledged
count of network-layer packets that did not require retransmission of a fragment
GenericLinkService is a LinkService that implements the NDNLPv2 protocol.
PacketCounter nInNetInvalid
count of invalid reassembled network-layer packets dropped
stores a packet along with the remote endpoint
LpReassembler::Options reassemblerOptions
options for reassembly
represents a counter of number of packets
#define PROTECTED_WITH_TESTS_ELSE_PRIVATE
Options that control the behavior of LpReassembler.
bool allowSelfLearning
enables self-learning forwarding support
provides for reliable sending and receiving of link-layer packets
PacketCounter nCongestionMarked
count of outgoing LpPackets that were marked with congestion marks
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
fragments network-layer packets into NDNLPv2 link-layer packets
counters provided by LinkService
reassembles fragmented network-layer packets
Options that control the behavior of LpFragmenter.
PacketCounter nOutOverMtu
count of outgoing LpPackets dropped due to exceeding MTU limit
LpReliability::Options reliabilityOptions
options for reliability
Options that control the behavior of GenericLinkService.
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
const Counters & getCounters() const override
time::nanoseconds baseCongestionMarkingInterval
starting value for congestion marking interval
size_t defaultCongestionThreshold
default congestion threshold in bytes
bool allowLocalFields
enables encoding of IncomingFaceId, and decoding of NextHopFaceId and CachePolicy ...
bool allowCongestionMarking
enables send queue congestion detection and marking
PacketCounter nRetxExhausted
count of network-layer packets dropped because a fragment reached the maximum number of retransmissio...
bool allowReassembly
enables reassembly
PacketCounter nRetransmitted
count of network-layer packets that had at least one fragment retransmitted, but were eventually rece...
PacketCounter nReassemblyTimeouts
count of dropped partial network-layer packets due to reassembly timeout
LpFragmenter::Options fragmenterOptions
options for fragmentation