PPPoE + RADIUS Mikrotik-Rate-Limit simple queues too small

I’ve just set up two PPPoE servers running RouterOS 5.11 on RB1200 and RB1100AHx2, for about 200 customers (mostly bridged PPPoE over 5GHz 802.11n wireless, from 512k/128k to 12M/2M download/upload) They use dynamically created “default-small” pfifo queues for each PPPoE connection, based on Mikrotik-Rate-Limit attribute from RADIUS. The default queue size of 10 packets is good enough for up to about 4 Mbps of TX rate (download to customer), and people set up for 12 Mbps reported about half of that, despite enough CPU and upstream bandwidth.

I couldn’t figure out how to configure the PPPoE server to use something other than “default-small” for its dynamic queues. I don’t like the added complexity of packet marking, queues by IP address (will be even more complex when IPv6 is added), etc. So, I’ve just changed default-small queue size from 10 to 50 packets, and that seems to do the trick for the high speed customers. But, now the lower speed customers will see longer latency. Would it be possible to make RouterOS PPPoE server set up the size of these queues in time units, based on the bandwidth limit? At 12 Mb/s rate, 10 packets of 1500 bytes each will take just 10 milliseconds to fill up the queue, probably comparable to timer interrupt resolution, making the bandwidth allocation inaccurate. So, we want larger queues for high speeds, but not too much bufferbloat for the lower speeds. Would it be possible to specify the queue size of (say) 50 milliseconds, which would be converted to the number of MTU sized packets for pfifo (or simply bytes for bfifo) depending on the Mb/s rate limit for the specific customer?

Please consider this a feature request, or suggest alternative solutions. Thanks!

Marekm. Nice to see your post. You have exactly what I need. I planned to upgrade RB1000 to RB1100AHx2 on next month. But I want to test RB1100AHx2 for PPPoE server before purchase it. How many user have you got? How about your CPU usage at how many traffic transfers?
When my active clients are 130 and traffic is 50Mbps/20Mbps, CPU usage is 95-100%. But RB1000 with ROSv5.2. I believe if I upgrade to above ROSv5.7, I can save 10% of CPU.
Actually I have 2 PPPoE service based on RouterOS. Each queue size is 10 packets. It fine work for me. I think there is no chance to change dynamic queue parameter.
Please share your setup and experience. Thanks

Hi,

Anybody has feedback about this ?
I’ve set up my default-small to 100 and default to 500.. Maybe it’s crazy… but my Internet links increases traffic for more than 50% and my cpu’s seems to manage that ! Everybody has full speed.

What’s should be the best settings for a “standard” pppoe server, with 50 to 100 clients..

Best Regards,
Julien hoppe
http://www.witecom.com

I have already installed RB1100AHx2. Here is my result.

[otgonkhuu@Economy&SOHO] > ppp secret pri coun 
208
[otgonkhuu@Economy&SOHO] > ppp active print coun         
145
[otgonkhuu@Economy&SOHO] > queue simple print count-only 
145
[otgonkhuu@Economy&SOHO] > queue tree pri count-only where disabled=no
2
[otgonkhuu@Economy&SOHO] > ip firewall filter pri coun where disabled=no
39
[otgonkhuu@Economy&SOHO] > ip firewall mangle  pri coun where disabled=no  
5
[otgonkhuu@Economy&SOHO] > ip firewall nat  pri coun where disabled=no      
5
[otgonkhuu@Economy&SOHO] > system resource pri
             uptime: 4w3d11h38m55s
            version: 5.12
        free-memory: 1425636KiB
       total-memory: 1555212KiB
                cpu: e500v2
          cpu-count: 2
      cpu-frequency: 1066MHz
           cpu-load: 53%
     free-hdd-space: 18172KiB
    total-hdd-space: 41768KiB
  architecture-name: powerpc
         board-name: RB1100AHx2
           platform: MikroTik

Interface rate was following attached screenshot. Because I can`t see traffic rate using CLI.
InterfaceRate.jpg

Ok thanks,

And what about your settings for default-queue, pfifo ? and default-small ?

Cheers,
Julien
http://www.witecom.com

Dynamic simple queues always created by default-small. My default-small is:

5 * name="default-small" kind=mq-pfifo mq-pfifo-limit=50