Tp link archer c7 ac1750 limit UDP packets with PFIFO

I just purchesed a tp link archer c7 ac1750 router today
It will be deliverd in next few days
I want to install pfifo onto it
What firware has this on it
As im a newbie here and still trying to learn
I read chaos calmer had it in it
But i cant find any links to download it
Please tell me how to get PFIFO

OpenWrt supports many qdiscs, though I'm not familiar with the PFIFO one.

If you decide to stay with the Archer C71, then the first step will be determining the version, as each has its own firmware. Versions v2-5 are well supported at this time. https://openwrt.org/toh/tp-link/archer-c5-c7-wdr7500

1 I don't know the speed you want to get through your router, but an Archer C7, being a single-core, MIPS-based device, is limited to around 150-200 Mbps with SQM without flow offload enabled, around 200-250 with it enabled, both with no wireless and no "unnecessary" services running. "Real-world" performance may be below these levels, especially with wireless or other services running.


Edit: It appears that pfifo_fast has been patched out of the OpenWrt kernel. If there was a strong reason to prefer pfifo_fast over other qdiscs, then you would likely have to remove

target/linux/generic/hack-4.19/662-remove_pfifo_fast.patch

and build your own image. It appears that the removal goes back to 2013

commit 7fa2957103
Author: Felix Fietkau <redacted>
Date:   Wed Apr 10 13:11:29 2013 +0000

    kernel: switch default qdisc from pfifo_fast to fq_codel and remove pfifo_fast
    
    Signed-off-by: Felix Fietkau <redacted>
    
    SVN-Revision: 36304

Some discussion at

http://manpages.ubuntu.com/manpages/cosmic/man8/tc.8.html#classless%20qdiscs suggests that [p|b]fifo may be present, as they are different than pfifo_fast -- I have not confirmed, though the kernel config suggests that "FIFO" is present.

$ grep 'CONFIG_NET_SCH_' build_dir/target-mips_24kc_musl/linux-ath79_nand/linux-4.19.86/.config
# CONFIG_NET_SCH_CBQ is not set
# CONFIG_NET_SCH_HTB is not set
# CONFIG_NET_SCH_HFSC is not set
# CONFIG_NET_SCH_PRIO is not set
# CONFIG_NET_SCH_MULTIQ is not set
# CONFIG_NET_SCH_RED is not set
# CONFIG_NET_SCH_SFB is not set
# CONFIG_NET_SCH_SFQ is not set
# CONFIG_NET_SCH_TEQL is not set
# CONFIG_NET_SCH_TBF is not set
# CONFIG_NET_SCH_CBS is not set
# CONFIG_NET_SCH_ETF is not set
# CONFIG_NET_SCH_GRED is not set
# CONFIG_NET_SCH_DSMARK is not set
# CONFIG_NET_SCH_NETEM is not set
# CONFIG_NET_SCH_DRR is not set
# CONFIG_NET_SCH_MQPRIO is not set
# CONFIG_NET_SCH_SKBPRIO is not set
# CONFIG_NET_SCH_CHOKE is not set
# CONFIG_NET_SCH_QFQ is not set
# CONFIG_NET_SCH_CODEL is not set
CONFIG_NET_SCH_FQ_CODEL=y
# CONFIG_NET_SCH_CAKE is not set
# CONFIG_NET_SCH_FQ is not set
# CONFIG_NET_SCH_HHF is not set
# CONFIG_NET_SCH_PIE is not set
# CONFIG_NET_SCH_PLUG is not set
# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_FIFO=y

Several of these are available as kernel modules through the package system.

$ fgrep kmod-sched .config  # Search the OpenWrt config, rather than the kernel config
# CONFIG_PACKAGE_kmod-sched is not set
# CONFIG_PACKAGE_kmod-sched-act-vlan is not set
# CONFIG_PACKAGE_kmod-sched-bpf is not set
# CONFIG_PACKAGE_kmod-sched-cake is not set
# CONFIG_PACKAGE_kmod-sched-connmark is not set
# CONFIG_PACKAGE_kmod-sched-core is not set
# CONFIG_PACKAGE_kmod-sched-ctinfo is not set
# CONFIG_PACKAGE_kmod-sched-flower is not set
# CONFIG_PACKAGE_kmod-sched-ipset is not set
# CONFIG_PACKAGE_kmod-sched-mqprio is not set
1 Like

To be more precise its called piffo queuing management

Would you share a link of what you want to do? That may help get you a better answer.

I read about it in a forum
I want to limit the udp packets down
I will try to find the link and commands
I just read it was pfifo used in chaos calmer firmware
here is a link to the website that chats about it

Posted February 27, 2016

On 2/27/2016 at 12:37 AM, RoyDavis77 said:

Hi guys, I have been doing some testing on black ops 3 using a custom Linux router (openwrt), by tweaking the queues of all router interfaces using pfifo queuing managment, limiting each queue to 3 packet length drastically improved my online experience.

I'm finding that most games im finishing top of the leaderboard, with a kd of 2.89 at present. If something like this can be implemented with netduma i'm sure the results would be even better.

The only conclusion i can come to is that the majority of problems in online FPS games is in fact caused by bufferbloat, throttling my upload mad little to no difference.

Here are the commands needed to limit it

tc qdisc add dev eth0 root pfifo limit 3

I just bought a tp link router archer c7 ac1750 router and installed opent wrt 18.06 i think its called

I really want toinstall pfifo onto it
As i want to be able to limit the quein length of my packets
Please sombody explain how i can get pfifo
I cant find out how to get it
I bought my router just o use this feature

https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm

1 Like

Start with the SQM package and see if that works for you. On the C7 It should be ok if you have less than about 100Mbps bandwidth. This is a much more sophisticated solution than creating a pfifo and limiting it to 3 packets... If it doesn't work for you then come back and ask for help with tuning it.

2 Likes

Sorry but i already had sqm installed but for me theres no pfifo on it
i had tried fq codel and cake before i have no intrest in them
But i wanna try pfifo i just have no clue how i install it so i can try it out
I bought this router last week just to try and get pfifo on it
Ok from your statement i take it you create pfifo is that correct
I was thinking i have to download it
Thanks for the replys brw

Limiting the queue to 3 packets might have helped that specific application, but is really a "sledgehammer" approach. It is likely to make all of your other connections behave poorly (and is unlikely a good approach for managing queue delay in the current era).

If you really want to try it, see http://man7.org/linux/man-pages/man8/tc-fq_codel.8.html

       tc qdisc ... fq_codel [ limit PACKETS ] [ flows NUMBER ] [ target
       TIME ] [ interval TIME ] [ quantum BYTES ] [ ecn | noecn ] [
       ce_threshold TIME ] [ memory_limit BYTES ]
1 Like

I think what we are trying to convey is that on 18.06 you should first try SQM scripts, as they take care of addressing BufferBloat (assuming you set the settings correctly).
The fix is pretty simple, so don't overcomplicate your setup.

Thank you for your help
Im not trying to acheive fixing buffer bloat
I kind of know already how to do that already
This router is my router i just bought to experiment with using pfifo
I am still lost
i read the link but thers nothing there about pfifo
Its only about fq codel thats all i see
I want to use pfifo as its packets first in first out
Can some one please explain how i get it
I know you guys think sqm is better
I just wanna try it out myself
As i been searching the web for days tring to find out how to install it
But i have not seen any info how to install pfifo

Try first fq_codel with a 3-packet limit and one flow. I suspect that is equivalent, or at least close enough with such restricted parameters.

Past that, as I didn't see it in the kmod-sched or kmod-sched-core packages and that is the case, you'd have to build a custom kernel.

Could you explain please how i would fo that
do i type a commany into putty
As im still a newbie to this stuff
Or do i set it up in the sqm on luci in the settings screen
Thank you all for your help
Looks likei wont be getting pfifo

I do know that pfifo was avaible in a previous version called chaos calmer
Sorry for all the questions but i have no clue about this stuff
i only found out about this stuff ladt week

That is exactly what that article is trying to do -- reduce buffer-induced delay.


Have you actually tried

tc qdisc add dev eth0 root pfifo limit 3

It does seem to work for me (though I'd never run a device with those settings).

2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo state DOWN mode DEFAULT group default qlen 1000
    link/ether 30:23:03:xx:xx:xx brd ff:ff:ff:ff:ff:ff

ok forget this below its all great now thank you ver mutch i read the link
told me my answer was ip link

Yeh when i type it in it says ash tc not found

opkg update
opkg install tc

You should probably also read something like https://www.linuxjournal.com/content/queueing-linux-network-stack to understand why a pure FIFO, three-packet-deep qdisc is being frowned upon so much as a way to deal with latency.

im getting closer to getting it
i got tc in stalled now when i type in
tc qdisc add dev eth0 root pfifo limit 3
it says RTNETLINK answers: File exists
but i dont see this message like yours did
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo state DOWN mode DEFAULT group default qlen 1000
link/ether 30:23:03:xx:xx:xx brd ff:ff:ff:ff:ff:ff
cheers again for your help and patiece with me

thank you very mutch you made my day
i now have it installed wahoo thanks to you guys
i read the link gave me the answer on the last question i sent you
but you guys are brilliant so thank you very ,mutch

1 Like