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 --- |