| 1 | = Source repository overview = |
| 2 | |
| 3 | The freeDiameter source code is split in several modules. The layout of the source repository mimics this structure. Each component is briefly explained here: |
| 4 | |
| 5 | libfdproto:: |
| 6 | The "lower level" library of the framework. |
| 7 | This library provides the necessary functions to parse or create Diameter messages |
| 8 | and AVPs, including dictionary support. |
| 9 | It also provides additional features such as logging facility, |
| 10 | simple Diameter sessions handling support, etc. |
| 11 | The complete API to the library is documented in the source file |
| 12 | [source:freeDiameter/include/freeDiameter/libfdproto.h |
| 13 | include/freeDiameter/libfdproto.h]. |
| 14 | It is conceivable that this library will be reused by other projects |
| 15 | that do not require the full freeDiameter framework. |
| 16 | |
| 17 | libfdcore:: |
| 18 | This is the main component of the {{{freeDiameter}}} framework. |
| 19 | This library handles all Diameter network operations, |
| 20 | such as management of peers connections, Diameter Base Protocol operations, |
| 21 | messages routing, etc. |
| 22 | In addition, this library can load {{{extensions}}} to support new features. |
| 23 | To initialize this library, a configuration file is required |
| 24 | (see [wiki:Configuration] page about this file). |
| 25 | The complete API to this library is documented in the source file |
| 26 | [source:freeDiameter/include/freeDiameter/libfdcore.h |
| 27 | include/freeDiameter/libfdcore.h]. |
| 28 | This library strongly depends on {{{libfdproto}}} and also the |
| 29 | GNU TLS library. |
| 30 | |
| 31 | freeDiameterd:: |
| 32 | This is a simple daemon that parses command-line options, initializes |
| 33 | the {{{freeDiameter}}} framework (libfdcore), and waits for signal to |
| 34 | terminate. |
| 35 | Note that the {{{freeDiameter}}} framework can be used without this |
| 36 | daemon by linking the ''libfdcore'' library and calling the appropriate |
| 37 | initialization functions directly from a different application. |
| 38 | |
| 39 | extensions:: |
| 40 | This folder contains the source of all extensions that are included in |
| 41 | freeDiameter. See the [wiki:Extensions] page for details about each extension. |
| 42 | |
| 43 | include/freeDiameter:: |
| 44 | This contains all the "public" header files for the freeDiameter framework. |
| 45 | The header file directly contain the documentation of each function. |
| 46 | This is the first place to look for information about a function of the framework. |
| 47 | |
| 48 | doc:: |
| 49 | This folder contains the documentation and sample configuration files for the |
| 50 | framework and its extensions. |
| 51 | |
| 52 | tests:: |
| 53 | This contains the unit tests for the framework. |
| 54 | We are running the tests nightly on several machines to check for regressions. |
| 55 | See the [http://www.freediameter.net/CDash/index.php?project=freeDiameter Dashboard] |
| 56 | for the latest test status report. |
| 57 | |
| 58 | cmake:: |
| 59 | This contains additional definitions for the build system. |
| 60 | |
| 61 | contrib:: |
| 62 | This contains additional resources that may be useful to freeDiameter users. |
| 63 | See the [source:freeDiameter/contrib/README README] file in this folder |
| 64 | for more information. |
| 65 | |
| 66 | ---- |