HFSC(8)

✨ HFSC ✨

okay so bestie, this is the manual page for HFSC 🦋 (manual section 8, the admin stuff), and it's all about the Hierarchical Fair Service Curve scheduler on Linux 🌸

✨ NAME ✨

HFSC - Hierarchical Fair Service Curve's control under linux 💖

✨ SYNOPSIS ✨

okay the vibe here is you use tc to set up the qdisc and classes 💅

tc qdisc add ... hfsc [ default CLASSID ]

tc class add ... hfsc [ [ rt SC ] [ ls SC ] | [ sc SC ] ] [ ul SC ]

here's what the little words mean 🧚

  • rt : realtime service curve
  • ls : linkshare service curve
  • sc : rt+ls service curve
  • ul : upperlimit service curve

some rules you NEED to know, no cap 🙈

  • at least one of rt, ls or sc must be specified
  • ul can only be specified with ls or sc

there are two ways to write a service curve (SC), so pick your fighter 🎀

SC := [ [ m1 BPS ] d SEC ] m2 BPS
       m1 : slope of the first segment
       d  : x-coordinate of intersection
       m2 : slope of the second segment

SC := [ [ umax BYTE ] dmax SEC ] rate BPS
       umax : maximum unit of work
       dmax : maximum delay
       rate : rate

for what BYTE, BPS and SEC actually mean, go check the UNITS section of tc(8) 🫶

✨ DESCRIPTION (qdisc) ✨

the HFSC qdisc only has ONE optional parameter, and it's default 💜 CLASSID sets the minor part of the default classid, which is where packets that weren't classified some other way (like a u32 filter or the CLASSIFY target of iptables) get queued up ✨

if you don't set default, any unclassified packets get dropped 😭

✨ DESCRIPTION (class) ✨

HFSC classes are how you build a class hierarchy for the HFSC scheduler 🌈 for the actual algorithm, and what rt, ls, sc and ul service curves mean, read tc-hfsc(7), it's giving detailed and I love it 🤓

like the SYNOPSIS showed, a service curve (SC) can be given in two ways. Either as a maximum delay for a certain amount of work, or as a bandwidth assigned for a certain amount of time 🍓 Obviously, m1 is simply umax/dmax 🧠

both m2 and rate are mandatory, bestie 🫶 and if you leave out the other parameters, you end up with a linear service curve ✨

✨ SEE ALSO ✨

if you find bugs or have patches, send them to <netdev@vger.kernel.org> 🐛💌

✨ AUTHOR ✨

this manpage was created by Michal Soltys (soltys@ziu.info) 👑


bestie, this page is from the iproute2 project, last updated 31 October 2011, and it's the HFSC(8) manual, so it's all set 🌸💅✨

📦 where this page comes from