Navigation


Changes between Version 4 and Version 5 of Requirements


Ignore:
Timestamp:
Mar 3, 2011, 2:00:59 PM (13 years ago)
Author:
Administrator
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Requirements

    v4 v5  
    88By 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 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, ...)
     10An average Desktop PC provides ample resources for the freeDiameter framework, 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
    1212As 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.
     
    2525
    2626 Pthreads::
    27    The {{{freeDiameter}}} implementation is multi-threaded, the system must provide a (stable enough) POSIX threads support.
     27   The {{{freeDiameter}}} implementation is multi-threaded, the system must provide a stable POSIX threads support, including pthread cancellation support ([http://www.uclibc.org/downloads/uClibc_vs_SuSv3.txt uClibc] does not support it at the moment.)
    2828
    2929 IPv6::
    30    The target system must support IPv6. Removing this requirement from {{{freeDiameter}}} would require a large change in the source code.
     30   The target system must support IPv6. Removing this requirement from {{{freeDiameter}}} would require a large change in the source code. Note that this does not mean that an IPv6 address must be configured.
    3131
    3232 SCTP::
    33    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...
     33   It is 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.
    3434
    3535 GNUTLS::
    36    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   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. Note that this library itself depends on ''libgcrypt''.
    3737
    3838 IDN::
    39    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.
     39   The framework uses the [http://www.gnu.org/software/libidn/ GNU libidn] library to process Internationalized Domain Names in Diameter Identities. It is possible to avoid this dependency by configuring the build with [wiki:Installation#cmakeflags DIAMID_IDNA_IGNORE or DIAMID_IDNA_REJECT] options.
    4040
    4141As stated before, some extensions may have additional requirements (database backend, ...) that you should also check.