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()
203 bool tipc_msg_validate(struct sk_buff *skb) in tipc_msg_validate() argument
208 if (unlikely(TIPC_SKB_CB(skb)->validated)) in tipc_msg_validate()
210 if (unlikely(!pskb_may_pull(skb, MIN_H_SIZE))) in tipc_msg_validate()
213 hsz = msg_hdr_sz(buf_msg(skb)); in tipc_msg_validate()
216 if (unlikely(!pskb_may_pull(skb, hsz))) in tipc_msg_validate()
219 msg = buf_msg(skb); in tipc_msg_validate()
228 if (unlikely(skb->len < msz)) in tipc_msg_validate()
231 TIPC_SKB_CB(skb)->validated = true; in tipc_msg_validate()
255 struct sk_buff *skb; in tipc_msg_build() local
263 skb = tipc_buf_acquire(msz); in tipc_msg_build()
264 if (unlikely(!skb)) in tipc_msg_build()
266 skb_orphan(skb); in tipc_msg_build()
267 __skb_queue_tail(list, skb); in tipc_msg_build()
268 skb_copy_to_linear_data(skb, mhdr, mhsz); in tipc_msg_build()
269 pktpos = skb->data + mhsz; in tipc_msg_build()
284 skb = tipc_buf_acquire(pktmax); in tipc_msg_build()
285 if (!skb) in tipc_msg_build()
287 skb_orphan(skb); in tipc_msg_build()
288 __skb_queue_tail(list, skb); in tipc_msg_build()
289 pktpos = skb->data; in tipc_msg_build()
290 skb_copy_to_linear_data(skb, &pkthdr, INT_H_SIZE); in tipc_msg_build()
293 skb_copy_to_linear_data_offset(skb, INT_H_SIZE, mhdr, mhsz); in tipc_msg_build()
315 skb = tipc_buf_acquire(pktsz); in tipc_msg_build()
316 if (!skb) { in tipc_msg_build()
320 skb_orphan(skb); in tipc_msg_build()
321 __skb_queue_tail(list, skb); in tipc_msg_build()
325 skb_copy_to_linear_data(skb, &pkthdr, INT_H_SIZE); in tipc_msg_build()
326 pktpos = skb->data + INT_H_SIZE; in tipc_msg_build()
330 msg_set_type(buf_msg(skb), LAST_FRAGMENT); in tipc_msg_build()
346 bool tipc_msg_bundle(struct sk_buff *bskb, struct sk_buff *skb, u32 mtu) in tipc_msg_bundle() argument
349 struct tipc_msg *msg = buf_msg(skb); in tipc_msg_bundle()
376 skb_copy_to_linear_data_offset(bskb, start, skb->data, msz); in tipc_msg_bundle()
379 kfree_skb(skb); 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, u32 mtu, u32 dnode) in tipc_msg_make_bundle() argument
436 struct tipc_msg *msg = buf_msg(*skb); in tipc_msg_make_bundle()
460 tipc_msg_bundle(bskb, *skb, mtu); in tipc_msg_make_bundle()
461 *skb = bskb; in tipc_msg_make_bundle()
515 bool tipc_msg_lookup_dest(struct net *net, struct sk_buff *skb, in tipc_msg_lookup_dest() argument
518 struct tipc_msg *msg = buf_msg(skb); in tipc_msg_lookup_dest()
529 if (skb_linearize(skb)) in tipc_msg_lookup_dest()
552 struct sk_buff *skb; in tipc_msg_reassemble() local
559 skb = skb_peek(list); in tipc_msg_reassemble()
560 hdr_sz = skb_headroom(skb) + msg_hdr_sz(buf_msg(skb)); in tipc_msg_reassemble()
561 return __pskb_copy(skb, hdr_sz, GFP_ATOMIC); in tipc_msg_reassemble()
565 skb_queue_walk(list, skb) { in tipc_msg_reassemble()
566 frag = skb_clone(skb, GFP_ATOMIC); in tipc_msg_reassemble()