Lines Matching defs:flow

25  *   - Each flow has a PIE managed queue.
28 * - For a given flow, packets are not reordered.
36 * struct fq_pie_flow - contains data for each flow
37 * @vars: pie vars associated with the flow
39 * @backlog: size of data in the flow
40 * @qlen: number of packets in the flow
41 * @flowchain: flowchain for the flow
42 * @head: first packet in the flow
43 * @tail: last packet in the flow
118 /* add skb to flow queue (tail add) */
119 static inline void flow_queue_add(struct fq_pie_flow *flow,
122 if (!flow->head)
123 flow->head = skb;
125 flow->tail->next = skb;
126 flow->tail = skb;
141 /* Classifies packet into corresponding flow */
227 static inline struct sk_buff *dequeue_head(struct fq_pie_flow *flow)
229 struct sk_buff *skb = flow->head;
231 flow->head = skb->next;
240 struct fq_pie_flow *flow;
252 flow = list_first_entry(head, struct fq_pie_flow, flowchain);
254 if (flow->deficit <= 0) {
255 flow->deficit += q->quantum;
256 list_move_tail(&flow->flowchain, &q->old_flows);
260 if (flow->head) {
261 skb = dequeue_head(flow);
271 list_move_tail(&flow->flowchain, &q->old_flows);
273 list_del_init(&flow->flowchain);
277 flow->qlen--;
278 flow->deficit -= pkt_len;
279 flow->backlog -= pkt_len;
281 pie_process_dequeue(skb, &q->p_params, &flow->vars, flow->backlog);
454 struct fq_pie_flow *flow = q->flows + idx;
456 INIT_LIST_HEAD(&flow->flowchain);
457 pie_vars_init(&flow->vars);
539 struct fq_pie_flow *flow = q->flows + idx;
541 /* Removes all packets from flow */
542 rtnl_kfree_skbs(flow->head, flow->tail);
543 flow->head = NULL;
545 INIT_LIST_HEAD(&flow->flowchain);
546 pie_vars_init(&flow->vars);