The CBQ BORROW flag conflicts with the RMCF_CODEL flag; the two sets of definitions actually define the same things. The symptom is that a kernel with CBQ support and not CODEL fails to load a QoS policy with the obscure error "pfctl: DIOCADDALTQ: Cannot allocate memory." If ALTQ_DEBUG is enabled, the error becomes a little clearer: "rmc_newclass: CODEL not configured for CBQ!" is printed by the kernel. There really shouldn't be two sets of macros that have to be defined consistently, but the include structure isn't right for exporting CBQ flags to altq_rmclass.h. Re-align the definitions, and add CTASSERTs in the kernel to ensure that the definitions are consistent. PR: 215716 Reviewed by: pkelsey MFC after: 2 weeks Sponsored by: Forcepoint LLC Differential Revision: https://reviews.freebsd.org/D17758 |
||
---|---|---|
.. | ||
altq_cbq.c | ||
altq_cbq.h | ||
altq_cdnr.c | ||
altq_cdnr.h | ||
altq_classq.h | ||
altq_codel.c | ||
altq_codel.h | ||
altq_fairq.c | ||
altq_fairq.h | ||
altq_hfsc.c | ||
altq_hfsc.h | ||
altq_priq.c | ||
altq_priq.h | ||
altq_red.c | ||
altq_red.h | ||
altq_rio.c | ||
altq_rio.h | ||
altq_rmclass_debug.h | ||
altq_rmclass.c | ||
altq_rmclass.h | ||
altq_subr.c | ||
altq_var.h | ||
altq.h | ||
if_altq.h |