From d7689b138bdcf84e49cae2e3259702cc80894b95 Mon Sep 17 00:00:00 2001 From: Andreas Schmidt Date: Mon, 6 Aug 2018 12:47:08 +0200 Subject: [PATCH] Fix maximum value vs. value count for SEQNO_SPACE and TIMESTAMP_SPACE. --- prrt/defines.h | 4 ++-- prrt/proto/stores/packetDeliveryStore.c | 4 ++-- prrt/proto/stores/repairBlockStore.c | 2 +- prrt/proto/types/channelStateInformation.c | 2 +- prrt/util/time.c | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/prrt/defines.h b/prrt/defines.h index eab8aef0..719224c2 100644 --- a/prrt/defines.h +++ b/prrt/defines.h @@ -24,9 +24,9 @@ #define MAX_PAYLOAD_LENGTH 65507 // maximum UDP packet length (2^16 - 1 - 8 (UDP Header) - 20 (IP Header)) -#define SEQNO_SPACE UINT16_MAX // 2**16 as seqno is uint16_t +#define SEQNO_SPACE (UINT16_MAX+1) // 2**16 as seqno is uint16_t -#define TIMESTAMP_SPACE UINT32_MAX +#define TIMESTAMP_SPACE (UINT32_MAX+1) #define GF_BITS 8 diff --git a/prrt/proto/stores/packetDeliveryStore.c b/prrt/proto/stores/packetDeliveryStore.c index 6f1b3623..d811477e 100644 --- a/prrt/proto/stores/packetDeliveryStore.c +++ b/prrt/proto/stores/packetDeliveryStore.c @@ -127,7 +127,7 @@ PrrtPacket *PrrtPacketDeliveryStore_get_packet(PrrtPacketDeliveryStore *store, p check(pthread_mutex_lock(&store->lock) == EXIT_SUCCESS, "Lock failed."); if (start > stop) { - packet = BPTree_get_first_in_range(store->tree, (BPTreeKey_t) start, TIMESTAMP_SPACE-1); + packet = BPTree_get_first_in_range(store->tree, (BPTreeKey_t) start, TIMESTAMP_SPACE - 1); if (packet == NULL) { packet = BPTree_get_first_in_range(store->tree, 0, (BPTreeKey_t) stop); } @@ -173,7 +173,7 @@ void PrrtPacketDeliveryStore_cleanup(PrrtPacketDeliveryStore *store, prrtTimesta BPTree_get_range(store->tree, packetList, now - TIMESTAMP_SPACE/2, now); } else { BPTree_get_range(store->tree, packetList, 0, now); - BPTree_get_range(store->tree, packetList, now + TIMESTAMP_SPACE/2, TIMESTAMP_SPACE); + BPTree_get_range(store->tree, packetList, now + TIMESTAMP_SPACE/2, TIMESTAMP_SPACE - 1); } while (List_count(packetList) > 0) { PrrtPacket *packet = List_shift(packetList); diff --git a/prrt/proto/stores/repairBlockStore.c b/prrt/proto/stores/repairBlockStore.c index afbb3813..eb96638b 100644 --- a/prrt/proto/stores/repairBlockStore.c +++ b/prrt/proto/stores/repairBlockStore.c @@ -91,7 +91,7 @@ bool PrrtRepairBlockStore_expire_block_range(PrrtRepairBlockStore *store, prrtSe List* blocks = List_create(); if(start > stop) { - BPTree_get_range(store->blockTree, blocks, start, (prrtSequenceNumber_t) (SEQNO_SPACE-1)); + BPTree_get_range(store->blockTree, blocks, start, (prrtSequenceNumber_t) (SEQNO_SPACE - 1)); BPTree_get_range(store->blockTree, blocks, 0, stop); } else { BPTree_get_range(store->blockTree, blocks, start, stop); diff --git a/prrt/proto/types/channelStateInformation.c b/prrt/proto/types/channelStateInformation.c index 6687ca83..1f94d77e 100644 --- a/prrt/proto/types/channelStateInformation.c +++ b/prrt/proto/types/channelStateInformation.c @@ -13,7 +13,7 @@ PrrtChannelStateInformation * PrrtChannelStateInformation_create() check(pthread_mutex_init(&csi->lock, NULL) == 0, "Mutex init failed."); - csi->rtprop = TIMESTAMP_SPACE; + csi->rtprop = TIMESTAMP_SPACE - 1; csi->rtprop_filter_length_us = 2 * 1000 * 1000; // 2 seconds csi->deliveryRate = 0; diff --git a/prrt/util/time.c b/prrt/util/time.c index 3008728a..0e8948e2 100644 --- a/prrt/util/time.c +++ b/prrt/util/time.c @@ -32,6 +32,6 @@ int64_t PrrtTimestamp_cmp(prrtTimestamp_t a, prrtTimestamp_t b) { if (diff < TIMESTAMP_SPACE / 2) { return diff; } else { - return ((int64_t)diff) - ((int64_t)(TIMESTAMP_SPACE) + 1); + return ((int64_t)diff) - ((int64_t)(TIMESTAMP_SPACE)); } } \ No newline at end of file -- GitLab