Lines Matching defs:chunk
87 struct sctp_chunk *chunk);
114 * the size of the outgoing data chunk.
117 * Since it is always 1-1 between chunk and skb, and also a new skb is always
118 * allocated for chunk bundling in sctp_packet_transmit(), we can use the
119 * destructor in the data chunk skb for the purpose of the sndbuf space
122 static inline void sctp_set_owner_w(struct sctp_chunk *chunk)
124 struct sctp_association *asoc = chunk->asoc;
130 if (chunk->shkey)
131 sctp_auth_shkey_hold(chunk->shkey);
133 skb_set_owner_w(chunk->skb, sk);
135 chunk->skb->destructor = sctp_wfree;
136 /* Save the chunk pointer in skb for sctp_wfree to use later. */
137 skb_shinfo(chunk->skb)->destructor_arg = chunk;
140 asoc->sndbuf_used += chunk->skb->truesize + sizeof(struct sctp_chunk);
141 sk_wmem_queued_add(sk, chunk->skb->truesize + sizeof(struct sctp_chunk));
142 sk_mem_charge(sk, chunk->skb->truesize);
145 static void sctp_clear_owner_w(struct sctp_chunk *chunk)
147 skb_orphan(chunk->skb);
152 msg = chunk->msg; \
170 struct sctp_chunk *chunk, *c;
174 list_for_each_entry(chunk, &t->transmitted, transmitted_list)
177 list_for_each_entry(chunk, &q->retransmit, transmitted_list)
180 list_for_each_entry(chunk, &q->sacked, transmitted_list)
183 list_for_each_entry(chunk, &q->abandoned, transmitted_list)
186 list_for_each_entry(chunk, &q->out_chunk_list, list)
458 * at any one time. If a sender, after sending an ASCONF chunk, decides
466 struct sctp_chunk *chunk)
470 /* If there is an outstanding ASCONF chunk, queue it for later
474 list_add_tail(&chunk->list, &asoc->addip_chunk_list);
478 /* Hold the chunk until an ASCONF_ACK is received. */
479 sctp_chunk_hold(chunk);
480 retval = sctp_primitive_ASCONF(asoc->base.net, asoc, chunk);
482 sctp_chunk_free(chunk);
484 asoc->addip_last_asconf = chunk;
542 /* Send an ASCONF chunk with Add IP address parameters to all the peers of the
547 * association, we do not send the chunk for that association. But it will not
560 struct sctp_chunk *chunk;
591 * do not send the asconf chunk to its peer, but continue with
617 chunk = sctp_make_asconf_update_ip(asoc, &laddr->a, addrs,
619 if (!chunk) {
653 retval = sctp_send_asconf(asoc, chunk);
744 /* Send an ASCONF chunk with Delete IP address parameters to all the peers of
749 * association, we do not send the chunk for that association. But it will not
763 struct sctp_chunk *chunk;
772 chunk = NULL;
795 * If so, do not send the asconf chunk to its peer, but
864 chunk = sctp_make_asconf_update_ip(asoc, laddr, addrs, addrcnt,
866 if (!chunk) {
899 retval = sctp_send_asconf(asoc, chunk);
1520 struct sctp_chunk *chunk;
1522 chunk = sctp_make_abort_user(asoc, NULL, 0);
1523 sctp_primitive_ABORT(net, asoc, chunk);
1771 struct sctp_chunk *chunk;
1773 chunk = sctp_make_abort_user(asoc, msg, msg_len);
1774 if (!chunk)
1778 sctp_primitive_ABORT(net, asoc, chunk);
1797 struct sctp_chunk *chunk;
1867 list_for_each_entry(chunk, &datamsg->chunks, frag_list) {
1868 sctp_chunk_hold(chunk);
1869 sctp_set_owner_w(chunk);
1870 chunk->transport = transport;
2132 if (event->chunk && event->chunk->head_skb)
2133 head_skb = event->chunk->head_skb;
3221 * SCTP DATA chunk. If a message is larger than this size it will be
3227 * SCTP's choice of DATA chunk size. Note also that values set larger
3311 struct sctp_chunk *chunk;
3353 /* Create an ASCONF chunk with SET_PRIMARY parameter */
3354 chunk = sctp_make_asconf_set_prim(asoc,
3356 if (!chunk)
3359 err = sctp_send_asconf(asoc, chunk);
3558 * 7.1.18. Add a chunk that must be authenticated (SCTP_AUTH_CHUNK)
3560 * This set option adds a chunk type that the user is requesting to be
3584 /* add this chunk id to the endpoint */
6605 * SCTP DATA chunk. If a message is larger than this size it will be
6611 * SCTP's choice of DATA chunk size. Note also that values set larger
8899 struct sctp_chunk *chunk = skb_shinfo(skb)->destructor_arg;
8900 struct sctp_association *asoc = chunk->asoc;
8909 if (chunk->shkey) {
8910 struct sctp_shared_key *shkey = chunk->shkey;
8926 sctp_auth_shkey_release(chunk->shkey);