TSN either sits at the end of one gap, and thus changes gap boundaries, or it is in between two gaps, and becomes a new gap
200 const uint32 gapsize = hi - lo + 1;
206 if (receivedTSN == hi) {
208 newChunkReceived =
true;
211 else if (receivedTSN == lo) {
212 if (receivedTSN == (cTsnAck + 1)) {
214 newChunkReceived =
true;
219 newChunkReceived =
true;
225 for (
uint32 j = NumGaps - 1; j > i; j--) {
231 newChunkReceived =
true;
236 if (lo == cTsnAck + 1) {
238 if (i == NumGaps - 1) {
243 for (
uint32 j = i; j < NumGaps - 1; j++) {
249 newChunkReceived =
true;
254 if (i == NumGaps - 1) {
259 for (
uint32 j = i; j < NumGaps - 1; j++) {
265 newChunkReceived =
true;
277 if (receivedTSN == lo) {
278 if (receivedTSN == cTsnAck + 1) {
279 cTsnAck = receivedTSN;
280 newChunkReceived =
true;
286 newChunkReceived =
true;
293 if ((NumGaps == 0) ||
301 newChunkReceived =
true;
double min(const double a, const double b)
Returns the minimum of a and b.
Definition: SCTPAssociation.h:270
uint32 GapStopList[MAX_GAP_COUNT]
Definition: SCTPGapList.h:74
uint32 GapStartList[MAX_GAP_COUNT]
Definition: SCTPGapList.h:73
#define MAX_GAP_COUNT
Definition: SCTPGapList.h:32
uint32 NumGaps
Definition: SCTPGapList.h:72
static int32 tsnBetween(const uint32 tsn1, const uint32 midtsn, const uint32 tsn2)
Definition: SCTPAssociation.h:1084
static int32 tsnLe(const uint32 tsn1, const uint32 tsn2)
Definition: SCTPAssociation.h:1082
uint32_t uint32
Definition: Compat.h:30
static int32 tsnGt(const uint32 tsn1, const uint32 tsn2)
Definition: SCTPAssociation.h:1081