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 different ways.
Our first talk is from Yosef Kuperman, Rony Efraim and Maxim Mikityanskiy and focuses on offloading HTB to the NIC hardware (Mellanox cnx5). 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 the hierarchy. Kuperman et al will go over the challenges they overcame, show performance numbers and solicit feedback.
More Info: https://netdevconf.info/0x14/session.html?talk-hierarchical-QoS-hardware-off...
Our second talk is from the Google folks Stanislav Fomichev, Eric Dumazet, Willem de Bruijn, Vlad Dumitrescu, Bill Sommerfeld and Peter Oskolkov. Google has for many years utilized HTB and consequently faced scaling challenges. 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 altogether. 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.
More info: https://www.netdevconf.info/0x14/session.html?talk-replacing-HTB-with-EDT-an...
Reminder, registration is now open and early bird is still in effect. https://netdevconf.info/0x14/registration.html
cheers, jamal