26 #ifndef NFD_DAEMON_FACE_GENERIC_LINK_SERVICE_HPP
27 #define NFD_DAEMON_FACE_GENERIC_LINK_SERVICE_HPP
208 sendLpPacket(lp::Packet&& pkt);
222 assignSequences(std::vector<lp::Packet>& pkts);
230 encodeLpFields(const
ndn::PacketBase& netPkt, lp::Packet& lpPacket);
237 sendNetPacket(lp::Packet&& pkt,
bool isInterest);
244 checkCongestionLevel(lp::Packet& pkt);
259 decodeNetPacket(const Block& netPkt, const lp::Packet& firstPkt, const
EndpointId& endpointId);
272 decodeInterest(const Block& netPkt, const lp::Packet& firstPkt, const
EndpointId& endpointId);
285 decodeData(const Block& netPkt, const lp::Packet& firstPkt, const
EndpointId& endpointId);
298 decodeNack(const Block& netPkt, const lp::Packet& firstPkt, const
EndpointId& endpointId);
305 lp::Sequence m_lastSeqNo;
309 time::steady_clock::TimePoint m_nextMarkTime;
311 size_t m_nMarkedSinceInMarkingState;
represents a counter of number of packets
provides a counter that observes the size of a table
Options that control the behavior of GenericLinkService.
LpReassembler::Options reassemblerOptions
options for reassembly
LpFragmenter::Options fragmenterOptions
options for fragmentation
bool allowReassembly
enables reassembly
bool allowSelfLearning
enables self-learning forwarding support
LpReliability::Options reliabilityOptions
options for reliability
bool allowCongestionMarking
enables send queue congestion detection and marking
bool allowFragmentation
enables fragmentation
ssize_t overrideMtu
overrides MTU provided by Transport
size_t defaultCongestionThreshold
default congestion threshold in bytes
time::nanoseconds baseCongestionMarkingInterval
starting value for congestion marking interval
bool allowLocalFields
enables encoding of IncomingFaceId, and decoding of NextHopFaceId and CachePolicy
counters provided by GenericLinkService
PacketCounter nRetxExhausted
count of network-layer packets dropped because a fragment reached the maximum number of retransmissio...
PacketCounter nAcknowledged
count of network-layer packets that did not require retransmission of a fragment
PacketCounter nInNetInvalid
count of invalid reassembled network-layer packets dropped
PacketCounter nDuplicateSequence
count of LpPackets dropped due to duplicate Sequence numbers
SizeCounter< LpReassembler > nReassembling
count of network-layer packets currently being reassembled
PacketCounter nFragmentationErrors
count of failed fragmentations
PacketCounter nRetransmitted
count of network-layer packets that had at least one fragment retransmitted, but were eventually rece...
PacketCounter nCongestionMarked
count of outgoing LpPackets that were marked with congestion marks
PacketCounter nOutOverMtu
count of outgoing LpPackets dropped due to exceeding MTU limit
PacketCounter nInLpInvalid
count of invalid LpPackets dropped before reassembly
PacketCounter nReassemblyTimeouts
count of dropped partial network-layer packets due to reassembly timeout
GenericLinkService is a LinkService that implements the NDNLPv2 protocol.
GenericLinkServiceCounters Counters
counters provided by GenericLinkService
ssize_t getEffectiveMtu() const final
const Counters & getCounters() const final
void setOptions(const Options &options)
sets Options used by GenericLinkService
GenericLinkService(const Options &options={})
const Options & getOptions() const
get Options used by GenericLinkService
bool canOverrideMtuTo(ssize_t mtu) const
Whether MTU can be overridden to the specified value.
counters provided by LinkService
fragments network-layer packets into NDNLPv2 link-layer packets
reassembles fragmented network-layer packets
provides for reliable sending and receiving of link-layer packets
#define NFD_OVERRIDE_WITH_TESTS_ELSE_FINAL
#define NFD_PUBLIC_WITH_TESTS_ELSE_PRIVATE
#define NFD_FINAL_UNLESS_WITH_TESTS
#define NFD_PROTECTED_WITH_TESTS_ELSE_PRIVATE
Copyright (c) 2014-2017, Regents of the University of California, Arizona Board of Regents,...
uint64_t EndpointId
Identifies a remote endpoint on the link.
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents,...
Options that control the behavior of LpFragmenter.
Options that control the behavior of LpReassembler.