NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
nfd::face::LpReassembler Class Reference

reassembles fragmented network-layer packets More...

#include <lp-reassembler.hpp>

Inheritance diagram for nfd::face::LpReassembler:
Collaboration diagram for nfd::face::LpReassembler:


struct  Options
 Options that control the behavior of LpReassembler. More...

Public Member Functions

 LpReassembler (const Options &options, const LinkService *linkService=nullptr)
void setOptions (const Options &options)
 set options for reassembler More...
const LinkServicegetLinkService () const
std::tuple< bool, Block, lp::PacketreceiveFragment (EndpointId remoteEndpoint, const lp::Packet &packet)
 adds received fragment to the buffer More...
size_t size () const
 count of partial packets More...

Public Attributes

signal::Signal< LpReassembler, EndpointId, size_t > beforeTimeout
 signals before a partial packet is dropped due to timeout More...

Detailed Description

reassembles fragmented network-layer packets

See also

Definition at line 39 of file lp-reassembler.hpp.

Constructor & Destructor Documentation

◆ LpReassembler()

nfd::face::LpReassembler::LpReassembler ( const Options options,
const LinkService linkService = nullptr 

Definition at line 37 of file lp-reassembler.cpp.

Member Function Documentation

◆ setOptions()

void nfd::face::LpReassembler::setOptions ( const Options options)

set options for reassembler

Definition at line 132 of file lp-reassembler.hpp.

◆ getLinkService()

const LinkService * nfd::face::LpReassembler::getLinkService ( ) const
LinkService that owns this instance

This is only used for logging, and may be nullptr.

Definition at line 138 of file lp-reassembler.hpp.

◆ receiveFragment()

std::tuple< bool, Block, lp::Packet > nfd::face::LpReassembler::receiveFragment ( EndpointId  remoteEndpoint,
const lp::Packet packet 

adds received fragment to the buffer

remoteEndpointendpoint that sent the packet
packetreceived fragment; must have Fragment field
a tuple containing: whether a network-layer packet has been completely received, the reassembled network-layer packet, the first fragment for inspecting other NDNLPv2 headers
tlv::Errorpacket is malformed

Definition at line 44 of file lp-reassembler.cpp.

References beforeTimeout, ndn::lp::Packet::get(), nfd::getScheduler(), ndn::lp::Packet::has(), nonstd::optional_lite::std11::move(), NFD_LOG_FACE_TRACE, NFD_LOG_FACE_WARN, nfd::face::LpReassembler::Options::nMaxFragments, and nfd::face::LpReassembler::Options::reassemblyTimeout.

◆ size()

size_t nfd::face::LpReassembler::size ( ) const

count of partial packets

Definition at line 144 of file lp-reassembler.hpp.

Member Data Documentation

◆ beforeTimeout

signal::Signal<LpReassembler, 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 96 of file lp-reassembler.hpp.

Referenced by receiveFragment().

The documentation for this class was generated from the following files: