#include <senf/Ext/NetEmu/P2PTunnel/TunnelController.hh>

Inheritance diagram for senf::emu::detail::TunnelControllerBase:

Public Types

typedef UDPv6ClientSocketHandle Handle
 
typedef EthernetPacket PacketType
 

Public Member Functions

PacketType readPacket (Handle &handle)
 
bool writePacket (Handle &handle, PacketType packet)
 
ClockService::clock_type timeout () const
 
void timeout (ClockService::clock_type t)
 
ppi::QueueingAlgorithmqAlgorithm () const
 
void qAlgorithm (ppi::QueueingAlgorithm::ptr qAlgorithm)
 
void dumpInfo (std::ostream &os)
 
unsigned fragmentationCount ()
 

Static Public Attributes

static const unsigned TunnelOverhead = 46u
 

Protected Member Functions

 TunnelControllerBase (TunnelInterfaceBase &interface)
 
virtual ~TunnelControllerBase ()
 
bool sendPkt (Handle &handle, MACAddress const &dstMAC, senf::EthernetPacket pkt)
 
void do_sendPkt (Handle &handle, senf::EthernetPacket &pkt, std::pair< senf::INet6SocketAddress, unsigned > const &txInfo)
 
void do_sendPkt (Handle &handle, senf::EthernetPacket &pkt)
 
void flushQueue (Handle &handle)
 
void sendCtrlPacket (Handle &handle, MACAddress const &dstMAC, boost::uint8_t code)
 
void sendCtrlPacket (Handle &handle, MACAddress const &dstMAC, TunnelCtrlPacket ctrlPacket)
 
virtual void v_prependTHdr (EthernetPacket &eth)=0
 
virtual std::pair< INet6SocketAddress, unsigned > v_getTxInfo (Packet const &eth) const =0
 

Static Protected Member Functions

static bool isTunnelCtrlPacket (EthernetPacket const &eth)
 

Protected Attributes

senf::Detail::DifferenceSigned seqNoDiff_
 

Detailed Description

Definition at line 74 of file TunnelController.hh.

Member Typedef Documentation

◆ Handle

◆ PacketType

Constructor & Destructor Documentation

◆ TunnelControllerBase()

senf::emu::detail::TunnelControllerBase::TunnelControllerBase ( TunnelInterfaceBase interface)
protected

Definition at line 99 of file TunnelController.cc.

◆ ~TunnelControllerBase()

virtual senf::emu::detail::TunnelControllerBase::~TunnelControllerBase ( )
inlineprotectedvirtual

Definition at line 98 of file TunnelController.hh.

Member Function Documentation

◆ do_sendPkt() [1/2]

void senf::emu::detail::TunnelControllerBase::do_sendPkt ( Handle handle,
senf::EthernetPacket pkt,
std::pair< senf::INet6SocketAddress, unsigned > const &  txInfo 
)
protected

Definition at line 185 of file TunnelController.cc.

◆ do_sendPkt() [2/2]

void senf::emu::detail::TunnelControllerBase::do_sendPkt ( Handle handle,
senf::EthernetPacket pkt 
)
protected

Definition at line 197 of file TunnelController.cc.

◆ dumpInfo()

void senf::emu::detail::TunnelControllerBase::dumpInfo ( std::ostream &  os)

Definition at line 321 of file TunnelController.cc.

◆ flushQueue()

void senf::emu::detail::TunnelControllerBase::flushQueue ( Handle handle)
protected

Definition at line 257 of file TunnelController.cc.

◆ fragmentationCount()

unsigned senf::emu::detail::TunnelControllerBase::fragmentationCount ( )

Definition at line 315 of file TunnelController.cc.

◆ isTunnelCtrlPacket()

bool senf::emu::detail::TunnelControllerBase::isTunnelCtrlPacket ( EthernetPacket const &  eth)
staticprotected

Definition at line 104 of file TunnelController.cc.

◆ qAlgorithm() [1/2]

senf::ppi::QueueingAlgorithm & senf::emu::detail::TunnelControllerBase::qAlgorithm ( ) const

Definition at line 304 of file TunnelController.cc.

◆ qAlgorithm() [2/2]

void senf::emu::detail::TunnelControllerBase::qAlgorithm ( ppi::QueueingAlgorithm::ptr  qAlgorithm)

Definition at line 310 of file TunnelController.cc.

◆ readPacket()

senf::EthernetPacket senf::emu::detail::TunnelControllerBase::readPacket ( Handle handle)

Definition at line 109 of file TunnelController.cc.

◆ sendCtrlPacket() [1/2]

void senf::emu::detail::TunnelControllerBase::sendCtrlPacket ( Handle handle,
MACAddress const &  dstMAC,
boost::uint8_t  code 
)
protected

Definition at line 272 of file TunnelController.cc.

◆ sendCtrlPacket() [2/2]

void senf::emu::detail::TunnelControllerBase::sendCtrlPacket ( Handle handle,
MACAddress const &  dstMAC,
TunnelCtrlPacket  ctrlPacket 
)
protected

Definition at line 280 of file TunnelController.cc.

◆ sendPkt()

bool senf::emu::detail::TunnelControllerBase::sendPkt ( Handle handle,
MACAddress const &  dstMAC,
senf::EthernetPacket  pkt 
)
protected

Definition at line 202 of file TunnelController.cc.

◆ timeout() [1/2]

senf::ClockService::clock_type senf::emu::detail::TunnelControllerBase::timeout ( ) const

Definition at line 292 of file TunnelController.cc.

◆ timeout() [2/2]

void senf::emu::detail::TunnelControllerBase::timeout ( ClockService::clock_type  t)

Definition at line 298 of file TunnelController.cc.

◆ v_getTxInfo()

virtual std::pair<INet6SocketAddress,unsigned> senf::emu::detail::TunnelControllerBase::v_getTxInfo ( Packet const &  eth) const
protectedpure virtual

◆ v_prependTHdr()

virtual void senf::emu::detail::TunnelControllerBase::v_prependTHdr ( EthernetPacket eth)
protectedpure virtual

◆ writePacket()

bool senf::emu::detail::TunnelControllerBase::writePacket ( Handle handle,
PacketType  packet 
)

Definition at line 267 of file TunnelController.cc.

Member Data Documentation

◆ seqNoDiff_

senf::Detail::DifferenceSigned senf::emu::detail::TunnelControllerBase::seqNoDiff_
protected

Definition at line 126 of file TunnelController.hh.

◆ TunnelOverhead

const unsigned senf::emu::detail::TunnelControllerBase::TunnelOverhead = 46u
static

Definition at line 78 of file TunnelController.hh.


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