aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2022-03-14 22:27:57 +0300
committerlaforge <laforge@osmocom.org>2022-03-16 12:47:54 +0000
commitaf2972e26f2704e240652fb5ec0508ee1bc6a6b7 (patch)
tree0fb6d278e253a8f2fb8593404f650f679ade6c3a
parent4483a22b1ddf7c7c922129697e1ef29ba5d278e5 (diff)
bsc: add f_cipher_mode_bssmap_to_rr()
-rw-r--r--bsc/MSC_ConnectionHandler.ttcn20
1 files changed, 20 insertions, 0 deletions
diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index a37a3b8a..b0daf614 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -797,6 +797,26 @@ function f_cipher_mode_bssmap_to_rsl(OCT1 alg_bssmap) return RSL_AlgId
}
}
+/* Convert the cipher representation on BSSMAP to the one used on RR (3GPP TS 44.018) */
+function f_cipher_mode_bssmap_to_rr(OCT1 alg_bssmap) return BIT3
+{
+ select (alg_bssmap) {
+ case ('01'O) /* A5/0 */ { return '000'B; } /* SC=0 */
+ case ('02'O) /* A5/1 */ { return '000'B; } /* SC=1 */
+ case ('04'O) /* A5/2 */ { return '001'B; } /* SC=1 */
+ case ('08'O) /* A5/3 */ { return '010'B; } /* SC=1 */
+ case ('10'O) /* A5/4 */ { return '011'B; } /* SC=1 */
+ case ('20'O) /* A5/5 */ { return '100'B; } /* SC=1 */
+ case ('40'O) /* A5/6 */ { return '101'B; } /* SC=1 */
+ case ('80'O) /* A5/7 */ { return '110'B; } /* SC=1 */
+ case else {
+ Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Unexpected Encryption Algorithm: " &
+ oct2str(alg_bssmap));
+ return '000'B;
+ }
+ }
+}
+
function f_verify_encr_info(RSL_Message rsl) runs on MSC_ConnHdlr {
var RSL_IE_Body encr_info;
var RSL_AlgId alg_rsl;