reassembles fragmented network-layer packets More...
#include <lp-reassembler.hpp>
Classes | |
class | Options |
Options that control the behavior of LpReassembler. More... | |
Public Member Functions | |
LpReassembler (const Options &options=Options(), const LinkService *linkService=nullptr) | |
void | setOptions (const Options &options) |
set options for reassembler More... | |
const LinkService * | getLinkService () const |
std::tuple< bool, Block, lp::Packet > | receiveFragment (Transport::EndpointId remoteEndpoint, const lp::Packet &packet) |
adds received fragment to buffer More... | |
size_t | size () const |
count of partial packets More... | |
Public Attributes | |
signal::Signal< LpReassembler, Transport::EndpointId, size_t > | beforeTimeout |
signals before a partial packet is dropped due to timeout More... | |
reassembles fragmented network-layer packets
Definition at line 43 of file lp-reassembler.hpp.
|
explicit |
Definition at line 41 of file lp-reassembler.cpp.
|
inline |
set options for reassembler
Definition at line 140 of file lp-reassembler.hpp.
Referenced by nfd::face::GenericLinkService::setOptions().
|
inline |
This is only used for logging, and may be nullptr.
Definition at line 146 of file lp-reassembler.hpp.
std::tuple< bool, Block, lp::Packet > nfd::face::LpReassembler::receiveFragment | ( | Transport::EndpointId | remoteEndpoint, |
const lp::Packet & | packet | ||
) |
adds received fragment to buffer
remoteEndpoint | endpoint whose sends the packet |
packet | received fragment; must have Fragment field |
tlv::Error | packet is malformed |
Definition at line 48 of file lp-reassembler.cpp.
References beforeTimeout, ndn::lp::Packet::get(), ndn::lp::Packet::has(), NFD_LOG_FACE_TRACE, NFD_LOG_FACE_WARN, nfd::face::LpReassembler::Options::nMaxFragments, nfd::face::LpReassembler::Options::reassemblyTimeout, and nfd::scheduler::schedule().
Referenced by nfd::face::GenericLinkService::setOptions().
|
inline |
count of partial packets
Definition at line 152 of file lp-reassembler.hpp.
signal::Signal<LpReassembler, Transport::EndpointId, size_t> nfd::face::LpReassembler::beforeTimeout |
signals before a partial packet is dropped due to timeout
If a partial packet is incomplete and no new fragment is received within Options::reassemblyTimeout, it would be dropped due to timeout. Before it's erased, this signal is emitted with the remote endpoint, and the number of fragments being dropped.
Definition at line 104 of file lp-reassembler.hpp.
Referenced by nfd::face::GenericLinkService::GenericLinkService(), and receiveFragment().