Layout of each Module Documentation

The documentation for each module uses the following common sections.

Module Documentation Sections


A short description of the module, and what it does.

Processing Sections

A description of how the module can be used in the various processing sections (e.g. authorize, authenticate, etc.).


Some modules add module-specific dynamic expansion, e.g. %{sql:SELECT …​}. This section describes which expansions are allowed and what parameters may be used.

Many modules register expansions based on their name. e.g. the exec module registers %{exec:..}. When another instance of the module is created, e.g. exec echo {…​}, the expansion will be registered under the instance name, instead of the module name. e.g. %{echo:…​}


This section contains a list of configuration directives for the module, e.g., timeout = 5. Each configuration directive has the following subsections:


The name of the configuration directive, e.g., timeout.


The syntax for the configuration directive. The syntax is generally one of the data types understood by the server (e.g. integer, ip, string, etc.). Please see the data types page for more information.


If necessary, a description of the range of values permitted for this configuration directive.


The default value for this configuration directive.


A description of what the configuration directive does.

Default Instances

A list (if necessary) of the default instances of the module that are included with FreeRADIUS.

See the always module for a simple example.