[NetDev-People] 0x14: nutsnbolts talks, Hierarchical Token Bucket
Jamal Hadi Salim
jhs at mojatatu.com
Mon Jan 27 16:00:31 UTC 2020
Hierarchial bandwith management is a very important packet
service for a lot of networking use cases (ranging from large data
centres to service provider use cases, etc).
Over the last decade, the TC Hierarchical Token Bucket(HTB) qdisc
has emerged as the most popular non-work conserving queueing discipline
for enabling this service in Linux.
HTB is quite flexible and versatile, but at large scale
(think thousands to million flows) it comes at a cost:
1) cpu cycles predominantly due to stalls caused by shared
queus lock contentions 2)extensive memory costs when adding many flows.
At 0x14 we have two sessions that are addressing this issue in
Our first talk is from Yosef Kuperman, Rony Efraim and Maxim
Mikityanskiy and focuses on offloading HTB to the NIC hardware
Flow classification takes place in the TC egress clsact to avoid
any sorts of (queue) locking. Packets are tagged and the offloaded
HTB uses these tags as flow/classids to select the correct queue in
Kuperman et al will go over the challenges they overcame, show
performance numbers and solicit feedback.
Our second talk is from the Google folks Stanislav Fomichev, Eric
Dumazet, Willem de Bruijn, Vlad Dumitrescu, Bill Sommerfeld and
Google has for many years utilized HTB and consequently faced scaling
With the recent introduction of Early Departure Time model (See
Van Jacobson's keynote on EDT in netdev 0x12), an opportunity has
opened up to achieve the same packet service in a more efficient way.
In this talk, Stan et al describe how they moved away from HTB
The packet service is created using composition of BPF, FQ and
EDT. The authors will provide performance numbers, discuss some of the
outstanding challenges and solicit feedback from the community.
Reminder, registration is now open and early bird is still in effect.
More information about the people