Mikrotik-Rate-Limit

I’m trying to use the Mikrotik-Rate-Limit radius attribute for users connecting to a PPPoE concentrator on a routerboard.

If I configure a simple radius attribute like “Mikrotik-Rate-Limit = 1M/1M” things seem to work - my user gets connected and a simple queue is setup capping them at 1mbit up and down.

However, if I try a more complex directive like “Mikrotik-Rate-Limit = 512k/512k 1M/1M 256K/256K 30/30 7”, the user is able to connect, but the queue is setup with only the first rate (512k) specified - no burst, burst thresholds, priorities etc.

Besides setting up the radius client and PPPoE server this is a clean install of 6.17. I have looked at the log and I can see that the router receives the attribute correctly, it just doesn’t seem to obey it.

Am I missing something? If there’s another way to achieve the same thing I’d be open to that too (creating a parent queue and placing sessions there maybe?).

I would go by using address list option on pppoe profile. Just assign an address list on the profile and live the rates blank on both, routeros and radius.
Then use address list to mark packets in mangle, and use those marks in queues.

Unfortunately users will not be getting a fixed IP - it will be assigned by radius attributes at the time of connection. Ideally we wouldn’t need to touch our PPPoE concentrators to adjust user rate limits - this is all (in theory) supported via attributes so we’d just be creating more work for ourselves if we went down that path…

And they will be part of the same address list, always.
It might look as more work, but actually it could be less in future. Using address lists will help also having less queues by grouping them in queue tree instead of creating hundreds of dynamic simple queues.

Not necessarily. Some of our users have static IP’s, but also have the ability to move between plans (speeds) while maintaining the same address.

I do agree that having a parent queue is a better idea though - would love to be able to assign a queue tree via radius, not sure if this is possible though.