Change in osmo-ttcn3-hacks[master]: gbproxy: Test for RA Capability procedure

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/.

daniel gerrit-no-reply at lists.osmocom.org
Mon Nov 16 19:35:52 UTC 2020


daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21172 )

Change subject: gbproxy: Test for RA Capability procedure
......................................................................

gbproxy: Test for RA Capability procedure

Change-Id: If7e5a5cab1e445e0b4ef0466990e352143c31245
---
M gbproxy/GBProxy_Tests.ttcn
M library/Osmocom_Gb_Types.ttcn
2 files changed, 175 insertions(+), 1 deletion(-)

Approvals:
  Jenkins Builder: Verified
  daniel: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve



diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 8837a63..7d39e7c 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -640,10 +640,45 @@
 	f_cleanup();
 }
 
+private function f_TC_ra_capability(charstring id) runs on BSSGP_ConnHdlr {
+	var integer i;
+
+	for (i := 0; i < 10; i := i+1) {
+		var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RA_CAP(g_pars.tlli, { ts_RaCapRec_BSSGP });
+		/* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
+		var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RA_CAP(g_pars.tlli, { tr_RaCapRec_BSSGP })
+
+		SGSN[0].send(pdu_tx);
+		alt {
+		[] PCU[0].receive(pdu_rx);
+		[] PCU[0].receive {
+			setverdict(fail, "SGSN Received unexpected");
+			mtc.stop;
+			}
+		}
+	}
+	setverdict(pass);
+}
+testcase TC_ra_capability() runs on test_CT
+{
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_ra_capability), testcasename(), g_pcu, g_sgsn, 3);
+	vc_conn.done;
+	/* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */
+
+	f_cleanup();
+}
+
+
+
+
 control {
 	execute( TC_BVC_bringup() );
 	execute( TC_ul_unitdata() );
 	execute( TC_dl_unitdata() );
+	execute( TC_ra_capability() );
 }
 
 
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 8271ced..82fdb07 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -929,6 +929,43 @@
 		return ret;
 	}
 
+template (value) Tag ts_BSSGP_IE_Tag(OCT1 tag) := {
+	iEI := '1E'O,
+	ext := '1'B,
+	lengthIndicator := {
+		length1 := 1
+	},
+	unstructured_Value := tag
+}
+
+template (present) Tag tr_BSSGP_IE_Tag(template (present) OCT1 tag) := {
+	iEI := '1E'O,
+	ext := '1'B,
+	lengthIndicator := {
+		length1 := 1
+	},
+	unstructured_Value := tag
+}
+
+template (value) RA_Cap_UPD_CAUSE ts_BSSGP_IE_RACU_Cause(template (value) OCT1 cause) := {
+	iEI := '1A'O,
+	ext := '1'B,
+	lengthIndicator := {
+		length1 := 1
+	},
+	rA_CAP_UPD_Cause_value := cause
+}
+
+template (present) RA_Cap_UPD_CAUSE tr_BSSGP_IE_RACU_Cause(template (present) OCT1 cause) := {
+	iEI := '1A'O,
+	ext := '1'B,
+	lengthIndicator := {
+		length1 := 1
+	},
+	rA_CAP_UPD_Cause_value := cause
+}
+
+
 	template PDU_BSSGP ts_BVC_RESET(BssgpCause cause, BssgpBvci bvci,
 					template BssgpCellId cell_id) := {
 		pDU_BSSGP_BVC_RESET := {
@@ -1204,6 +1241,48 @@
 		},
 		presenceBitMSRACap := '0'B
 	};
+	template (present) MSRACapabilityValuesRecord_BSSGP
+	tr_RaCapRec_BSSGP(template (present) BIT4 att := '0001'B /* E-GSM */, template MultislotCap_GPRS_BSSGP mscap_gprs := *,
+			  template MultislotCap_EGPRS_BSSGP mscap_egprs := *) := {
+		mSRACapabilityValues := {
+			mSRACapabilityValuesExclude1111 := {
+				accessTechnType := att, /* E-GSM */
+				accessCapabilities := {
+					lengthIndicator := ?, /* overwritten */
+					accessCapabilities := {
+						rfPowerCapability := '001'B, /* FIXME */
+						presenceBitA5 := ?,
+						a5bits := *,
+						esind := '1'B,
+						psbit := '0'B,
+						vgcs := '0'B,
+						vbs := '0'B,
+						presenceBitMultislot := '1'B,
+						multislotcap := {
+							presenceBitHscsd := '0'B,
+							hscsdmultislotclass := omit,
+							presenceBitGprs := ?,
+							gprsmultislot := mscap_gprs,
+							presenceBitSms := '0'B,
+							multislotCap_SMS := omit,
+							multislotCapAdditionsAfterRel97 := {
+								presenceBitEcsdmulti := '0'B,
+								ecsdmultislotclass := *,
+								presenceBitEgprsmulti := ?,
+								multislotCap_EGPRS := mscap_egprs,
+								presenceBitDtmGprsmulti := ?,
+								multislotCapdtmgprsmultislotsubclass := *
+							}
+						},
+						accessCapAdditionsAfterRel97 := *
+					},
+					spare_bits := *
+				}
+			}
+		},
+		presenceBitMSRACap := '0'B
+	};
+
 
 	template QoS_Profile_V t_defaultQos := {
 		peak_Bit_Rate := int2oct(80, 2),
@@ -1253,7 +1332,7 @@
 			return omit;
 		} else {
 			ret := {
-				iEI := '00'O,
+				iEI := '13'O,
 				ext := '1'B,
 				lengthIndicator := {
 					length1 := 1
@@ -1264,6 +1343,21 @@
 		}
 	}
 
+	function tr_BSSGP_IE_MSRAcap(template MSRadioAccessCapabilityV_BSSGP racap) return template MS_Radio_Access_Capability {
+		var template MS_Radio_Access_Capability ret;
+		if (istemplatekind(racap, "omit")) {
+			return omit;
+		} else {
+			ret := {
+				iEI := '13'O,
+				ext := ?,
+				lengthIndicator := ?,
+				mSRadioAccessCapabilityV_BSSGP := racap
+			}
+			return ret;
+		}
+	}
+
 	template PDU_BSSGP ts_BSSGP_DL_UD(GprsTlli tlli, octetstring pdu,
 					  template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit,
 					  template (omit) IMSI_BSSGP imsi := omit) := {
@@ -1589,6 +1683,51 @@
 		}
 	}
 
+/* 10.2.3 */
+template (value) PDU_BSSGP ts_BSSGP_RA_CAP(GprsTlli tlli,
+					   template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit) := {
+	pDU_BSSGP_RA_CAPABILITY := {
+		bssgpPduType := '02'O,
+		tLLI := ts_BSSGP_TLLI(tlli),
+		mS_Radio_Access_Capability := ts_BSSGP_IE_MSRAcap_omit(racap)
+	}
+}
+template (present) PDU_BSSGP tr_BSSGP_RA_CAP(template (present) GprsTlli tlli,
+					     template MSRadioAccessCapabilityV_BSSGP racap) := {
+	pDU_BSSGP_RA_CAPABILITY := {
+		bssgpPduType := '02'O,
+		tLLI := ts_BSSGP_TLLI(tlli),
+		mS_Radio_Access_Capability := tr_BSSGP_IE_MSRAcap(racap)
+	}
+}
+
+
+/* 10.3.3 */
+template (value) PDU_BSSGP ts_BSSGP_RA_CAP_UPD(GprsTlli tlli, OCT1 tag) := {
+	pDU_BSSGP_RA_CAPABILITY_UPDATE := {
+		bssgpPduType := '08'O,
+		tLLI := ts_BSSGP_TLLI(tlli),
+		tag := ts_BSSGP_IE_Tag(tag)
+	}
+}
+
+/* 10.3.4 */
+template (value) PDU_BSSGP
+ts_BSSGP_RA_CAP_UPD_ACK(GprsTlli tlli, OCT1 tag, template (value) OCT1 cause,
+		        template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit) := {
+	pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK := {
+		bssgpPduType := '09'O,
+		tLLI := ts_BSSGP_TLLI(tlli),
+		tag := ts_BSSGP_IE_Tag(tag),
+		iMSI := omit,
+		rA_Cap_UPDATE_CAUSE := ts_BSSGP_IE_RACU_Cause(cause),
+		mS_Radio_Access_Capability := ts_BSSGP_IE_MSRAcap_omit(racap)
+	}
+}
+
+
+
+
 
 /* PDU permitted on PTP BVC only (TS 48.018 Section 5.4.1) */
 template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTP_ONLY := (

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21172
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: If7e5a5cab1e445e0b4ef0466990e352143c31245
Gerrit-Change-Number: 21172
Gerrit-PatchSet: 4
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201116/8c91727d/attachment.htm>


More information about the gerrit-log mailing list