aboutsummaryrefslogtreecommitdiffstats
path: root/src/gprs_ms.h
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2022-04-04 13:45:56 +0200
committerpespin <pespin@sysmocom.de>2022-04-05 11:16:17 +0000
commit6b1e9515c9e82f8e99128a4de051889e82e25892 (patch)
treeab808e66cf2084ed4e3155eb84a11204fbb3b02d /src/gprs_ms.h
parent9c2512a638368f5b74c275c38d404414cf2d8b02 (diff)
llc_queue: Refactor to handle codel_state per prio queue internally
A CoDel state per prio queue is needed, otherwise the sojourn time state is not properly reset when a high prio packet is dequeued. If we have a global codel state shared for all prio queues of an MS, then basically high prio (GMM) packets will "never" be dropped because they are handled/dequeued way quicker, so it's sojourn time will be below the threshold most probably, stopping the "dropping" state for the rest of lower prio packets. The handling of different codel states is moved from MS object to the llc_queue, also offloading already loaded dl_tbf.cpp in the process. This will also allow in the future setting different CoDel parameters for different priority queues if needed. Tests need to be adapted since now the CoDel and PDU lifetime are incorporated into the llc_queue_dequeue(). Also because dequeue now also accesses related MS fields. Related: OS#5508 Change-Id: I2bce2e82ab6389d8a70130a5c26a966a316b0fa4
Diffstat (limited to 'src/gprs_ms.h')
-rw-r--r--src/gprs_ms.h7
1 files changed, 0 insertions, 7 deletions
diff --git a/src/gprs_ms.h b/src/gprs_ms.h
index 3ebf7a5b..c5ee01c9 100644
--- a/src/gprs_ms.h
+++ b/src/gprs_ms.h
@@ -92,8 +92,6 @@ struct GprsMs {
uint8_t reserved_dl_slots;
uint8_t reserved_ul_slots;
struct gprs_rlcmac_trx *current_trx;
-
- struct gprs_codel *codel_state;
enum mcs_kind mode;
struct rate_ctr_group *ctrs;
@@ -218,11 +216,6 @@ static inline void ms_set_timeout(struct GprsMs *ms, unsigned secs)
ms->delay = secs;
}
-static inline struct gprs_codel *ms_codel_state(const struct GprsMs *ms)
-{
- return ms->codel_state;
-}
-
static inline unsigned ms_nack_rate_dl(const struct GprsMs *ms)
{
return ms->nack_rate_dl;