return ALTQ_SUBQ_INDEX_DEFAULT;
}
+int
+ifq_mapsubq_mask(struct ifaltq *ifq, int cpuid)
+{
+ return (cpuid & ifq->altq_subq_mask);
+}
+
static void
ifsq_watchdog(void *arg)
{
void ifq_set_methods(struct ifaltq *, altq_mapsubq_t,
ifsq_enqueue_t, ifsq_dequeue_t, ifsq_request_t);
int ifq_mapsubq_default(struct ifaltq *, int);
+int ifq_mapsubq_mask(struct ifaltq *, int);
void ifsq_devstart(struct ifaltq_subque *ifsq);
void ifsq_devstart_sched(struct ifaltq_subque *ifsq);
_ifq->altq_subq_cnt = _cnt;
}
+static __inline void
+ifq_set_subq_mask(struct ifaltq *_ifq, uint32_t _mask)
+{
+ KASSERT(((_mask - 1) & _mask) == 0, ("invalid mask %08x", _mask));
+ _ifq->altq_subq_mask = _mask;
+}
+
/* COMPAT */
static __inline int
ifq_is_oactive(const struct ifaltq *_ifq)