diff options
author | Max <msuraev@sysmocom.de> | 2018-01-23 20:09:06 +0100 |
---|---|---|
committer | Max <msuraev@sysmocom.de> | 2018-01-24 11:06:22 +0100 |
commit | 0e5998087ee530d8b13e56ac8355693869cd7446 (patch) | |
tree | 1c85647057acdc7b34b2da6010981cfc1497be12 /src/gprs_rlcmac_sched.cpp | |
parent | 0524e38d9ea519898a61256389c3a7277410ccb8 (diff) |
TBF: make UL/DL state internal
* add functions/macros for setting TBF's UL/DL state
* add functions for checking TBF's UL/DL state
* move pre-free check into separate function
N. B: this should not be confused with TBF-UL or TBF-DL state.
Change-Id: Idcbf5775d17b1247f2ed01788f9b0788ce66e871
Related: OS#1539
Diffstat (limited to 'src/gprs_rlcmac_sched.cpp')
-rw-r--r-- | src/gprs_rlcmac_sched.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 89250321..a87217f7 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -54,11 +54,10 @@ static uint32_t sched_poll(BTS *bts, *poll_tbf = ul_tbf; if (ul_tbf->ul_ack_state == GPRS_RLCMAC_UL_ACK_SEND_ACK) *ul_ack_tbf = ul_tbf; - if (ul_tbf->dl_ass_state == GPRS_RLCMAC_DL_ASS_SEND_ASS) + if (ul_tbf->dl_ass_state_is(GPRS_RLCMAC_DL_ASS_SEND_ASS)) *dl_ass_tbf = ul_tbf; - if (ul_tbf->ul_ass_state == GPRS_RLCMAC_UL_ASS_SEND_ASS - || ul_tbf->ul_ass_state == - GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ) + if (ul_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS) + || ul_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) *ul_ass_tbf = ul_tbf; /* FIXME: Is this supposed to be fair? The last TBF for each wins? Maybe use llist_add_tail and skip once we have all states? */ @@ -73,10 +72,10 @@ states? */ if (dl_tbf->poll_state == GPRS_RLCMAC_POLL_SCHED && dl_tbf->poll_fn == poll_fn) *poll_tbf = dl_tbf; - if (dl_tbf->dl_ass_state == GPRS_RLCMAC_DL_ASS_SEND_ASS) + if (dl_tbf->dl_ass_state_is(GPRS_RLCMAC_DL_ASS_SEND_ASS)) *dl_ass_tbf = dl_tbf; - if (dl_tbf->ul_ass_state == GPRS_RLCMAC_UL_ASS_SEND_ASS - || dl_tbf->ul_ass_state == GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ) + if (dl_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS) + || dl_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) *ul_ass_tbf = dl_tbf; } @@ -139,13 +138,11 @@ static struct msgb *sched_select_ctrl_msg( * because they may kill the TBF when the CONTROL ACK is * received, thus preventing the others from being processed. */ - if (tbf == ul_ass_tbf && tbf->ul_ass_state == - GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ) + if (tbf == ul_ass_tbf && tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) msg = ul_ass_tbf->create_packet_access_reject(); else if (tbf == ul_ass_tbf && tbf->direction == GPRS_RLCMAC_DL_TBF) - if (tbf->ul_ass_state == - GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ) + if (tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) msg = ul_ass_tbf->create_packet_access_reject(); else msg = ul_ass_tbf->create_ul_ass(fn, ts); |