Lines Matching defs:ifqueue
27 struct ifqueue {
38 struct ifqueue *_ifq_ifqs[1];
119 * struct ifqueue sits between the network stack and a drivers
122 * transmission. It does this by queueing the packet on an ifqueue and
127 * represented by a struct ifnet, would then have multiple ifqueue
130 * struct ifqueue also provides the point where conditioning of
145 * the ifqueue structures, changing the traffic conditioner on an
147 * the driver to start transmission of a particular ifqueue.
152 * the ifqueue structure. By default it configures the priq traffic
158 * the ifqueue structure. It frees the traffic conditioner state, and
164 * the ifqueue. All the pending mbufs are removed from the previous
169 * ifq_idx() selects a specific ifqueue from the current ifnet
174 * ifq_enqueue() attempts to fit an mbuf onto the ifqueue. The
182 * Calls to ifq_start() run in the ifqueue serialisation context,
184 * running on behalf of a specific ifqueue in the system at any point
189 * The majority of interaction between struct ifqueue and a traffic
195 * The ifqueue API implements the locking on behalf of the conditioning
233 * A driver may run arbitrary work in the ifqueue serialiser context
245 * = ifqueue work serialisation
268 * if_qstart function (which takes an ifqueue pointer) instead of an
274 * ifqueue for each hardware ring, which can then be initialised by
277 * void drv_start(struct ifqueue *);
289 * struct ifqueue *ifq = ifp->if_ifqs[i];
323 * drv_start(struct ifqueue *ifq)
365 * struct ifqueue *ifq = ring->ifq;
385 * struct ifqueue *ifq;
411 struct mbuf *(*ifqop_enq)(struct ifqueue *, struct mbuf *);
412 struct mbuf *(*ifqop_deq_begin)(struct ifqueue *, void **);
413 void (*ifqop_deq_commit)(struct ifqueue *,
415 void (*ifqop_purge)(struct ifqueue *,
427 void ifq_init(struct ifqueue *, struct ifnet *, unsigned int);
428 void ifq_attach(struct ifqueue *, const struct ifq_ops *, void *);
429 void ifq_destroy(struct ifqueue *);
430 void ifq_add_data(struct ifqueue *, struct if_data *);
431 int ifq_enqueue(struct ifqueue *, struct mbuf *);
432 void ifq_start(struct ifqueue *);
433 struct mbuf *ifq_deq_begin(struct ifqueue *);
434 void ifq_deq_commit(struct ifqueue *, struct mbuf *);
435 void ifq_deq_rollback(struct ifqueue *, struct mbuf *);
436 struct mbuf *ifq_dequeue(struct ifqueue *);
437 int ifq_hdatalen(struct ifqueue *);
438 void ifq_init_maxlen(struct ifqueue *, unsigned int);
439 void ifq_mfreem(struct ifqueue *, struct mbuf *);
440 void ifq_mfreeml(struct ifqueue *, struct mbuf_list *);
441 unsigned int ifq_purge(struct ifqueue *);
442 void *ifq_q_enter(struct ifqueue *, const struct ifq_ops *);
443 void ifq_q_leave(struct ifqueue *, void *);
444 void ifq_serialize(struct ifqueue *, struct task *);
445 void ifq_barrier(struct ifqueue *);
446 void ifq_set_oactive(struct ifqueue *);
447 void ifq_deq_set_oactive(struct ifqueue *);
449 int ifq_deq_sleep(struct ifqueue *, struct mbuf **, int, int,
457 ifq_is_priq(struct ifqueue *ifq)
463 ifq_clr_oactive(struct ifqueue *ifq)
469 ifq_is_oactive(struct ifqueue *ifq)
475 ifq_restart(struct ifqueue *ifq)
481 ifq_idx(struct ifqueue *ifq, unsigned int nifqs, const struct mbuf *m)