chunk.c (e5f612969c6f965e3bd1158598e0a3b1c4f389b9) chunk.c (779edd7348878a7376c0e3d0f96485c30b5f1b7d)
1/* SCTP kernel implementation
2 * (C) Copyright IBM Corp. 2003, 2004
3 *
4 * This file is part of the SCTP kernel implementation
5 *
6 * This file contains the code relating the chunk abstraction.
7 *
8 * This SCTP implementation is free software;

--- 294 unchanged lines hidden (view full) ---

303int sctp_chunk_abandoned(struct sctp_chunk *chunk)
304{
305 if (!chunk->asoc->peer.prsctp_capable)
306 return 0;
307
308 if (chunk->msg->abandoned)
309 return 1;
310
1/* SCTP kernel implementation
2 * (C) Copyright IBM Corp. 2003, 2004
3 *
4 * This file is part of the SCTP kernel implementation
5 *
6 * This file contains the code relating the chunk abstraction.
7 *
8 * This SCTP implementation is free software;

--- 294 unchanged lines hidden (view full) ---

303int sctp_chunk_abandoned(struct sctp_chunk *chunk)
304{
305 if (!chunk->asoc->peer.prsctp_capable)
306 return 0;
307
308 if (chunk->msg->abandoned)
309 return 1;
310
311 if (!chunk->has_tsn &&
312 !(chunk->chunk_hdr->flags & SCTP_DATA_FIRST_FRAG))
313 return 0;
314
311 if (SCTP_PR_TTL_ENABLED(chunk->sinfo.sinfo_flags) &&
312 time_after(jiffies, chunk->msg->expires_at)) {
313 struct sctp_stream_out *streamout =
314 &chunk->asoc->stream.out[chunk->sinfo.sinfo_stream];
315
316 if (chunk->sent_count) {
317 chunk->asoc->abandoned_sent[SCTP_PR_INDEX(TTL)]++;
318 streamout->ext->abandoned_sent[SCTP_PR_INDEX(TTL)]++;

--- 32 unchanged lines hidden ---
315 if (SCTP_PR_TTL_ENABLED(chunk->sinfo.sinfo_flags) &&
316 time_after(jiffies, chunk->msg->expires_at)) {
317 struct sctp_stream_out *streamout =
318 &chunk->asoc->stream.out[chunk->sinfo.sinfo_stream];
319
320 if (chunk->sent_count) {
321 chunk->asoc->abandoned_sent[SCTP_PR_INDEX(TTL)]++;
322 streamout->ext->abandoned_sent[SCTP_PR_INDEX(TTL)]++;

--- 32 unchanged lines hidden ---