When building against a self-built SENF which will probably be in debug mode, the '-DSENF_DEBUG'
option must be added to the compile command.
- The most simple way to build using SENF is to use a very simple SCons helper which automatically
- supports debug and final builds, uses SENF either centrally installed or locally built and has
- some other nice features. See <a
- href="../../senfscons/doc/html/index.html#senfutil_overview">Building Projects using SENF</a>
- for more info and an example for this utility.
-
\see \ref senf_components \n
\ref senf_overview
*/
oriented network applications. The library provides a large set of pre-defined modules as well
as the necessary helpers to implement application specific processing modules.
- \see <a href="../../PPI/doc/html/index.html">libPPI API reference</a>
+ \see <a href="../../senf/PPI/doc/html/index.html">libPPI API reference</a>
\section libSocket libSocket: C++ abstraction of the BSD socket API
API. It utilizes a flexible and extensible policy based design. The library provides predefined
types for the important socket types (UDP and TCP sockets etc) including raw and packet sockets.
- \see <a href="../../Socket/doc/html/index.html">libSocket API reference</a>
+ \see <a href="../../senf/Socket/doc/html/index.html">libSocket API reference</a>
\section libPackets libPackets: Network packet manipulation
packetized network data. Included is a library of several protocol parsers covering the basic
IPv4 and IPv6 network protocols down to the Ethernet layer.
- \see <a href="../../Packets/doc/html/index.html">libPackets API reference</a>
+ \see <a href="../../senf/Packets/doc/html/index.html">libPackets API reference</a>
\section libScheduler libScheduler: Asynchronous event handling
event dispatcher. It is based on the high performance \c epoll system call. It provides support
for read/write events as well as simple timer based events.
- \see <a href="../../Scheduler/doc/html/index.html">libScheduler API reference</a>
+ \see <a href="../../senf/Scheduler/doc/html/index.html">libScheduler API reference</a>
\section libUtils libUtils: Collection of arbitrary utilities
\li An interface to the \c g++ de-mangler integrated with type_info
\li Typedefs and rudimentary methods to simplify handling high-resolution time values
- \see <a href="../../Utils/doc/html/index.html">libUtils API reference</a>
+ \see <a href="../../senf/Utils/doc/html/index.html">libUtils API reference</a>
\section senfscons SENFSCons, the SENF build environment
\section senf_startup Getting starting developing with SENF
To introduce the framework and it's general structure, a simple example application is provided
- in the SENF repository in the \c Sniffer module. Peruse this example to get a first look at how
+ in the SENF repository in the \c %Sniffer module. Peruse this example to get a first look at how
to make use of SENF.
When building a network Application with SENF, you will use several modules:
- \li Use the <a href="../../Socket/doc/html/index.html">Socket library</a> for network
+ \li Use the <a href="../../senf/Socket/doc/html/index.html">Socket library</a> for network
communication needs. This library includes support for raw and packet sockets to allow low
level network access.
- \li Use the <a href="../../Scheduler/doc/html/index.html">Scheduler library</a> to coordinate
- the asynchronous event processing. This drastically reduces the number of threads needed in
- your application and will greatly enhance the overall responsiveness.
+ \li Use the <a href="../../senf/Scheduler/doc/html/index.html">Scheduler library</a> to
+ coordinate the asynchronous event processing. This drastically reduces the number of threads
+ needed in your application and will greatly enhance the overall responsiveness.
\li To interpret low level network packets, use the <a
- href="../../Packets/doc/html/index.html">Packets library</a>. This library will provide
+ href="../../senf/Packets/doc/html/index.html">Packets library</a>. This library will provide
efficient and convenient access to all protocol fields. It supports parsing as well as
modifying and creating packets. It has default support for the most important Internet
protocols and is highly extensible with new protocols.
- \li Go over the <a href="../../Utils/doc/html/index.html">Utils library</a>. It contains small
+ \li Go over the <a href="../../senf/Utils/doc/html/index.html">Utils library</a>. It contains
+ small
helpers to simplify tasks like daemonization, exception handling, debugging and so on.
The simplest way to get started is: copy the Sniffer application and start to modify it.
\section ppi_packets Packets
- The PPI processes packets and uses the <a href="@TOPDIR@/Packets/doc/html/index.html">Packet
- library</a> to handle them. All packets are internally passed around as generic \ref
- senf::Packet references, however connectors may optionally be defined as sending or receiving
- packets of a specific type only.
+ The PPI processes packets and uses the <a
+ href="@TOPDIR@/senf/Packets/doc/html/index.html">Packet library</a> to handle them. All packets
+ are internally passed around as generic \ref senf::Packet references, however connectors may
+ optionally be defined as sending or receiving packets of a specific type only.
\section ppi_modules Modules
The PPI really is not concerned, how the events are called and what information is needed to
perform the call. This is handled by the <a
- href="@TOPDIR@/Scheduler/doc/html/index.html">Scheduler</a>, which is wrapped by the event
+ href="@TOPDIR@/senf/Scheduler/doc/html/index.html">Scheduler</a>, which is wrapped by the event
classes.
All events are derived from senf::ppi::EventDescriptor. The base class allows to enable and