[MERGED] osmo-ttcn3-hacks[master]: BSC_Tests: Ensure MSC passes SpeechCodecList in AoIP ASSIGNMENT

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
Fri Dec 15 14:18:25 UTC 2017


Harald Welte has submitted this change and it was merged.

Change subject: BSC_Tests: Ensure MSC passes SpeechCodecList in AoIP ASSIGNMENT
......................................................................


BSC_Tests: Ensure MSC passes SpeechCodecList in AoIP ASSIGNMENT

Change-Id: I66deffc50b5adcc8707747c0baa2e65ee36bf18e
---
M bsc/BSC_Tests.ttcn
M library/BSSMAP_Templates.ttcn
2 files changed, 55 insertions(+), 0 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 77f3ef8..42de6be 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -484,6 +484,7 @@
 	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}));
 	ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
 							valueof(ts_BSSMAP_IE_EncrInfo(kc, '01'O));
 	f_assignment_exp(ass_cmd, exp_compl, "BSC failed TCH/F FR A5/0 assignment");
@@ -496,10 +497,25 @@
 	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}));
 	ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
 							valueof(ts_BSSMAP_IE_EncrInfo(kc, '02'O));
 	f_assignment_exp(ass_cmd, exp_compl, "BSC failed TCH/F FR A5/1 assignment");
 }
+
+/* Exxpet ASSIGNMENT FAIL if mandatory IE is missing */
+testcase TC_assignment_fr_a5_1_codec_missing() runs on test_CT {
+	var template PDU_BSSAP exp_fail := tr_BSSMAP_AssignmentFail;
+	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.encryptionInformation :=
+							valueof(ts_BSSMAP_IE_EncrInfo(kc, '02'O));
+	f_assignment_exp(ass_cmd, exp_fail, "BSC didn't reject missing mandatory speech codec IE");
+}
+
 
 
 testcase TC_assignment_fr_a5_3() runs on test_CT {
@@ -509,6 +525,7 @@
 	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}));
 	ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
 							valueof(ts_BSSMAP_IE_EncrInfo(kc, '08'O));
 	f_assignment_exp(ass_cmd, exp_compl, "BSC failed TCH/F FR A5/3 assignment");
@@ -522,6 +539,7 @@
 	const OCT16 kc128 := kc & kc;
 
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
+	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
 	ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
 							valueof(ts_BSSMAP_IE_EncrInfo(kc, '10'O));
 	ass_cmd.pdu.bssmap.assignmentRequest.kC128 := valueof(ts_BSSMAP_IE_Kc128(kc128));
@@ -1244,6 +1262,7 @@
 	execute( TC_assignment_sign() );
 	execute( TC_assignment_fr_a5_0() );
 	execute( TC_assignment_fr_a5_1() );
+	execute( TC_assignment_fr_a5_1_codec_missing() );
 	execute( TC_assignment_fr_a5_3() );
 	execute( TC_assignment_fr_a5_4() );
 
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index 87d5628..24a888c 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -388,6 +388,42 @@
 	kC128_Value := kc128
 }
 
+/* 3.2.2.103 */
+template (value) BSSMAP_FIELD_CodecElement ts_CodecBase := {
+	codecType := GSM_FR,
+	tF := '0'B,
+	pT := '0'B,
+	pI := '0'B,
+	fI := '1'B,
+	extendedCodecType := omit,
+	s0_7 := omit,
+	s8_15 := omit
+}
+template (value) BSSMAP_FIELD_CodecElement ts_CodecFR modifies ts_CodecBase := {
+	codecType := GSM_FR
+}
+template (value) BSSMAP_FIELD_CodecElement ts_CodecEFR modifies ts_CodecBase := {
+	codecType := GSM_EFR
+}
+template (value) BSSMAP_FIELD_CodecElement ts_CodecHR modifies ts_CodecBase := {
+	codecType := GSM_HR
+}
+template (value) BSSMAP_FIELD_CodecElement ts_CodecAMR_F modifies ts_CodecBase := {
+	codecType := FR_AMR,
+	s0_7 :=  '11111111'B,
+	s8_15 := '01010111'B	/* S11, S13 and S15 are reserved and coded with zeroes */
+}
+template (value) BSSMAP_FIELD_CodecElement ts_CodecAMR_H modifies ts_CodecBase := {
+	codecType := HR_AMR,
+	s0_7 :=  '00111111'B,
+	s8_15 := '00000111'B	/* S6 - S7 and S11 – S15 are reserved and coded with zeroes */
+}
+template BSSMAP_IE_SpeechCodecList ts_BSSMAP_IE_CodecList(template BSSMAP_FIELD_CodecElements elem) := {
+	elementIdentifier := '7D'O,
+	lengthIndicator := 0, /* overwritten */
+	codecElements := valueof(elem)
+}
+
 template PDU_BSSAP
 ts_BSSMAP_AssignmentReq(template BSSMAP_IE_CircuitIdentityCode cic := omit,
 			template BSSMAP_IE_AoIP_TransportLayerAddress aoip := omit)

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I66deffc50b5adcc8707747c0baa2e65ee36bf18e
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list