[PATCH] osmo-ttcn3-hacks[master]: bsc: Unify encryption related test cases

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Thu May 10 20:02:10 UTC 2018


Review at  https://gerrit.osmocom.org/8108

bsc: Unify encryption related test cases

Rather than having copy+pate code, parameterize it.

Change-Id: Ifc554245f80b09309f2da60c9d17c289c331b22e
---
M bsc/BSC_Tests.ttcn
M bsc/MSC_ConnectionHandler.ttcn
2 files changed, 31 insertions(+), 56 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/08/8108/1

diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 8ab77cf..b3c7c61 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1434,54 +1434,45 @@
 	fn.apply(id);
 }
 
-private function f_tc_assignment_fr_a5_0(charstring id) runs on MSC_ConnHdlr {
-	g_pars := valueof(t_def_TestHdlrPars);
+private function f_tc_assignment_fr_a5(charstring id) runs on MSC_ConnHdlr {
 	var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?);
 	var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
 	var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-	const OCT8 kc := '0001020304050607'O;
 
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
 	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
 
 	f_establish_fully(ass_cmd, exp_compl);
-	f_cipher_mode('01'O, kc);
+	f_cipher_mode(g_pars.encr.enc_alg, g_pars.encr.enc_key);
 }
-
 testcase TC_assignment_fr_a5_0() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;
+	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+	pars.encr := valueof(t_EncrParams('01'O, f_rnd_octstring(8)));
 
 	f_init(1, true);
 	f_sleep(1.0);
-
-	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_0));
+	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5), pars);
 	vc_conn.done;
 }
-
-
-
-private function f_tc_assignment_fr_a5_1(charstring id) runs on MSC_ConnHdlr {
-	g_pars := valueof(t_def_TestHdlrPars);
-
-	var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?);
-	var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
-	var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-	const OCT8 kc := '0001020304050607'O;
-
-	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
-	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
-
-	f_establish_fully(ass_cmd, exp_compl);
-	f_cipher_mode('02'O, kc);
-}
-
 testcase TC_assignment_fr_a5_1() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;
+	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+	pars.encr := valueof(t_EncrParams('02'O, f_rnd_octstring(8)));
 
 	f_init(1, true);
 	f_sleep(1.0);
+	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5), pars);
+	vc_conn.done;
+}
+testcase TC_assignment_fr_a5_3() runs on test_CT {
+	var MSC_ConnHdlr vc_conn;
+	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+	pars.encr := valueof(t_EncrParams('08'O, f_rnd_octstring(8)));
 
-	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_1));
+	f_init(1, true);
+	f_sleep(1.0);
+	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5), pars);
 	vc_conn.done;
 }
 
@@ -1496,7 +1487,6 @@
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
 	f_establish_fully(ass_cmd, exp_fail);
 }
-
 testcase TC_assignment_fr_a5_1_codec_missing() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;
 
@@ -1506,32 +1496,6 @@
 	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_1_codec_missing));
 	vc_conn.done;
 }
-
-
-private function f_tc_assignment_fr_a5_3(charstring id ) runs on MSC_ConnHdlr {
-	g_pars := valueof(t_def_TestHdlrPars);
-	var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?);
-	var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
-	var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-	const OCT8 kc := '0001020304050607'O;
-
-	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
-	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
-
-	f_establish_fully(ass_cmd, exp_compl);
-	f_cipher_mode('08'O, kc);
-}
-
-testcase TC_assignment_fr_a5_3() runs on test_CT {
-	var MSC_ConnHdlr vc_conn;
-
-	f_init(1, true);
-	f_sleep(1.0);
-
-	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_3));
-	vc_conn.done;
-}
-
 
 private function f_tc_assignment_fr_a5_4(charstring id) runs on MSC_ConnHdlr {
 	g_pars := valueof(t_def_TestHdlrPars);
@@ -1547,7 +1511,6 @@
 	f_cipher_mode('10'O, kc, kc128, true);
 	/* TODO: expect GSM0808_CAUSE_CIPHERING_ALGORITHM_NOT_SUPPORTED cause value */
 }
-
 testcase TC_assignment_fr_a5_4() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;
 
diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index efd68a3..c1ff963 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -346,12 +346,23 @@
 	}
 }
 
+type record TestHdlrEncrParams {
+	OCT1		enc_alg,
+	octetstring	enc_key
+};
+
+template (value) TestHdlrEncrParams t_EncrParams(OCT1 alg, octetstring key) := {
+	enc_alg := alg,
+	enc_key := key
+}
+
 type record TestHdlrParams {
 	OCT1		ra,
 	GsmFrameNumber	fn,
 	hexstring	imsi,
 	RslLinkId	link_id,
-	BSSMAP_IE_SpeechCodecList ass_codec_list optional
+	BSSMAP_IE_SpeechCodecList ass_codec_list optional,
+	TestHdlrEncrParams encr optional
 };
 
 template (value) TestHdlrParams t_def_TestHdlrPars := {
@@ -359,7 +370,8 @@
 	fn := 23,
 	imsi := '001019876543210'H,
 	link_id := valueof(ts_RslLinkID_DCCH(0)),
-	ass_codec_list := omit
+	ass_codec_list := omit,
+	encr := omit
 }
 
 function f_create_chan_and_exp() runs on MSC_ConnHdlr {

-- 
To view, visit https://gerrit.osmocom.org/8108
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifc554245f80b09309f2da60c9d17c289c331b22e
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>



More information about the gerrit-log mailing list