Lines Matching refs:flow
117 static inline void flow_queue_add(struct fq_pie_flow *flow, in flow_queue_add() argument
120 if (!flow->head) in flow_queue_add()
121 flow->head = skb; in flow_queue_add()
123 flow->tail->next = skb; in flow_queue_add()
124 flow->tail = skb; in flow_queue_add()
219 static inline struct sk_buff *dequeue_head(struct fq_pie_flow *flow) in dequeue_head() argument
221 struct sk_buff *skb = flow->head; in dequeue_head()
223 flow->head = skb->next; in dequeue_head()
232 struct fq_pie_flow *flow; in fq_pie_qdisc_dequeue() local
244 flow = list_first_entry(head, struct fq_pie_flow, flowchain); in fq_pie_qdisc_dequeue()
246 if (flow->deficit <= 0) { in fq_pie_qdisc_dequeue()
247 flow->deficit += q->quantum; in fq_pie_qdisc_dequeue()
248 list_move_tail(&flow->flowchain, &q->old_flows); in fq_pie_qdisc_dequeue()
252 if (flow->head) { in fq_pie_qdisc_dequeue()
253 skb = dequeue_head(flow); in fq_pie_qdisc_dequeue()
263 list_move_tail(&flow->flowchain, &q->old_flows); in fq_pie_qdisc_dequeue()
265 list_del_init(&flow->flowchain); in fq_pie_qdisc_dequeue()
269 flow->qlen--; in fq_pie_qdisc_dequeue()
270 flow->deficit -= pkt_len; in fq_pie_qdisc_dequeue()
271 flow->backlog -= pkt_len; in fq_pie_qdisc_dequeue()
273 pie_process_dequeue(skb, &q->p_params, &flow->vars, flow->backlog); in fq_pie_qdisc_dequeue()
431 struct fq_pie_flow *flow = q->flows + idx; in fq_pie_init() local
433 INIT_LIST_HEAD(&flow->flowchain); in fq_pie_init()
434 pie_vars_init(&flow->vars); in fq_pie_init()
515 struct fq_pie_flow *flow = q->flows + idx; in fq_pie_reset() local
518 rtnl_kfree_skbs(flow->head, flow->tail); in fq_pie_reset()
519 flow->head = NULL; in fq_pie_reset()
521 INIT_LIST_HEAD(&flow->flowchain); in fq_pie_reset()
522 pie_vars_init(&flow->vars); in fq_pie_reset()