Lines Matching refs:head
420 static void sctp_packet_gso_append(struct sk_buff *head, struct sk_buff *skb) in sctp_packet_gso_append() argument
422 if (SCTP_OUTPUT_CB(head)->last == head) in sctp_packet_gso_append()
423 skb_shinfo(head)->frag_list = skb; in sctp_packet_gso_append()
425 SCTP_OUTPUT_CB(head)->last->next = skb; in sctp_packet_gso_append()
426 SCTP_OUTPUT_CB(head)->last = skb; in sctp_packet_gso_append()
428 head->truesize += skb->truesize; in sctp_packet_gso_append()
429 head->data_len += skb->len; in sctp_packet_gso_append()
430 head->len += skb->len; in sctp_packet_gso_append()
431 refcount_add(skb->truesize, &head->sk->sk_wmem_alloc); in sctp_packet_gso_append()
437 struct sk_buff *head, int gso, gfp_t gfp) in sctp_packet_pack() argument
443 struct sock *sk = head->sk; in sctp_packet_pack()
448 skb_shinfo(head)->gso_type = sk->sk_gso_type; in sctp_packet_pack()
449 SCTP_OUTPUT_CB(head)->last = head; in sctp_packet_pack()
451 nskb = head; in sctp_packet_pack()
531 sctp_packet_gso_append(head, nskb); in sctp_packet_pack()
537 memset(head->cb, 0, max(sizeof(struct inet_skb_parm), in sctp_packet_pack()
539 skb_shinfo(head)->gso_segs = pkt_count; in sctp_packet_pack()
540 skb_shinfo(head)->gso_size = GSO_BY_FRAGS; in sctp_packet_pack()
550 (struct sctphdr *)skb_transport_header(head); in sctp_packet_pack()
552 sh->checksum = sctp_compute_cksum(head, 0); in sctp_packet_pack()
555 head->ip_summed = CHECKSUM_PARTIAL; in sctp_packet_pack()
556 head->csum_not_inet = 1; in sctp_packet_pack()
557 head->csum_start = skb_transport_header(head) - head->head; in sctp_packet_pack()
558 head->csum_offset = offsetof(struct sctphdr, checksum); in sctp_packet_pack()
575 struct sk_buff *head; in sctp_packet_transmit() local
598 head = alloc_skb((gso ? packet->overhead : packet->size) + in sctp_packet_transmit()
600 if (!head) in sctp_packet_transmit()
602 skb_reserve(head, packet->overhead + MAX_HEADER); in sctp_packet_transmit()
603 skb_set_owner_w(head, sk); in sctp_packet_transmit()
606 sh = skb_push(head, sizeof(struct sctphdr)); in sctp_packet_transmit()
607 skb_reset_transport_header(head); in sctp_packet_transmit()
616 kfree_skb(head); in sctp_packet_transmit()
621 pkt_count = sctp_packet_pack(packet, head, gso, gfp); in sctp_packet_transmit()
623 kfree_skb(head); in sctp_packet_transmit()
626 pr_debug("***sctp_transmit_packet*** skb->len:%d\n", head->len); in sctp_packet_transmit()
647 head->ignore_df = packet->ipfragok; in sctp_packet_transmit()
649 skb_set_dst_pending_confirm(head, 1); in sctp_packet_transmit()
653 if (tp->af_specific->sctp_xmit(head, tp) >= 0 && in sctp_packet_transmit()