senf::ppi::module::debug Namespace Reference

Debug modules. More...

Classes

class  ActiveFeederSink
 Active, queue-based packet sink. More...
 
class  ActiveFeederSource
 Active, queue-based packet source. More...
 
class  ActiveSink
 Debug packet sink with active input. More...
 
class  ActiveSource
 Debug packet source with active output. More...
 
class  Logger
 Log received packets. More...
 
class  PassiveSink
 Debug packet sink with passive input. More...
 
class  PassiveSource
 Debug packet source with passive output. More...
 

Detailed Description

Debug modules.

This namespace collects several modules helpful for PPI debugging. The modules allow to manually pass packets into a network and read back the output packets.

There are three categories of modules:

  • Active modules (ActiveSource, ActiveSink) are triggered by external calls. Calling submit() / request() will send the request into the module network synchronously. From this it follows, that senf::ppi::run() should not be called. Instead senf::ppi::init() is used to initialize the network and explicit calls to the active debug modules drive the execution.
  • Passive modules (PassiveSource, PassiveSink) contain a queue to save packets (either packets to be transmitted or packets received) and are driven by the network.
  • Feeder (almost-)modules (ActiveFeederSource, ActiveFeederSink) are a hybrid of both types of modules: They contain a packet queue but actively drive the network and are used together with senf::ppi::run(). senf::ppi::run() will automatically terminate if all available packets have been processed. These are not modules, they are collections combining a passive debug module and a senf::ppi::ActiveFeeder.