[PATCH] osmo-ttcn3-hacks[master]: BSC_Tests: Add whole bunch of new assignment tests

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 13:19:19 UTC 2017


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

BSC_Tests: Add whole bunch of new assignment tests

Change-Id: Ia7304f2e2265c2ebd92575a9403b082579397656
---
M bsc/BSC_Tests.ttcn
M library/BSSMAP_Templates.ttcn
2 files changed, 125 insertions(+), 1 deletion(-)


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

diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 41e3a84..77f3ef8 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -411,12 +411,125 @@
 	[] BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_AssignmentComplete)) {
 		setverdict(fail, "AoIP BSC cannot accept ASSIGNMENT without AoIP Transport IE");
 		}
+	/* TODO: Actually expect GSM0808_CAUSE_REQ_A_IF_TYPE_NOT_SUPP */
 	[] BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_AssignmentFail)) {
 		setverdict(pass);
 		}
 	[] BSSAP.receive { repeat; }
 	}
 }
+
+/* Run everything required up to sending a caller-specified assignment command and expect response */
+function f_assignment_exp(PDU_BSSAP ass_cmd, template PDU_BSSAP exp, charstring fail_text)
+runs on test_CT {
+	var BSSAP_N_CONNECT_ind rx_c_ind;
+	var RSL_Message rx_rsl;
+	var DchanTuple dt;
+
+	f_init();
+	f_bssap_reset();
+
+	dt := f_est_dchan('23'O, 23, '00000000'O);
+	/* send assignment without AoIP IEs */
+	BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ass_cmd));
+	alt {
+	[] BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_AssignmentComplete)) {
+		if (ischosen(exp.pdu.bssmap.assignmentComplete)) {
+			setverdict(pass);
+		} else {
+			setverdict(fail, fail_text);
+		}
+		}
+	[] BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_AssignmentFail)) {
+		if (ischosen(exp.pdu.bssmap.assignmentFailure)) {
+			setverdict(pass);
+		} else {
+			setverdict(fail, fail_text);
+		}
+		}
+	[] BSSAP.receive { repeat; }
+	}
+}
+testcase TC_assignment_csd() 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));
+	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelTypeCSD);
+	//exp_fail.pdu.bssmap.assignmentFailure.cause.causeValue := int2bit(enum2int(GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_UNAVAIL), 7);
+	f_assignment_exp(ass_cmd, exp_fail, "BSC accepted Assignment for CSD");
+}
+
+testcase TC_assignment_ctm() 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));
+	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelTypeCTM);
+	//exp_fail.pdu.bssmap.assignmentFailure.cause.causeValue := int2bit(enum2int(GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_UNAVAIL), 7);
+	f_assignment_exp(ass_cmd, exp_fail, "BSC accepted Assignment for Speech+CTM");
+}
+
+testcase TC_assignment_sign() runs on test_CT {
+	var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, 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));
+
+	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelTypeSIGNAL);
+	f_assignment_exp(ass_cmd, exp_compl, "BSC failed SIGNALLING assignment");
+}
+
+testcase TC_assignment_fr_a5_0() runs on test_CT {
+	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.encryptionInformation :=
+							valueof(ts_BSSMAP_IE_EncrInfo(kc, '01'O));
+	f_assignment_exp(ass_cmd, exp_compl, "BSC failed TCH/F FR A5/0 assignment");
+}
+
+testcase TC_assignment_fr_a5_1() runs on test_CT {
+	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.encryptionInformation :=
+							valueof(ts_BSSMAP_IE_EncrInfo(kc, '02'O));
+	f_assignment_exp(ass_cmd, exp_compl, "BSC failed TCH/F FR A5/1 assignment");
+}
+
+
+testcase TC_assignment_fr_a5_3() runs on test_CT {
+	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.encryptionInformation :=
+							valueof(ts_BSSMAP_IE_EncrInfo(kc, '08'O));
+	f_assignment_exp(ass_cmd, exp_compl, "BSC failed TCH/F FR A5/3 assignment");
+}
+
+testcase TC_assignment_fr_a5_4() 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;
+	const OCT16 kc128 := kc & kc;
+
+	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
+	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));
+	/* TODO: expect GSM0808_CAUSE_CIPHERING_ALGORITHM_NOT_SUPPORTED cause value */
+	f_assignment_exp(ass_cmd, exp_fail, "BSC accepted TCH/F FR A5/4 assignment");
+}
+
+
 
 
 type record DchanTuple {
@@ -1013,7 +1126,7 @@
 	}
 }
 
-/* Verify PCH load */
+/* Verify Paging Counter */
 testcase TC_paging_counter() runs on test_CT {
 	var BSSMAP_FIELD_CellIdentificationList cid_list;
 	timer T := 4.0;
@@ -1126,6 +1239,13 @@
 
 	execute( TC_outbound_connect() );
 	execute( TC_assignment_cic_only() );
+	execute( TC_assignment_csd() );
+	execute( TC_assignment_ctm() );
+	execute( TC_assignment_sign() );
+	execute( TC_assignment_fr_a5_0() );
+	execute( TC_assignment_fr_a5_1() );
+	execute( TC_assignment_fr_a5_3() );
+	execute( TC_assignment_fr_a5_4() );
 
 	execute( TC_rll_est_ind_inact_lchan() );
 	execute( TC_rll_est_ind_inval_sapi1() );
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index 071c66d..87d5628 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -378,6 +378,10 @@
 	ipAddress := addr,
 	uDPPortValue := udp_port
 }
+template (value) BSSMAP_IE_AoIP_TransportLayerAddress ts_BSSMAP_IE_AoIP_TLA4(OCT4 ip, uint16_t pt) :=
+							ts_BSSMAP_IE_AoIP_TLA({ipv4:=ip}, pt);
+template (value) BSSMAP_IE_AoIP_TransportLayerAddress ts_BSSMAP_IE_AoIP_TLA6(OCT16 ip, uint16_t pt) :=
+							ts_BSSMAP_IE_AoIP_TLA({ipv6:=ip}, pt);
 
 template (value) BSSMAP_IE_KC128 ts_BSSMAP_IE_Kc128(OCT16 kc128) := {
 	elementIdentifier := '83'O,

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia7304f2e2265c2ebd92575a9403b082579397656
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