...
Параметр | Описание | ||
---|---|---|---|
tags | Наименование тега, которым должен быть промаркирован запрос для выполнения фильтра. В данном параметре может быть указан список наименований тегов — в таком случае фильтр будет выполнен только если запрос промаркирован всеми указанными тегами. Параметр condition игнорируется, если задан tags . | ||
condition | Условие применения фильтра. Фильтр выполняется, если вычисляемое выражение из данного ключа вернуло истину, либо не задано (и не используется tags ). | ||
case | Список пар ключей | else | Опциональный набор пар Последним элементом списка может быть из него будут вычислены и записаны, если ни одно из выраженийусловий case не вернуло истинувыполнилось. |
Code Block | ||||
---|---|---|---|---|
| ||||
plugins: filters: case_afterbefore: addextract_dst-switch_port_fornumber_dlink-relaysfrom_or_server-ip_for_otherscircuit_id: 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-Address |
...
Relay-Circuit-Id.unhex().regexp_replace("^.+/(\d+):\d+$", "\\1") |
Выполнение некоторого действия с запросом.
...