---
name: "rlm_always"
section: "5"
platform: "linux"
package: "freeradius"
version: "3.2.10-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/rlm_always"
---

# rlm\_always(5)

FreeRADIUS Module

## NAME

rlm\_always - FreeRADIUS Module

## DESCRIPTION

The *rlm\_always* module provides a simple way to "always" return a value during the processing of a configuration section.

The main configuration item is *rcode*, which sets the return code that this instantiation of the module will return. The default, if none specified, is 'fail'.

The valid options for rcode are as follows:

- reject

  reject the user;

- fail

  a failure has occurred;

- ok

  success;

- handled

  the request has been handled: processing should be stopped and the response sent;

- invalid

  request is invalid;

- userlock

  the user account has been locked out;

- notfound

  the user account cannot be found;

- noop

  no-op: nothing has happened;

- updated

  the request has been updated.

## CONFIGURATION

- rcode = \<code\>

  This module will always return with the code specified, as listed in the table above.  If unspecified, the default is 'fail'.

- simulcount = \<n\>

  If this module is used in the session{} section, the simulcount option simulates the user having 'n' current sessions. The default is to not override the number of sessions.

- mpp = \<yes\|no\>

  If set to yes, and this module is used in the session{} section, this simulates the user having multilink sessions.  The default is 'no'.

## EXAMPLE

```

modules {
  ...
  # instantiate the "always" module with the name "ok"
  always ok {
	# return code for this instantiation is "ok":
	rcode = ok
  }
  ...
}
authorize {
  ...
  redundant {
     sql1          # try to find the user in sql1
     sql2          # try to find the user in sql2
     # the default here would be to fail, but...
     ok            # if still not found, it's OK.
  }
  ...
}
```

## SECTIONS

**authorization,** **authentication,** **postauthentication,** **preaccounting,** **accounting,** **preproxy,** **postproxy**

## FILES

*/etc/raddb/mods-available/always*

## SEE ALSO

[**radiusd**(8)](/radiusd/8.md), [**radiusd.conf**(5)](/radiusd.conf/5.md), [**unlang**(5)](/unlang/5.md)

Further details of how module return codes operate can be found at \<http://wiki.freeradius.org/config/Fail-over\>.

## AUTHOR

Chris Parker \<cparker@segv.org\>, Matthew Newton \<matthew@newtoncomputing.co.uk\>.
