Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleПример фильтра case_before: различное декодирование DHCP-опции 82 при различных форматах Circuit-Id
collapsetrue
plugins:
  filters:
    case_before:
      extractdecode_switch_port_number_from_circuit_idoption_82:
        case:
          - when: $request.RAD_REQUEST.DHCP-Relay-Circuit-Id.like?("^0x0006[0-9a-f]{12}$")
            then:
              '$var.PE-Switch-MAC-Address': $request.RAD_REQUEST.DHCP-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: $request.RAD_REQUEST.DHCP-Relay-Circuit-Id.like?("^0x[0-9a-f]{20}$")
            then:
              '$var.PE-Switch-MAC-Address': $request.RAD_REQUEST.DHCP-Relay-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:
              '$var.PE-Switch-IP-Address': $request.RAD_REQUEST.DHCP-Relay-Remote-Id.unhex()
              '$var.PE-Switch-Port-Number': $request.RAD_REQUEST.DHCP-Relay-Circuit-Id.unhex().regexp_replace("^.+/(\d+):\d+$", "\\1")

...