Lines Matching refs:chain
52 struct batadv_frag_table_entry *chain; in batadv_frag_purge_orig() local
56 chain = &orig_node->fragments[i]; in batadv_frag_purge_orig()
59 if (!check_cb || check_cb(chain)) { in batadv_frag_purge_orig()
96 static bool batadv_frag_init_chain(struct batadv_frag_table_entry *chain, in batadv_frag_init_chain() argument
99 if (chain->seqno == seqno) in batadv_frag_init_chain()
102 if (!hlist_empty(&chain->head)) in batadv_frag_init_chain()
103 batadv_frag_clear_chain(&chain->head); in batadv_frag_init_chain()
105 chain->size = 0; in batadv_frag_init_chain()
106 chain->seqno = seqno; in batadv_frag_init_chain()
128 struct batadv_frag_table_entry *chain; in batadv_frag_insert_packet() local
158 chain = &orig_node->fragments[bucket]; in batadv_frag_insert_packet()
159 spin_lock_bh(&chain->lock); in batadv_frag_insert_packet()
160 if (batadv_frag_init_chain(chain, seqno)) { in batadv_frag_insert_packet()
161 hlist_add_head(&frag_entry_new->list, &chain->head); in batadv_frag_insert_packet()
162 chain->size = skb->len - hdr_size; in batadv_frag_insert_packet()
163 chain->timestamp = jiffies; in batadv_frag_insert_packet()
169 hlist_for_each_entry(frag_entry_curr, &chain->head, list) { in batadv_frag_insert_packet()
178 chain->size += skb->len - hdr_size; in batadv_frag_insert_packet()
179 chain->timestamp = jiffies; in batadv_frag_insert_packet()
191 chain->size += skb->len - hdr_size; in batadv_frag_insert_packet()
192 chain->timestamp = jiffies; in batadv_frag_insert_packet()
197 if (chain->size > batadv_frag_size_limit() || in batadv_frag_insert_packet()
202 batadv_frag_clear_chain(&chain->head); in batadv_frag_insert_packet()
203 chain->size = 0; in batadv_frag_insert_packet()
204 } else if (ntohs(frag_packet->total_size) == chain->size) { in batadv_frag_insert_packet()
206 hlist_move_list(&chain->head, chain_out); in batadv_frag_insert_packet()
207 chain->size = 0; in batadv_frag_insert_packet()
211 spin_unlock_bh(&chain->lock); in batadv_frag_insert_packet()
231 batadv_frag_merge_packets(struct hlist_head *chain, struct sk_buff *skb) in batadv_frag_merge_packets() argument
247 entry = hlist_entry(chain->first, struct batadv_frag_list_entry, list); in batadv_frag_merge_packets()
269 hlist_for_each_entry(entry, chain, list) { in batadv_frag_merge_packets()
277 batadv_frag_clear_chain(chain); in batadv_frag_merge_packets()