Lines Matching refs:tin

19 	struct fq_tin *tin = flow->tin;  in __fq_adjust_removal()  local
22 tin->backlog_bytes -= bytes; in __fq_adjust_removal()
23 tin->backlog_packets -= packets; in __fq_adjust_removal()
31 if (flow == &tin->default_flow) { in __fq_adjust_removal()
32 list_del_init(&tin->tin_list); in __fq_adjust_removal()
67 struct fq_tin *tin = flow->tin; in fq_flow_drop() local
82 free_func(fq, tin, flow, skb); in fq_flow_drop()
91 struct fq_tin *tin, in fq_tin_dequeue() argument
101 head = &tin->new_flows; in fq_tin_dequeue()
103 head = &tin->old_flows; in fq_tin_dequeue()
113 &tin->old_flows); in fq_tin_dequeue()
117 skb = dequeue_func(fq, tin, flow); in fq_tin_dequeue()
120 if ((head == &tin->new_flows) && in fq_tin_dequeue()
121 !list_empty(&tin->old_flows)) { in fq_tin_dequeue()
122 list_move_tail(&flow->flowchain, &tin->old_flows); in fq_tin_dequeue()
125 flow->tin = NULL; in fq_tin_dequeue()
131 tin->tx_bytes += skb->len; in fq_tin_dequeue()
132 tin->tx_packets++; in fq_tin_dequeue()
145 struct fq_tin *tin, u32 idx, in fq_flow_classify() argument
153 if (flow->tin && flow->tin != tin) { in fq_flow_classify()
154 flow = &tin->default_flow; in fq_flow_classify()
155 tin->collisions++; in fq_flow_classify()
159 if (!flow->tin) in fq_flow_classify()
160 tin->flows++; in fq_flow_classify()
167 struct fq_tin *tin; in fq_find_fattest_flow() local
184 list_for_each_entry(tin, &fq->tin_backlog, tin_list) { in fq_find_fattest_flow()
185 unsigned int cur_len = tin->default_flow.backlog; in fq_find_fattest_flow()
190 flow = &tin->default_flow; in fq_find_fattest_flow()
198 struct fq_tin *tin, u32 idx, in fq_tin_enqueue() argument
207 flow = fq_flow_classify(fq, tin, idx, skb); in fq_tin_enqueue()
210 if (flow != &tin->default_flow) in fq_tin_enqueue()
212 else if (list_empty(&tin->tin_list)) in fq_tin_enqueue()
213 list_add(&tin->tin_list, &fq->tin_backlog); in fq_tin_enqueue()
216 flow->tin = tin; in fq_tin_enqueue()
218 tin->backlog_bytes += skb->len; in fq_tin_enqueue()
219 tin->backlog_packets++; in fq_tin_enqueue()
226 &tin->new_flows); in fq_tin_enqueue()
239 flow->tin->overlimit++; in fq_tin_enqueue()
254 struct fq_tin *tin = flow->tin; in fq_flow_filter() local
260 if (!filter_func(fq, tin, flow, skb, filter_data)) in fq_flow_filter()
265 free_func(fq, tin, flow, skb); in fq_flow_filter()
270 struct fq_tin *tin, in fq_tin_filter() argument
279 list_for_each_entry(flow, &tin->new_flows, flowchain) in fq_tin_filter()
281 list_for_each_entry(flow, &tin->old_flows, flowchain) in fq_tin_filter()
289 struct fq_tin *tin = flow->tin; in fq_flow_reset() local
293 free_func(fq, tin, flow, skb); in fq_flow_reset()
297 if (list_empty(&tin->new_flows) && in fq_flow_reset()
298 list_empty(&tin->old_flows)) in fq_flow_reset()
299 list_del_init(&tin->tin_list); in fq_flow_reset()
302 flow->tin = NULL; in fq_flow_reset()
308 struct fq_tin *tin, in fq_tin_reset() argument
315 head = &tin->new_flows; in fq_tin_reset()
317 head = &tin->old_flows; in fq_tin_reset()
326 WARN_ON_ONCE(!list_empty(&tin->tin_list)); in fq_tin_reset()
327 WARN_ON_ONCE(tin->backlog_bytes); in fq_tin_reset()
328 WARN_ON_ONCE(tin->backlog_packets); in fq_tin_reset()
337 static void fq_tin_init(struct fq_tin *tin) in fq_tin_init() argument
339 INIT_LIST_HEAD(&tin->new_flows); in fq_tin_init()
340 INIT_LIST_HEAD(&tin->old_flows); in fq_tin_init()
341 INIT_LIST_HEAD(&tin->tin_list); in fq_tin_init()
342 fq_flow_init(&tin->default_flow); in fq_tin_init()