Пытались начать использовать скрипт управления скоростью. Столкнулись с непонятной проблемой.
Был создан тестовый тариф с скорость 30 мегабит в секунду на вход и 3 на выход.
В скрипте было прописано
if ( get_hour() > 10 ) { set_speed(10000) }
Клиент подключается, создаются два правила фаервола (один для исходящего трафика с скоростью 3 мегабита, другой для входящего с скоростью 30 мегабит). Вроде бы все ок.
Когда срабатывает скрипт - меняется почему-то только исходящая скорость, входящая остается такой же 30 мегабит.
При изменении входящей скорости в самом тарифе - она корректно меняется в фаерволе.
Стали копать глубже.
Сделали общую скорость для входящей и исходящей скорости. Все корректно создались записи в двух таблицах фаервола с одним и тем же номером пайпа с скоростью заданой в тарифе. При срабатывании скрипта - создается новый пайп в таблице исходящей скорости с скоростью 10 мегабит а пайп входящей скорости так и не изменяется. При использовании set_speed_in - ничего не происходит (остаются два правила в таблицах вход/выход с скоростью прописаной в тарифе). При использовании set_speed_out - создается другой пайп с скоростью из скрипта (10мегабит).
В файле noserver/scripts.pm вроде бы все ок
sub set_speed
{
$Usr->{speed_in1} = $Usr->{speed_out1} = $_[0]*1000;
}
Подводим итог - скриптом не получается изменить входящую скорость абонента