interfaces-cake(5)

πŸ“¦ version 0.13.0, in alpine 3.24

πŸ’… interfaces-cake β€” the manual page, but make it make sense

okay bestie so this is the manual for interfaces-cake, which is the CAKE extensions situation for the interfaces(5) file format. yes that's a manual page name and a manual-section number both, we contain multitudes πŸ’–


✨ NAME ✨

interfaces-cake β€” the CAKE extensions for the interfaces(5) file format. that's it, that's the name, slay πŸŽ€


🌸 DESCRIPTION 🌸

so. CAKE. it stands for Common Applications Kept Enhanced, which is genuinely the most main-character acronym ever, and it's a shaping-capable queue discipline that uses both AQM and FQ. two icons, one queue. πŸ’…

every single parameter for CAKE is optional, which is lowkey generous of it β€” but ngl most applications would benefit from specifying a bandwidth estimate. the overhead and RTT parameters can also give you meaningful tuning for a lot of applications, if you happen to have info about the underlying link technology (iykyk).

heads up bestie: go read tc-cake(8) for the details on all the parameters, plus the guidance on how to pick them for different applications. that's where the deep lore lives. ✨

if you're sitting there like "idk what to do 😭" β€” try setting the bandwidth parameter to the link rate of your modem, or to the rate you find with an egress speed test. boom. you're a network engineer now. 🫢


πŸ‘‘ CAKE OPTIONS πŸ‘‘

  • cake-args complete_cake_arguments β€” if you provide this, the whole set of arguments gets passed directly to tc-cake(8). if you already know your CAKE config you can literally just paste it here, no modification needed. and the plot twist: all other parameters are ignored if this one is set. it's giving "I'm the captain now". πŸ’€
  • cake-bandwidth rate β€” the transmission rate of the interface, in floating-point bits per second, with an optional unit like 124.5Mbit. there is no default, which is equivalent to disabling the overall bandwidth limit. so like, no cap. literally. 🌈
  • cake-rtt time β€” round-trip transmission delay for typical traffic on this interface. Default: internet
  • cake-tins queue_set β€” specifies the set of queues and related tuning CAKE will use. Default: diffserv3
  • cake-isolation isolation_type β€” specifies the data used to hash flows within each queue. Default: triple-isolate
  • cake-nat boolean β€” do a NAT lookup before flow hashing. can improve fairness among hosts behind NAT translations performed by this router. Default: false
  • cake-wash boolean β€” clear all extra diffserv (but not ECN bits) after priority queuing has taken place. Default: false
  • cake-split_gso boolean β€” disable GSO (General Segmentation Offload) to improve latency. many applications under 10Gbps should use the default: true
  • cake-ack ack_filter_type β€” select the type of ACK filtering used in CAKE. this can be useful on asymmetric links where ACKs are likely to get queued. Default: no-ack-filter
  • cake-memlimit bytes β€” limit the overall memory use of CAKE for this interface. there is no default πŸ™ˆ
  • cake-fwmark mask β€” override tin selection with firewall marks and this mask. there is no default
  • cake-atm atm_compensation_type β€” apply ATM or PTM compensation when calculating overhead. Default: noatm
  • cake-overhead bytes β€” per-packet overhead, used to derate the overall bandwidth to compensate for the difference between the in-kernel packet size and the on-wire packet size. Default: raw, which uses the kernel's packet size without compensation
  • cake-mpu bytes β€” minimum on-wire packet length, used to derate the overall bandwidth for packets where the calculated raw size + overhead would be smaller than this number. there is no default
  • cake-ingress boolean β€” enable ingress mode. typically this would be used with an IFB device to apply shaping to ingress traffic. Default: false

πŸ¦‹ EXAMPLES πŸ¦‹

🌱 Minimal configuration

like, the bare minimum. the "just got out of bed" fit:

auto foo
iface foo
     use cake

⭐ Typical configurations

this one shapes ingress traffic to 1 Gbps while applying docsis (cable modem) overhead compensation. iconic behavior honestly:

auto foo
iface foo
     use cake
     cake-bandwidth 1Gbit
     cake-overhead docsis

and this one shapes ingress traffic up to 1 Gbps while applying ethernet + ether_vlan (Ethernet with tagged VLAN) overhead compensation and ACK filtering. that's the full glow-up:

auto foo
iface foo
     use cake
     cake-args bandwidth 1Gbit ethernet ether-vlan nat ack-filter

πŸ’« All available options

the whole entire wardrobe. every option, one outfit:

auto foo
iface foo
     use cake
     cake-bandwidth 1Gbit
     cake-rtt internet
     cake-tins diffserv3
     cake-isolation triple-isolate
     cake-nat false
     cake-wash false
     cake-split_gso true
     cake-ack no-ack-filter
     cake-memlimit 20000K
     cake-fwmark 0x0
     cake-atm noatm
     cake-overhead raw
     cake-mpu 84
     cake-ingress false

πŸ”₯ SEE ALSO πŸ”₯

interfaces-cake-ingress(5) and tc-cake(8) β€” go read them, they're the supporting cast and they ate πŸ’œ


and that's the page bestie!! no cap, you now know CAKE better than most people know their own wifi password. this lil write-up is interfaces-cake(5) and it's dated 2026-05-10 β€” so go forth, shape that traffic, and remember: bandwidth is a vibe check and you're passing it πŸŽ€βœ¨πŸ’–

πŸ“¦ where this page comes from