Lines Matching refs:skb

61 	struct sk_buff *skb;  in tipc_buf_acquire()  local
64 skb = alloc_skb_fclone(buf_size, GFP_ATOMIC); in tipc_buf_acquire()
65 if (skb) { in tipc_buf_acquire()
66 skb_reserve(skb, BUF_HEADROOM); in tipc_buf_acquire()
67 skb_put(skb, size); in tipc_buf_acquire()
68 skb->next = NULL; in tipc_buf_acquire()
70 return skb; in tipc_buf_acquire()
202 bool tipc_msg_validate(struct sk_buff *skb) in tipc_msg_validate() argument
207 if (unlikely(TIPC_SKB_CB(skb)->validated)) in tipc_msg_validate()
209 if (unlikely(!pskb_may_pull(skb, MIN_H_SIZE))) in tipc_msg_validate()
212 hsz = msg_hdr_sz(buf_msg(skb)); in tipc_msg_validate()
215 if (unlikely(!pskb_may_pull(skb, hsz))) in tipc_msg_validate()
218 msg = buf_msg(skb); in tipc_msg_validate()
227 if (unlikely(skb->len < msz)) in tipc_msg_validate()
230 TIPC_SKB_CB(skb)->validated = true; in tipc_msg_validate()
254 struct sk_buff *skb; in tipc_msg_build() local
262 skb = tipc_buf_acquire(msz); in tipc_msg_build()
263 if (unlikely(!skb)) in tipc_msg_build()
265 skb_orphan(skb); in tipc_msg_build()
266 __skb_queue_tail(list, skb); in tipc_msg_build()
267 skb_copy_to_linear_data(skb, mhdr, mhsz); in tipc_msg_build()
268 pktpos = skb->data + mhsz; in tipc_msg_build()
283 skb = tipc_buf_acquire(pktmax); in tipc_msg_build()
284 if (!skb) in tipc_msg_build()
286 skb_orphan(skb); in tipc_msg_build()
287 __skb_queue_tail(list, skb); in tipc_msg_build()
288 pktpos = skb->data; in tipc_msg_build()
289 skb_copy_to_linear_data(skb, &pkthdr, INT_H_SIZE); in tipc_msg_build()
292 skb_copy_to_linear_data_offset(skb, INT_H_SIZE, mhdr, mhsz); in tipc_msg_build()
314 skb = tipc_buf_acquire(pktsz); in tipc_msg_build()
315 if (!skb) { in tipc_msg_build()
319 skb_orphan(skb); in tipc_msg_build()
320 __skb_queue_tail(list, skb); in tipc_msg_build()
324 skb_copy_to_linear_data(skb, &pkthdr, INT_H_SIZE); in tipc_msg_build()
325 pktpos = skb->data + INT_H_SIZE; in tipc_msg_build()
329 msg_set_type(buf_msg(skb), LAST_FRAGMENT); in tipc_msg_build()
345 bool tipc_msg_bundle(struct sk_buff *skb, struct tipc_msg *msg, u32 mtu) in tipc_msg_bundle() argument
355 if (!skb) in tipc_msg_bundle()
357 bmsg = buf_msg(skb); in tipc_msg_bundle()
368 if (unlikely(skb_tailroom(skb) < (pad + msz))) in tipc_msg_bundle()
376 skb_put(skb, pad + msz); in tipc_msg_bundle()
377 skb_copy_to_linear_data_offset(skb, start, msg, msz); in tipc_msg_bundle()
392 bool tipc_msg_extract(struct sk_buff *skb, struct sk_buff **iskb, int *pos) in tipc_msg_extract() argument
398 if (unlikely(skb_linearize(skb))) in tipc_msg_extract()
401 msg = buf_msg(skb); in tipc_msg_extract()
406 *iskb = skb_clone(skb, GFP_ATOMIC); in tipc_msg_extract()
417 kfree_skb(skb); in tipc_msg_extract()
432 bool tipc_msg_make_bundle(struct sk_buff **skb, struct tipc_msg *msg, in tipc_msg_make_bundle() argument
465 *skb = _skb; in tipc_msg_make_bundle()
477 bool tipc_msg_reverse(u32 own_node, struct sk_buff **skb, int err) in tipc_msg_reverse() argument
479 struct sk_buff *_skb = *skb; in tipc_msg_reverse()
497 *skb = tipc_buf_acquire(BASIC_H_SIZE + dlen); in tipc_msg_reverse()
498 if (!*skb) in tipc_msg_reverse()
500 memcpy((*skb)->data + BASIC_H_SIZE, msg_data(hdr), dlen); in tipc_msg_reverse()
502 _skb = *skb; in tipc_msg_reverse()
521 *skb = NULL; in tipc_msg_reverse()
532 bool tipc_msg_lookup_dest(struct net *net, struct sk_buff *skb, int *err) in tipc_msg_lookup_dest() argument
534 struct tipc_msg *msg = buf_msg(skb); in tipc_msg_lookup_dest()
545 if (skb_linearize(skb)) in tipc_msg_lookup_dest()
547 msg = buf_msg(skb); in tipc_msg_lookup_dest()
569 struct sk_buff *skb, *_skb; in tipc_msg_reassemble() local
576 skb = skb_peek(list); in tipc_msg_reassemble()
577 hdr_len = skb_headroom(skb) + msg_hdr_sz(buf_msg(skb)); in tipc_msg_reassemble()
578 _skb = __pskb_copy(skb, hdr_len, GFP_ATOMIC); in tipc_msg_reassemble()
586 skb_queue_walk(list, skb) { in tipc_msg_reassemble()
587 frag = skb_clone(skb, GFP_ATOMIC); in tipc_msg_reassemble()
610 struct sk_buff *skb) in __tipc_skb_queue_sorted() argument
615 __skb_queue_head(list, skb); in __tipc_skb_queue_sorted()
620 __skb_queue_tail(list, skb); in __tipc_skb_queue_sorted()
629 __skb_queue_before(list, _skb, skb); in __tipc_skb_queue_sorted()
632 kfree_skb(skb); in __tipc_skb_queue_sorted()