diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-01-25 15:08:35 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-01-25 16:19:37 +0100 |
commit | 7bb8cd683ca317726b26e79caf2b54008a853fbb (patch) | |
tree | e5dce94a4ef14bc8430386ca5989e9cc78f1a45f | |
parent | 7963edba09dc5b342a1a8073addde6eb9bcefd3b (diff) |
ms: Set proper initial MCS values setting mode EGPRS_GMSK
Before this patch, shared logic with EGPRS case would allow keeping
MCS>4.
Change-Id: I94cbf0c120fd37deb2dfd077d35b3811c7da0675
-rw-r--r-- | src/gprs_ms.c | 13 | ||||
-rw-r--r-- | tests/ms/MsTest.ok | 4 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/gprs_ms.c b/src/gprs_ms.c index daa3223a..f157d131 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -259,6 +259,19 @@ void ms_set_mode(struct GprsMs *ms, enum mcs_kind mode) break; case EGPRS_GMSK: + if (!mcs_is_edge_gmsk(ms->current_cs_ul)) { + ms->current_cs_ul = mcs_get_egprs_by_num( + ms->bts->initial_mcs_ul); + if (!mcs_is_valid(ms->current_cs_ul)) + ms->current_cs_ul = MCS1; + } + if (!mcs_is_edge_gmsk(ms->current_cs_dl)) { + ms->current_cs_dl = mcs_get_egprs_by_num( + ms->bts->initial_mcs_dl); + if (!mcs_is_valid(ms->current_cs_dl)) + ms->current_cs_dl = MCS1; + } + break; case EGPRS: if (!mcs_is_edge(ms->current_cs_ul)) { ms->current_cs_ul = mcs_get_egprs_by_num( diff --git a/tests/ms/MsTest.ok b/tests/ms/MsTest.ok index 11766b8a..3e5cdabb 100644 --- a/tests/ms/MsTest.ok +++ b/tests/ms/MsTest.ok @@ -26,8 +26,8 @@ 2: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS, <ACTIVE> 1: after MCS set MS DL MCS-7/MCS-9, UL MCS-1/MCS-9, mode EGPRS, <IDLE> 2: after MCS set MS DL MCS-8/MCS-9, UL MCS-1/MCS-9, mode EGPRS, <ACTIVE> -1: after mode set MS DL MCS-7/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, <IDLE> -2: after mode set MS DL MCS-8/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, <ACTIVE> +1: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, <IDLE> +2: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, <ACTIVE> 1: after mode set MS DL CS-4/CS-4, UL CS-1/CS-4, mode GPRS, <IDLE> 2: after mode set MS DL CS-4/CS-4, UL CS-1/CS-4, mode GPRS, <ACTIVE> === end test_ms_mcs_mode === |