Redback Ericsson + Freeradius log

Всё началось с того, что Эриксон работая как брас с pppoe слал в атрибуте Calling-Station-Id значения типа Redback#1/4#185:112, а не mac-address клиента
Такая ситуация совсем не устраивала саппортов, когда нужно было провести диагностику.
Вобщем ближе к делу, логи радиуса были такие:

Login OK: [simaginev/<CHAP-Password>] (from client se1200 port 335556290 cli Redback#1/4#136:101)

А мне хотелось видеть mac клиента.

Идея заключалась в том чтобы взять и переписать атрибут Calling-Station-Id на радиусе, добавив в него атрибут Mac-Addr в котором приходил мак клиента с эриксона ну и подредактировать красиво.
Для этого нужно было расковырять модуль attr_rewrite

1. Пишем скрипт на чем угодно мне удобнее на баше, называем его rw_call_stat_id

#!/bin/bash
 
if [ "`echo $2 | grep Redback`" != "" ]; then
  vlan="from vlan `echo $2 | awk -F '#' '{print $3}'`"
  port="from port `echo $2 | awk -F '#' '{print $2}'`"
  echo -n $vlan" "$port" "
fi
if [ "echo $1" != "" ]; then
  mac=`echo $1 | sed 's/-/:/g'`
  echo -n $mac
fi

2. Добавляем в конец файла /etc/freeradius/modules/attr_rewrite следующее:
attr_rewrite rwcallstatid {
        attribute = "Calling-Station-Id"
        searchin = packet
        new_attribute = no
        searchfor  = ".+"
        ignore_case = no
        replacewith = "%{exec:/etc/freeradius/rw_call_stat_id %{Mac-Addr} %{Calling-Station-Id}}"
        append = no
    }

3. А также в модуль exec

exec {
    wait = yes
    ....
} 

4. И в конец секции authorize добавляем название правила перезаписи
authorize {
...
rwcallstatid 
}

5.Логи стали красивымии шелковистыми
Login OK: [koshechkina/<CHAP-Password>] (from client se1200 port 335556662 cli from vlan 185:112 from port 1/4 f8:32:e4:b8:f3:48)