| | 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 | ---- |