RADIUS/Diameter extensible gateway

This extension provides an extensible framework to deploy RADIUS/Diameter translation functions. The basic flow is described bellow:

Error: Failed to load processor graphviz
No macro or processor named 'graphviz' found

The purpose is to allow a RADIUS client to work with a Diameter server, when the RADIUS and Diameter applications allow it -- some Diameter messages cannot be translated to RADIUS because of limitations in this protocol.

The app_radgw.fdx extension provides the basic functions of the gateway, but additional plugins (.rgwx files) must be loaded in addition to translate specific RADIUS messages. See the Plugins section bellow for additional details.


app_radgw.fdx configuration file is mandatory. The complete configuration documentation for this extension can be found in the source package: app_radgw.conf.sample.

The configuration file contains:

  • The list of plugins to load. These will influence how the messages are translated.
  • The list of RADIUS clients with their shared secrets.
  • The port and IP to use for listening to RADIUS messages.


The RADIUS/Diameter extensible gateway comes with a number of plugins for translation of RADIUS messages. The following plugins are included:

This plugin provides the translation of RADIUS Accounting messages to Diameter Base Accounting application. It supports the RADIUS attributes defined in RFC2866 (RADIUS Accounting), RFC5080 (fixes), RFC3162 (IPv6), RFC2868 (Tunnels), RFC2869 (extensions), and RFC3579 (EAP). The Diameter AVPs supported come from RFC3588 (Diameter Base) and RFC4005 (NASREQ).
This plugin provides the translation of RADIUS Access messages to Diameter NASREQ application or Diameter EAP application (if the request contains an EAP attribute). It supports the RADIUS attributes defined in RFC2865 (RADIUS), RFC5080 (fixes), RFC3162 (IPv6), RFC2868 (Tunnels), RFC2869 (extensions), and RFC3579 (EAP). The Diameter AVPs supported come from RFC3588 (Diameter Base), RFC4005 (NASREQ) and RFC4072 (EAP).
debug.rgwx and sample.rgwx
These plugins are mainly used for debug and development. The debug plugin displays the state of translation of each message. It can be used to check the behavior of other plugins for example. It does not take a real configuration file, but will display any string passed as configuration file in its output (useful if you use the extension several times for the same message). The sample plugin is just a skeleton that can serve as a base to develop a new plugin.
This simple plugin allows to handle a specific RADIUS attribute and either copy it verbatim in the RADIUS answer, or drop it. In both cases, the attribute is not translated in the Diameter message. See the echodrop.rgwx.conf.sample file for more information on this plugin configuration.
(work in progress) See app_sip page for information.


Once loaded properly, the extension does not require any interaction. It will be trigged by incoming RADIUS messages.


This extension does not produce any particular output. It uses the debug facility from the libfreeDiameter, so the debug messages can be obtained in the same way as the daemon's (see Usage? section).


Translation of RADIUS messages to Diameter is quite a complex task. It is likely that the translation plugins need some fine-tunning to fit your particular needs. The first reflex to troubleshoot translation problems is to read the debug logs and search for errors. The debug.rgwx can also be a handy tool to understand the translation process.

Last modified 10 years ago Last modified on Jul 26, 2010, 1:58:22 PM