X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Examples%2FRateStuffer%2FMainpage.dox;h=cf8b43746d09b457e2db03c0b1fa8092550a4c10;hb=961cf85a6abf2b5f0a7958bbfcd8f72e7b32721b;hp=fcc730367bc583911d509bb0d2eca0a3ef14efb1;hpb=6a9425b523ea9a2bd41103dd10659ac8c7c0d080;p=senf.git diff --git a/Examples/RateStuffer/Mainpage.dox b/Examples/RateStuffer/Mainpage.dox index fcc7303..cf8b437 100644 --- a/Examples/RateStuffer/Mainpage.dox +++ b/Examples/RateStuffer/Mainpage.dox @@ -20,12 +20,14 @@ // Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +using namespace senf::ppi::module; + /** \mainpage Example introducing the Packet Processing Infrastructure This example application implements a simple PPI application: It will read UDP packets from an input port and will forward them to another port at a fixed packet rate. If the input stream does not provide enough packets, empty UDP packets will be sent instead. - + \section run Running the example Running the example is a little bit more complicated since we need to provide example UDP @@ -36,7 +38,7 @@
# nc -u -l -p 44345- + The next command starts the \c ratestuffer
# cd .../Examples/RateStuffer @@ -60,7 +62,7 @@ \section setup Module setup - \image html ratestuffer.png + \diaimage ratestuffer.dia Above image depicts the module setup implementing the rate stuffer. A senf::ppi::module::ActiveSocketSource reads the incoming UDP packets and sends them into a @@ -70,7 +72,7 @@ \a generator is fed as second input into the \a join to provide the stuffing packets. The RateFilter \a rateFilter reads packets from it's input at a fixed rate and writes them into - the senf::ppi::module::PassiveSocketWriter \a udpWriter. The senf::ppi::module::PriorityJoin + the senf::ppi::module::PassiveSocketSink \a udpSink. The senf::ppi::module::PriorityJoin ensures that read requests of the RateStuffer's input are always serviced, either from the \a queue or, if the \a queue output is throttled, from the \a generator. @@ -135,13 +137,13 @@ \skip class \until rateFilter - - First the needed modules are declared. We have - \li the \a barrier to discard incoming packets sent to fast - \li the \a queue to receive incoming packets and create throttling notifications - \li the \a generator to create the stuffing packets - \li the \a join to combine the input stream from the \a queue with the stuffing packet stream - \li the \a rateFilter to generate the fixed rate output stream + + First the needed modules are declared. We have + - the \a barrier to discard incoming packets sent to fast + - the \a queue to receive incoming packets and create throttling notifications + - the \a generator to create the stuffing packets + - the \a join to combine the input stream from the \a queue with the stuffing packet stream + - the \a rateFilter to generate the fixed rate output stream \until output @@ -152,7 +154,7 @@ The constructor now initializes all the local objects. We pass the template \a packet to the \a generator and set the timing \a interval of the \a rateFilter. - + The \a input and \a output connector references are bound to the corresponding connectors we want to expose: \a input to the \a barrier's \a input and \a output to the \a rateFilter's \a output. @@ -172,20 +174,20 @@ The \a inputSocket is listening on port 44344 while the \a outputSocket will send packets to port 44345 on localhost. The \a outputSocket uses the senf::ConnectedUDPv4SocketProtocol which - is compatible with the senf::ppi::module::PassiveSocketWriter module. + is compatible with the senf::ppi::module::PassiveSocketSink module. \until udpSink Here we allocate the components: - \li \a udpReader to read the packets from \a inputSocket - \li \a stuffer for the real work and - \li \a udpWriter to send the packets to \a outputSocket + - \a udpSource to read the packets from \a inputSocket + - \a stuffer for the real work and + - \a udpSink to send the packets to \a outputSocket \until udpSink The \ref senf::ppi::connect() calls setup the necessary connections. - + The module setup is complete, \ref senf::ppi::run() is called to enter the event loop. \until }