bsc: add f_cipher_mode_bssmap_to_rr()

Change-Id: I6cc8cbed96f2838af1b0e41c5dfa6760c45d9ad1
Related: SYS#5838
diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index a37a3b8..b0daf61 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -797,6 +797,26 @@
 	}
 }
 
+/* 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;