Writing
Notes on networking, the Linux data path, firmware, and running things myself. Mostly the write-ups I wanted to exist when I was solving the problem.
Subscribe by RSSfull posts, no tracking
Line-card BFD for plain Linux
Building a BFD offload whose fast path runs in XDP, from measuring the folklore about software BFD to a dual-stack engine with echo and multihop. Every claim backed by a packet capture. Starts with a primer if the terms are new.
- What all of this means
- Measuring the folklore
- The folklore is partly wrong
- The TX bake-off
- RX-clocked TX
- Results, and putting FRR in the loop
- Hardening, and a review that found real edges
- One session to sixty-four
- IPv6, and the bake-off argument in miniature
- Echo mode, and instrumentation that cannot see its own failure
- Multihop, and a test that validated nothing
- Every bug came from a capture, none from a log
Upstream bugs in FRR’s BFD daemon
Six bugs found while pointing an external dataplane at FRR, each written up from the issue and the fix. Buffer accounting, a transport that never worked, and two cases where the instrumentation agreed with the wrong answer.
Other posts
- Teaching an NGINX directive to take a variable, so my VPN could skip the login
I wanted JWT auth on everything except traffic from my VPN subnet. nginx makes that trivial with geo, except the directive I needed it on only accepted a literal on or off. Making it accept a variable changed a default, and that turned auth on for everyone.
- The disk was fine, the page was not: a two minute smartctl and a GUI that gave up
Proxmox's Disks page hung with a communication failure while the drive worked perfectly at the command line. The cause was a SMART query that took two minutes to return, and a default timeout sized for spinning up a JBOD.