• v0.7.0 4bade69cf9

    M5 step: OpenBSD hfsc/fq_codel back ends compiled into pf.ko; ifq data path can enqueue and drain

    lgcosta released this 2026-11-12 01:52:30 -03:00 | 1 commits to main since this release

    • 157 scheduler symbols in pf.ko; pf_ioctl's queue manager reaches them
      (pfq_alloc succeeds, the hfsc discipline is created).
    • ifq_start() now really drains the queue and transmits; the dequeue cookie
      (ifq_deq_begin/commit) is preserved instead of being dropped.
    • pf_kifq_input() lets the pf data path hand a packet to an attached scheduler.
    • Fixed a class-handle collision: the root class used bit 0x1, which equals
      odd pf queue ids, so hfsc_pf_addqueue() saw a duplicate and returned EBUSY.
    • Compat surface added: struct mbuf_list + ml_* helpers, ifq_q_enter/leave,
      nsecuptime, tick_nsec, splnet/splx, KERNEL_ASSERT_LOCKED, struct hfsc_sc /
      hfsc_class_stats / fqcodel_stats, PKTCNTR_INC.
    • Linux-specific fixes: min() signedness (min_t) and the hfsc parameter named
      'current' (a kernel macro).

    Verified: 14/14 lab gates green (queues are not configured by any gate - the
    purge-path lock assertion documented in caveats section 9 must be fixed before
    queue rules are safe to enable; no bandwidth is enforced yet).

    Downloads