Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi,imei}()

... and start to use it from BSC_Tests.ttcn

Related: OS#4472, SYS#5002
Change-Id: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 2c02e36..52b4906 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -6383,14 +6383,8 @@
  * MSC Pooling
  ***********************************************************************/
 
-function f_tmsi_nri(integer nri_v, octetstring base_tmsi := '42000023'O, integer nri_bitlen := 10) return octetstring
-{
-	return int2oct( oct2int(base_tmsi) + bit2int( (int2bit(nri_v, 32) << ( 24 - nri_bitlen)) ),
-	                4);
-}
-
 template MobileIdentityLV ts_MI_TMSI_NRI_LV(integer nri_v, integer nri_bitlen := 10) :=
-	ts_MI_TMSI_LV(tmsi := f_tmsi_nri(nri_v, nri_bitlen := nri_bitlen));
+	ts_MI_TMSI_LV(tmsi := f_gen_tmsi(suffix := 0, nri_v := nri_v, nri_bitlen := nri_bitlen));
 
 private function f_expect_lchan_rel(RSL_DCHAN_PT rsl) runs on MSC_ConnHdlr {
 	interleave {
@@ -6949,7 +6943,7 @@
 	var RSL_ChanNeeded rsl_chneed := RSL_CHANNEED_SDCCH;
 	var template BSSMAP_IE_ChannelNeeded bssmap_chneed := ts_BSSMAP_IE_ChanNeeded(int2bit(enum2int(valueof(rsl_chneed)),2));
 	var integer nri_v := 300; /* <-- second MSC's NRI */
-	var octetstring tmsi := f_tmsi_nri(nri_v);
+	var octetstring tmsi := f_gen_tmsi(suffix := 0, nri_v := nri_v);
 	var BSSAP_N_UNITDATA_req paging;
 
 	f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR);