Navigation


Changes between Version 1 and Version 2 of Requirements


Ignore:
Timestamp:
Feb 25, 2011, 5:37:04 PM (11 years ago)
Author:
Sebastien Decugis
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Requirements

    v1 v2  
    22== Requirements ==
    33
    4 Since {{{freeDiameter}}} is extensible, the requirements may vary a lot depending on the extensions you are using. In this page, we are enumerating the requirements for the daemon only, which are common to all {{{freeDiameter}}} nodes. You should in addition check the documentation of the extensions you are planning to use for any addition. For example, for a backend server, the requirements will be much higher that for a simple routing agent or client.
     4Since {{{freeDiameter}}} is extensible, the requirements may vary a lot depending on the extensions you are using. In this page, we are enumerating the requirements for the framework only, which are common to all {{{freeDiameter}}} nodes. You should in addition check the documentation of the extension(s) you are planning to use for any additional dependency or constraint. For example, for a backend server, the requirements will be probably higher that for a simple routing agent or client.
    55
    66=== Hardware ===
    77
    8 By design, the Diameter protocol is quite demanding in terms of ''memory'': for example, all requests that are sent must be kept until a corresponding answer is received. In addition, since communication channels must be protected either by TLS or IPsec, decent ''computational power'' is also required. For these reasons, a very small device such as small home gateway might not be suitable to run freeDiameter reliably.
     8By design, the Diameter protocol is quite demanding in terms of ''memory'': for example, all requests that are sent must be kept until a corresponding answer is received. In addition, since communication channels must be protected either by TLS or IPsec, decent ''computational power'' is also required. For these reasons, a very small device such as small home gateway might not be suitable to run a backend server that authenticates a lot of users.
    99
    10 An average Desktop PC should provide ample resources for the daemon, unless the message load is particularly high -- well, the "real" application will probably have more severe requirements than the Diameter daemon anyway (database, ...)
     10An average Desktop PC provides ample resources for the freeDiameter daemon, unless the message load is particularly high. Of course, the "real" application will probably have more severe requirements than the freeDiameter framework anyway (database, ...)
    1111
    12 NOTE FOR LATER: Add some measurement figures!!!
     12As a hint, it is reasonable to expect 5K to 10K messages per seconds throughput from freeDiameter stack on a standard Desktop PC, with TLS protection activated. Since the framework uses multi-threading, having several CPUs will increase the throughput almost linearly.
     13
    1314
    1415=== Operating system ===
    1516
    16 {{{freeDiameter}}} source is written in C language and obeys the POSIX API. It should run on any system that provides this API -- provided that other software dependencies can be met as well -- which mean most or all *NIX flavors. To date, {{{freeDiameter}}} has been compiled and tested on GNU/Linux distributions (Debian and Ubuntu) and FreeBSD (8.2 and 8.3).
     17{{{freeDiameter}}} source is written in C language and follows the POSIX API. It should run on any system that supports this API -- provided that other software dependencies can be met as well -- which mean most or all *NIX flavors. To date, {{{freeDiameter}}} has been compiled and tested on GNU/Linux distributions (Debian, Ubuntu, Fedora, OpenSUSE) and FreeBSD (8.2 and 8.3).
    1718
    1819Since Microsoft Windows does not support the POSIX API, freeDiameter will not compile on this system. Some preliminary work has been made to compile with cygwin, but because the IPv6 support was not sufficient at that time, this environment is not supported.
     
    2930
    3031 SCTP::
    31    It is also recommended that the system supports SCTP (with a recent version of the [http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-21 SCTP socket API extension]), although {{{freeDiameter}}} can be compiled without support for SCTP through {{{cmake}}} configuration. Since the SCTP Socket API is not stable yet, it is quite difficult to provide a stable implementation which uses it... Hopefully, things will improve quickly...
     32   It is also recommended that the system supports SCTP (with a recent version of the [http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket SCTP socket API extension]), although {{{freeDiameter}}} can be compiled without SCTP by specifying a flag during {{{cmake}}} configuration ([wiki:Installation#cmakeflags DISABLE_SCTP]). Since the SCTP Socket API is not stable yet, it is quite difficult to provide a stable implementation which uses it... Hopefully, things will improve quickly...
    3233
    3334 GNUTLS::
    34    Although the [libfreeDiameter] library is not dependent on the GNUTLS library, the daemon requires it. This should not be a problem, since the [http://www.gnu.org/software/gnutls/ gnutls library] is available already on many platforms.
     35   The framework uses this library for all TLS-related operations at the moment (may change due to ticket [ticket:19]). This should not be a problem, since the [http://www.gnu.org/software/gnutls/ gnutls library] is available already on most platforms.
     36
     37 IDN::
     38   The framework uses the [http://www.gnu.org/software/libidn/ GNU libidn] library to support Internationalized Domain Names processing. It is however possible to avoid this dependency by configuring the built with [wiki:Installation#cmakeflags DIAMID_IDNA_IGNORE or DIAMID_IDNA_REJECT] options.
    3539
    3640As stated before, some extensions may have additional requirements (database backend, ...) that you should also check.
     41
    3742
    3843=== Building environment ===
     
    4247 * [source:freeDiameter/INSTALL.FreeBSD INSTALL.FreeBSD]: Detailed instruction for building on the FreeBSD platform.
    4348 * [source:freeDiameter/INSTALL.Ubuntu INSTALL.Ubuntu]: Detailed instructions for Debian and Ubuntu distributions.
     49 * [source:freeDiameter/INSTALL.Fedora INSTALL.Fedora]: Detailed instructions for Fedora, CentOS, and other Red Hat based distributions.
     50 * [source:freeDiameter/INSTALL.OpenSUSE INSTALL.OpenSUSE]: Detailed instructions for SUSE based distributions.
     51 * [source:freeDiameter/INSTALL.OpenWRT INSTALL.OpenWRT]: Information for compiling freeDiameter for embedded devices with the OpenWRT operating system.
    4452
    45 A note about the compiler: it is possible that some parts of the {{{freeDiameter}}} daemon use non-standard GNU extensions, in particular for the debug facilities. {{{gcc}}} is known to compile the project, we have not tested different compilers at this time.
     53A note about the compiler: it is possible that some parts of the {{{freeDiameter}}} framework use non-standard GNU extensions, in particular for the debug facilities. {{{gcc}}} is known to compile the project, we have not tested different compilers at this time.
    4654
    4755----