Общие рекомендации

 

Словари

НаименованиеОписаниеСтруктураПримеры обращения к элементам
$rlm

Стандартные коды возврата модуля rlm_perl сервера FreeRADIUS:

  • REJECT — Немедленно отклонить запрос
  • FAIL В модуле возникла ошибка, ничего не отвечать на него
  • OK — Модуль успешно обработал запрос, следует передать запрос следующему модулю
  • HANDLED Модуль обработал запрос, следует прекратить обработку
  • INVALID Модуль считает запрос некорректным
  • USERLOCK — Отклонить запрос, поскольку пользователь заблокирован
  • NOTFOUND Пользователь не найден
  • NOOP Модуль успешно обработал запрос без выполнения каких-либо действий
  • UPDATED Модуль успешно обработал запрос, обновив атрибуты и значения
  • NUMCODES — Общее количество кодов возврата
{
    "REJECT":   0,
    "FAIL":     1,
    "OK":       2,
    "HANDLED":  3,
    "INVALID":  4,
    "USERLOCK": 5,
    "NOTFOUND": 6,
    "NOOP":     7,
    "UPDATED":  8,
    "NUMCODES": 9
}

$rlm.NOTFOUND

$rlm.REJECT

$var

Переменные, используемые для хранения промежуточных результатов вычислений в ходе обработки запроса.
Сохраняют своё значение на всех этапах обработки: от получения запроса до отправки ответа.

Динамически формируется в процессе обработки каждого конкретного запроса в соответствии с конфигурацией агента.

{
    "Remote-Circuit-Ids": {
        "Remote_Id": 1122,
        "Circuit_Id": 12
    },
    "Cleared-User-Name": "Ivanov-T-S"
}
$var.Remote-Circuit-Ids.Remote_Id
 
$requestАтрибуты RADIUS-запроса, полученные от модуля rlm_perl 

$request.RAD_CHECK.Auth-Type

$responseАтрибуты RADIUS-ответа, которые будут отданы модулю rlm_perl в качестве результата обработки RADIUS-запроса $response.RAD_REPLY.DHCP-MS-Classless-Static-Route
$customer_profile

Профиль абонентского оборудования, подобранный в кэше при обработке запроса

  
$provider_profileПрофиль операторского оборудования, подобранный в кэше при обработке запроса  

$bind_id

Идентификатор привязки абонентского оборудования к операторскому  
$contextВесь контекст обработки запроса, включающий в себя теги, данные запроса и ответа и все остальные словари  
$sessionСессия, подобранная в кэше при обработке пакета аккаунтинга  

Операторы

ОбозначениеОписание
or, and, notЛогические операторы: дизъюнкция, конъюнкция, отрицание
<=, <, >=, >Операторы отношения: меньше или равно, меньше, больше или равно, больше
==, !=Операторы сравнения: равно, не равно
+, -, *, /, %Арифметические операторы: сложение, вычитание, умножение, деление, целочисленное деление

Методы

Формат вызоваОписаниеПример использования
coalesce(<list_of_values>)  

empty?()

  

ends_with?(<suffix>[, <start_position>[, <end_position>]])

  

extract(<code_type>, <start_position>[, <length>])

  

format_mac([<delimeter>][, <groups>])

  

gigabytes()

  

has_field?(<field_name>)

  

has_tag?(<tag_name>)

  

in?(<list_of_values>)

  

int([<base>])

  

ip4?()

  

ip4_and(<mask_string>)

  

ip4_mask?()

  

ip4_or(<mask_string>)

  

ip4_scan()

  

join(<delimeter>)

  

like?(<pattern>)

  

lower()

  

mac?()

  

map_join(<delimeter>)

  

merge(<list_of_values>)

  

mod(<divider>)

  

normalize_mac()

  

null?()

  

pad_left(<length>, <pad_string>)

  

pad_right(<length>, <pad_string>)

  

pairs()

  

present?()

  

private_ip4?()

  

regexp_replace(<regexp>[, <replacement_template>])

  

replace(<string_to_replace>[, <replacement])

  

reverse()

  

split([<separator>[, <maxsplit>]])

  

starts_with?(<prefix>[, <start_position>[, <end_position>]])

  

strip(<chars>)

  

substring(<from_position>[, <to_position>])

  

to_date(<format>)

  

to_days()

  

to_hours()

  

to_minutes()

  

to_s([<format>])

  

to_seconds()

  

to_subnet_suffix()

  

to_subnet_mask()

  

try(<field_name>[, <default_value>])

  

unhex()

  

upper()