* The overall approach to integrating iflib with ALTQ is to continue to use * the iflib mp_ring machinery between the ALTQ queue(s) and the hardware * ring. Technically, when using ALTQ, queueing to an intermediate mp_ring * is redundant/unnecessary, but doing so minimizes the amount of * ALTQ-specific code required in iflib. It is assumed that the overhead of * redundantly queueing to an i
| 4172 | * |
| 4173 | */ |
| 4174 | static void |
| 4175 | iflib_altq_if_start(if_t ifp) |
| 4176 | { |
| 4177 | struct ifaltq *ifq = &ifp->if_snd; |
| 4178 | struct mbuf *m; |
| 4179 | |
| 4180 | IFQ_LOCK(ifq); |
| 4181 | IFQ_DEQUEUE_NOLOCK(ifq, m); |
| 4182 | while (m != NULL) { |
| 4183 | iflib_if_transmit(ifp, m); |
| 4184 | IFQ_DEQUEUE_NOLOCK(ifq, m); |
| 4185 | } |
| 4186 | IFQ_UNLOCK(ifq); |
| 4187 | } |
| 4188 | |
| 4189 | static int |
| 4190 | iflib_altq_if_transmit(if_t ifp, struct mbuf *m) |
no test coverage detected