...
Info |
---|
Конфигурации фильтров являются общими для всех экземпляров плагинов. Набор используемых фильтров и порядок их вызова определяется списком |
...
Параметр | Описание | ||
---|---|---|---|
tags | Наименование тега, которым должен быть промаркирован запрос для выполнения фильтра. В данном параметре может быть указан список наименований тегов — в таком случае фильтр будет выполнен только если запрос промаркирован всеми указанными тегами. Параметр condition игнорируется, если задан tags . | ||
condition | Условие применения фильтра. Фильтр выполняется, если вычисляемое выражение из данного ключа вернуло истину, либо не задано (и не используется tags ). | ||
case | Список пар ключей | else | Опциональный набор пар Последним элементом списка может быть из него будут вычислены и записаны, если ни одно из выраженийусловий case не вернуло истинувыполнилось. |
Code Block | ||||
---|---|---|---|---|
| ||||
plugins: filters: case_afterbefore: adddecode_dst-port_for_dlink-relays_or_server-ip_for_othersoption_82: tags: post_auth case: - when: $context$request.has_tagRAD_REQUEST.DHCP-Relay-Circuit-Id.like?("dlink_dhcp-relay^0x0006[0-9a-f]{12}$") then: $response.'$var.PE-Switch-MAC-Address': $request.RAD_REPLYREQUEST.PacketDHCP-Dst-Port: '"67"' Relay-Remote-Id.substring(2).format_mac() '$var.PE-Switch-Port-Number': $request.RAD_REQUEST.DHCP-Relay-Circuit-Id.substring(-2).to_i(16).to_s() - when: $response$request.RAD_REPLYREQUEST.try("DHCP-Router-Address").ip4?(Relay-Circuit-Id.like?("^0x[0-9a-f]{20}$") then: $response.'$var.PE-Switch-MAC-Address': $request.RAD_REPLYREQUEST.DHCP-DHCPRelay-Server-Identifier: $response.RAD_REPLY.DHCP-Router-Address Remote-Id.substring(2).format_mac() '$var.PE-Switch-Port-Number': $request.RAD_REQUEST.DHCP-Relay-Circuit-Id.substring(-10, -8).to_i(16).to_s() - else: $response.RAD_REPLY '$var.PE-Switch-IP-Address': $request.RAD_REQUEST.DHCP-ServerRelay-IP-Address: $responseRemote-Id.unhex() '$var.PE-Switch-Port-Number': $request.RAD_REPLYREQUEST.DHCP-Router-AddressRelay-Circuit-Id.unhex().regexp_replace("^.+/(\d+):\d+$", "\\1") |
check_attr_before
...
Выполнение некоторого действия с запросом.
...
Code Block | ||||
---|---|---|---|---|
| ||||
plugins:
filters:
divide_after:
tags:
- authorize
- service_status_ok
- residential_customer
divide_speed_limits:
factors:
'$response.RAD_REPLY.HARD-Day-In-Speed': 8
'$response.RAD_REPLY.HARD-Day-Out-Speed': 2
'$response.RAD_REPLY.HARD-Night-In-Speed': 4
'$response.RAD_REPLY.HARD-Night-Out-Speed': 2 |
...
Code Block | ||||
---|---|---|---|---|
| ||||
plugins:
filters:
format_after:
combine_rate_and_burst_values:
tags: [authorize, individual_customer]
values:
InRate: '$response.RAD_REPLY.InRate'
OutRate: '$response.RAD_REPLY.OutRate'
destination: '$response.Speed-Limits'
template: 'InRate=#{$InRate};InBurst=#{($InRate.to_i() / 8 * 900).to_i()};OutRate=#{$OutRate};OutBurst=#{($OutRate.to_i() / 8 * 900).to_i()}'
delete_values: true |
...