Hi Simon, Thanks for the review and for the Sashiko pointer. We have been through all six findings and are working on v5. For each item below, a short note on what was raised, then what we plan to do:
(1) [High] Filter attachment and TC_ACT_CONSUMED — Sashiko noted that adding cl_ops with .tcf_block would let users attach tc filters to fq_pie for the first time, but fq_pie_classify() has no TC_ACT_CONSUMED case (risk of double-free if an action like ct consumes the skb). We will remove .tcf_block, .bind_tcf, and .unbind_tcf from cl_ops. We only need walk/dump for tc -s class show; filter attach to fq_pie should stay disabled as before v1. (2) [Medium] tc_fq_pie_xstats layout — Sashiko asked whether appending type/class fields after the nine qdisc counters breaks userspace, compared to fq_codel's type-first union layout. We plan no struct change. fq_pie already shipped a flat 36-byte struct; we will keep appending after those counters so old tc binaries keep working. Class stats still need the matching iproute2 update. (3) [Low] Empty tc_fq_pie_xqd_stats placeholder — Sashiko flagged the empty placeholder struct and unused union arm in pkt_sched.h. We will remove the placeholder and the union; class_stats will be a direct member. (4) [Low] Class handle at flows 65536 — Sashiko noted that with flows_cnt == 65536, fq_pie_dump_class() uses TC_H_MIN(cl) and the last flow's handle wraps to minor 0 in userspace. We will cap flows at 65535 in fq_pie_change() and update selftest 83be to expect flows 65536 to fail. (5) [Medium] Selftest case 83c0 — Sashiko noted v4 used matchCount 0 with no traffic, so the test passes even without class ops and never checks per-flow stats output. We will rewrite 83c0 with real traffic (TBF + fq_pie, ping on $DUMMY) and matchCount 1 on tc -s class show (prob/delay/deficit). (6) [Low] tools/ UAPI mirror — Sashiko noted patch 3/3 also touched tools/include/uapi/linux/pkt_sched.h, but that copy is already stale in layout; comment-only edits there do not help. We will drop the tools/include hunk from patch 3/3 and touch only include/uapi/linux/pkt_sched.h there. We will post v5 with these changes once ready. Thanks, Hemendra

