lists.osmocom.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

gerrit-log

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
gerrit-log@lists.osmocom.org

October 2024

  • 1 participants
  • 1631 discussions
[XS] Change in pysim[master]: pySim-shell_test/utils: delete log files in general
by laforge 26 Oct '24

26 Oct '24
Attention is currently required from: dexter. laforge has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/pysim/+/38543?usp=email ) Change subject: pySim-shell_test/utils: delete log files in general ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/38543?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I09dc7e59d1a3dcb68f54e3a8dccb86a1bc6c9ee6 Gerrit-Change-Number: 38543 Gerrit-PatchSet: 1 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Fri, 25 Oct 2024 23:41:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
[M] Change in libosmo-sigtran[master]: sua, sccp: Add APIs to get cause string description
by laforge 26 Oct '24

26 Oct '24
Attention is currently required from: pespin. laforge has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/38550?usp=email ) Change subject: sua, sccp: Add APIs to get cause string description ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/38550?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: libosmo-sigtran Gerrit-Branch: master Gerrit-Change-Id: I2c38b2d8104e728dda234c36ea284266b4c55ab1 Gerrit-Change-Number: 38550 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Fri, 25 Oct 2024 23:40:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
[M] Change in pysim[master]: pySim.ts_31_102: Add support for EF.EARFCNList
by laforge 26 Oct '24

26 Oct '24
laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/38472?usp=email ) Change subject: pySim.ts_31_102: Add support for EF.EARFCNList ...................................................................... pySim.ts_31_102: Add support for EF.EARFCNList This adds a construct + pyosmocore.tlv based declarative encoder/decoder for the EF.EARFCNList file used in the context of NB-IoT in later release USIMs. Change-Id: I16797ca58c3ad6ebaf588d04fec011a0cbcfcef3 --- M pySim/ts_31_102.py M tests/pySim-shell_test/export/export.script.ok M tests/pySim-shell_test/file_specific/test_ef_ust.ok M tests/pySim-shell_test/fsdump/fsdump.json.ok 4 files changed, 103 insertions(+), 4 deletions(-) Approvals: dexter: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index b82c411..636cf37 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -30,7 +30,7 @@ from construct import Optional as COptional from construct import Int32ub, Nibble, GreedyRange, Struct, FlagsEnum, Switch, this, Int16ub, Padding -from construct import Bytewise, Int24ub, PaddedString, PrefixedArray, If +from construct import Bytewise, Int24ub, Int24sb, PaddedString, PrefixedArray, If from osmocom.utils import is_hexstr from osmocom.tlv import * @@ -893,6 +893,54 @@ super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = BitStruct('rfu'/BitsRFU(7), 'from_preferred'/Flag) +# TS 31.102 Section 4.2.112 + TS 23.032 Section 6.1 +GadPoint = Struct('latitude'/Int24sb, 'longitude'/Int24sb) + +# TS 31.102 Section 4.2.112 (Rel ??) +class EF_EARFCNList(TransparentEF): + _test_de_encode = [ + # single data object with one EARFCN + one area of 3 points + ('a01a8004000100008112000001100001000002100002000003100003', + [{'earfcn_list_tlv': [{'earfcn': 65536}, + {'geographical_area': [{'latitude': 1, 'longitude': 1048577}, + {'latitude': 2, 'longitude': 1048578}, + {'latitude': 3, 'longitude': 1048579}] }]}] ), + # single data object with one EARFCN + two areas of 3 + 4 points + ('a03480040001000081120000011000010000021000020000031000038118000001100001000002100002000003100003000004100004', + [{'earfcn_list_tlv': [{'earfcn': 65536}, + {'geographical_area': [{'latitude': 1, 'longitude': 1048577}, + {'latitude': 2, 'longitude': 1048578}, + {'latitude': 3, 'longitude': 1048579}] }, + {'geographical_area': [{'latitude': 1, 'longitude': 1048577}, + {'latitude': 2, 'longitude': 1048578}, + {'latitude': 3, 'longitude': 1048579}, + {'latitude': 4, 'longitude': 1048580}] } + ] }] ), + # two concatenated data objects with 3 points each + ('a01a8004000100008112000001100001000002100002000003100003a01a8004000200008112000011100011000012100012000013100013', + [{'earfcn_list_tlv': [{'earfcn': 65536}, + {'geographical_area': [{'latitude': 1, 'longitude': 1048577}, + {'latitude': 2, 'longitude': 1048578}, + {'latitude': 3, 'longitude': 1048579}] }]}, + {'earfcn_list_tlv': [{'earfcn': 131072}, + {'geographical_area': [{'latitude': 17, 'longitude': 1048593}, + {'latitude': 18, 'longitude': 1048594}, + {'latitude': 19, 'longitude': 1048595}] }]} ]), + ] + class Earfcn(BER_TLV_IE, tag=0x80): + _construct = Int32ub + class GeographicalArea(BER_TLV_IE, tag=0x81): + _construct = GreedyRange(GadPoint) + class EarfcnListTlv(BER_TLV_IE, tag=0xa0, nested=[Earfcn,GeographicalArea]): + pass + # we need a collection as there might be multiple concatenated instances + class EarfcnListTlvCollection(TLV_IE_Collection, nested=[EarfcnListTlv]): + pass + def __init__(self, fid='6ffd', sfid=None, name='EF.EARFCNList', size=(30, 100), + desc='EARFCN list for MTC/NB-IOT UEs', **kwargs): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) + self._tlv = self.EarfcnListTlvCollection + # TS 31.102 Section 4.2.114 (Rel 18) class EF_eAKA(TransparentEF): def __init__(self, fid='6f01', sfid=None, name='EF.eAKA', size=(1, 1), @@ -1675,7 +1723,7 @@ # TODO: EF.3GPPPSDATAOFF # TODO: EF.3GPPPSDATAOFFservicelist EF_XCAPConfigData(service=120), - # TODO: EF.EARFCNList + EF_EARFCNList(service=121), EF_MuDMiDConfigData(service=134), EF_eAKA(), EF_OCST(service=148), diff --git a/tests/pySim-shell_test/export/export.script.ok b/tests/pySim-shell_test/export/export.script.ok index 1c3f052..2b8e6b0 100644 --- a/tests/pySim-shell_test/export/export.script.ok +++ b/tests/pySim-shell_test/export/export.script.ok @@ -3604,6 +3604,17 @@ # bad file: MF/ADF.USIM/EF.XCAPConfigData/EF.XCAPConfigData, SW match failed! Expected 9000 and got 6a82: Wrong parameters - File not found # ################################################################################ +# MF/ADF.USIM/EF.EARFCNList # +################################################################################ +# directory: MF/ADF.USIM/EF.EARFCNList (3f00/a0000000871002/6ffd) +# file: EF.EARFCNList (6ffd) +# structure: transparent +# RAW FCP Template: 621e8202412183026ffda506d00120d2010f8a01058b036f0606800200808800 +# Decoded FCP Template: {'file_descriptor': {'file_descriptor_byte': {'shareable': True, 'file_type': 'working_ef', 'structure': 'transparent'}, 'record_len': None, 'num_of_rec': None}, 'file_identifier': '6ffd', 'proprietary_information': {'unknown_ber_tlv_ie_d0': {'raw': '20'}, 'toolkit_access_conditions': {'rfm_create': True, 'rfm_delete_terminate': True, 'other_applet_create': True, 'other_applet_delete_terminate': True}}, 'life_cycle_status_integer': 'operational_activated', 'security_attrib_referenced': {'ef_arr_file_id': '6f06', 'ef_arr_record_nr': 6}, 'file_size': 128, 'short_file_identifier': None} +select MF/ADF.USIM/EF.EARFCNList +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ # MF/ADF.USIM/EF.MuDMiDConfigData # ################################################################################ # directory: MF/ADF.USIM/EF.MuDMiDConfigData (3f00/a0000000871002/6ffe) @@ -4873,7 +4884,7 @@ ################################################################################ # Export summary # ################################################################################ -# total files visited: 345 +# total files visited: 346 # bad files: 63 # MF/DF.GSM/EF.SUME/EF.SUME, SW match failed! Expected 9000 and got 6982: Command not allowed - Security status not satisfied # MF/DF.GSM/EF.CPBCCH/EF.CPBCCH, SW match failed! Expected 9000 and got 6a82: Wrong parameters - File not found diff --git a/tests/pySim-shell_test/file_specific/test_ef_ust.ok b/tests/pySim-shell_test/file_specific/test_ef_ust.ok index 8d5596a..332fdc8 100644 --- a/tests/pySim-shell_test/file_specific/test_ef_ust.ok +++ b/tests/pySim-shell_test/file_specific/test_ef_ust.ok @@ -80,6 +80,7 @@ Checking service No 114 (inactive) Checking service No 115 (inactive) Checking service No 120 (inactive) +Checking service No 121 (inactive) Checking service No 122 (active) Checking service No 123 (active) Checking service No 124 (inactive) @@ -104,7 +105,7 @@ Checking service No 147 (inactive) Checking service No 148 (inactive) Checking service No 150 (inactive) -===> 75 service / file inconsistencies detected +===> 76 service / file inconsistencies detected beff9f9de73e04080000ff730000000600000000 beff9f9de73e04080000ff730000000600002000 beff9f9de73e04080000ff730000000600000000 diff --git a/tests/pySim-shell_test/fsdump/fsdump.json.ok b/tests/pySim-shell_test/fsdump/fsdump.json.ok index 9943982..6b82ef4 100644 --- a/tests/pySim-shell_test/fsdump/fsdump.json.ok +++ b/tests/pySim-shell_test/fsdump/fsdump.json.ok @@ -10105,6 +10105,45 @@ "message": "Wrong parameters - File not found" } }, + "MF/ADF.USIM/EF.EARFCNList": { + "path": [ + "MF", + "ADF.USIM", + "EF.EARFCNList" + ], + "fcp_raw": "621e8202412183026ffda506d00120d2010f8a01058b036f0606800200808800", + "fcp": { + "file_descriptor": { + "file_descriptor_byte": { + "shareable": true, + "file_type": "working_ef", + "structure": "transparent" + }, + "record_len": null, + "num_of_rec": null + }, + "file_identifier": "6ffd", + "proprietary_information": { + "unknown_ber_tlv_ie_d0": { + "raw": "20" + }, + "toolkit_access_conditions": { + "rfm_create": true, + "rfm_delete_terminate": true, + "other_applet_create": true, + "other_applet_delete_terminate": true + } + }, + "life_cycle_status_integer": "operational_activated", + "security_attrib_referenced": { + "ef_arr_file_id": "6f06", + "ef_arr_record_nr": 6 + }, + "file_size": 128, + "short_file_identifier": null + }, + "body": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, "MF/ADF.USIM/EF.MuDMiDConfigData": { "path": [ "MF", -- To view, visit https://gerrit.osmocom.org/c/pysim/+/38472?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I16797ca58c3ad6ebaf588d04fec011a0cbcfcef3 Gerrit-Change-Number: 38472 Gerrit-PatchSet: 4 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
1 0
0 0
[S] Change in osmo-hnbgw[master]: on RUA Connect failure, respond with RUA Disconnect
by pespin 26 Oct '24

26 Oct '24
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hnbgw/+/37807?usp=email ) Change subject: on RUA Connect failure, respond with RUA Disconnect ...................................................................... on RUA Connect failure, respond with RUA Disconnect Related: OS#6283 Related: osmo-ttcn3-hacks I2b5c024a395e736538c0c37db40d34f3b8d99991 Tweaked-by: Oliver Smith <osmith(a)sysmocom.de> Change-Id: Iafb30c31a4c5db53ecdda99a0e0b5937b71e362c --- M src/osmo-hnbgw/hnbgw_rua.c 1 file changed, 15 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve diff --git a/src/osmo-hnbgw/hnbgw_rua.c b/src/osmo-hnbgw/hnbgw_rua.c index 5576fa4..01e9e3a 100644 --- a/src/osmo-hnbgw/hnbgw_rua.c +++ b/src/osmo-hnbgw/hnbgw_rua.c @@ -166,6 +166,20 @@ return hnbgw_rua_tx(hnb, msg); } +/* Send Disconnect to RUA without RANAP data */ +static void rua_tx_disc_conn_fail(struct hnb_context *hnb, bool is_ps, uint32_t context_id) +{ + RUA_Cause_t rua_cause = { + .present = RUA_Cause_PR_radioNetwork, + .choice.radioNetwork = RUA_CauseRadioNetwork_connect_failed, + }; + + LOG_HNBP(hnb->persistent, LOGL_INFO, "Tx RUA Disconnect\n"); + + if (rua_tx_disc(hnb, is_ps, context_id, &rua_cause, NULL, 0)) + LOG_HNBP(hnb->persistent, LOGL_ERROR, "Failed to send Disconnect to RUA\n"); +} + static struct value_string rua_procedure_code_names[] = { { RUA_ProcedureCode_id_Connect, "Connect" }, { RUA_ProcedureCode_id_DirectTransfer, "DirectTransfer" }, @@ -270,6 +284,7 @@ LOGHNB(hnb, DRUA, LOGL_ERROR, "Failed to create context map for %s: rx RUA %s with %u bytes RANAP data\n", is_ps ? "IuPS" : "IuCS", rua_procedure_code_name(rua_procedure), data ? len : 0); + rua_tx_disc_conn_fail(hnb, is_ps, context_id); return -EINVAL; } break; -- To view, visit https://gerrit.osmocom.org/c/osmo-hnbgw/+/37807?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-hnbgw Gerrit-Branch: master Gerrit-Change-Id: Iafb30c31a4c5db53ecdda99a0e0b5937b71e362c Gerrit-Change-Number: 37807 Gerrit-PatchSet: 3 Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-CC: osmith <osmith(a)sysmocom.de>
1 0
0 0
[S] Change in osmo-hnbgw[master]: on RUA DT for unknown context, respond with RUA Disconnect
by pespin 26 Oct '24

26 Oct '24
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hnbgw/+/37808?usp=email ) Change subject: on RUA DT for unknown context, respond with RUA Disconnect ...................................................................... on RUA DT for unknown context, respond with RUA Disconnect If we receive a DirectTransfer for an unknown RUA context, respond with a RUA Disconnect to make sure the peer knows there is no such context. (Do not respond to RUA Disconnect though.) Related: OS#6283 Tweaked-by: Oliver Smith <osmith(a)sysmocom.de> Change-Id: If0b9a999649c9822f55b42b0cae8408af668e1b8 --- M src/osmo-hnbgw/hnbgw_rua.c 1 file changed, 9 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/osmo-hnbgw/hnbgw_rua.c b/src/osmo-hnbgw/hnbgw_rua.c index 01e9e3a..b804b46 100644 --- a/src/osmo-hnbgw/hnbgw_rua.c +++ b/src/osmo-hnbgw/hnbgw_rua.c @@ -242,7 +242,6 @@ struct msgb *ranap_msg = NULL; struct hnbgw_context_map *map = NULL; bool is_ps; - int logl; switch (cN_DomainIndicator) { case RUA_CN_DomainIndicator_cs_domain: @@ -267,7 +266,6 @@ } map = context_map_find_by_rua_ctx_id(hnb, context_id, is_ps); - logl = LOGL_ERROR; switch (rua_procedure) { case RUA_ProcedureCode_id_Connect: @@ -293,13 +291,19 @@ /* For RUA Disconnect, do not spam the ERROR log. It is just a stray Disconnect, no harm done. * Context: some CN are known to rapidly tear down SCCP without waiting for RUA to disconnect gracefully * (IU Release Complete). Such CN would cause ERROR logging for each and every released context map. */ - logl = LOGL_DEBUG; - /* fall thru */ + if (!map) { + LOGHNB(hnb, DRUA, LOGL_DEBUG, "rx RUA %s for unknown RUA context %u\n", + rua_procedure_code_name(rua_procedure), context_id); + return -EINVAL; + } + break; + default: /* Any message other than Connect must have a valid RUA context */ if (!map) { - LOGHNB(hnb, DRUA, logl, "rx RUA %s for unknown RUA context %u\n", + LOGHNB(hnb, DRUA, LOGL_ERROR, "rx RUA %s for unknown RUA context %u\n", rua_procedure_code_name(rua_procedure), context_id); + rua_tx_disc_conn_fail(hnb, is_ps, context_id); return -EINVAL; } break; -- To view, visit https://gerrit.osmocom.org/c/osmo-hnbgw/+/37808?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-hnbgw Gerrit-Branch: master Gerrit-Change-Id: If0b9a999649c9822f55b42b0cae8408af668e1b8 Gerrit-Change-Number: 37808 Gerrit-PatchSet: 3 Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-CC: laforge <laforge(a)osmocom.org> Gerrit-CC: osmith <osmith(a)sysmocom.de>
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: RAN_Emulation: Allow setting reason in primitive MSC_CONN_PRIM_DISC_REQ
by pespin 26 Oct '24

26 Oct '24
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38541?usp=email ) Change subject: RAN_Emulation: Allow setting reason in primitive MSC_CONN_PRIM_DISC_REQ ...................................................................... RAN_Emulation: Allow setting reason in primitive MSC_CONN_PRIM_DISC_REQ This allows setting a specific reason in the CREF transmitted on the wire, other than "End user originted (0)". A follow-up commit will add a test in HNBGW_Tests where an emulated MSC answers with CREF reason "End user failure (0x02)". Change-Id: I1fa1148135625d840426b52450bf52da10448471 --- M library/RAN_Emulation.ttcnpp 1 file changed, 8 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index 5a95ba0..d1edcff 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -77,6 +77,7 @@ /* we tell SCCP to release connection */ type record MSC_CONN_PRIM_DISC_REQ { + SCCP_PAR_Reason reason }; /* Connection confirmed indication */ @@ -100,8 +101,10 @@ template (present) RAN_Conn_Prim tr_MSC_CONN_PRIM_DISC_REQ := { disc_req := ? } -template (value) RAN_Conn_Prim ts_MSC_CONN_PRIM_DISC_REQ := { - disc_req := {} +template (value) RAN_Conn_Prim ts_MSC_CONN_PRIM_DISC_REQ(template (value) SCCP_PAR_Reason reason := 0) := { + disc_req := { + reason := reason + } } template (present) RAN_Conn_Prim tr_MSC_CONN_PRIM_CONF_IND := { @@ -1007,6 +1010,7 @@ var RANAP_Conn_Req creq; var RANAP_PDU ranap; var RANAP_N_UNITDATA_req ranap_ud; + var RAN_Conn_Prim ran_conn_prim; var RAN_ConnHdlr vc_conn; var PDU_DTAP_PS_MO ps_mo; var PDU_DTAP_PS_MT ps_mt; @@ -1080,9 +1084,9 @@ } /* Disconnect request client -> SCCP */ - [] CLIENT.receive(tr_MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { + [] CLIENT.receive(tr_MSC_CONN_PRIM_DISC_REQ) -> value ran_conn_prim sender vc_conn { var integer conn_id := f_conn_id_by_comp(vc_conn); - RANAP.send(ts_RANAP_DISC_req(conn_id, 0)); + RANAP.send(ts_RANAP_DISC_req(conn_id, ran_conn_prim.disc_req.reason)); f_conn_table_del(conn_id); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38541?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1fa1148135625d840426b52450bf52da10448471 Gerrit-Change-Number: 38541 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
1 0
0 0
[XS] Change in osmo-ttcn3-hacks[master]: hnbgw: Allow modifying RanOps during test startup
by pespin 26 Oct '24

26 Oct '24
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38539?usp=email ) Change subject: hnbgw: Allow modifying RanOps during test startup ...................................................................... hnbgw: Allow modifying RanOps during test startup This will be used by a test to skip response to CONNECT.ind, allowing transmission of DISCONNECT.req and hence transmitting CREF over the wire. Change-Id: Ib9462ba41b16375348b086d7ffe9f5755ae26f84 --- M hnbgw/HNBGW_Tests.ttcn 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn index 4ab5a90..4606396 100644 --- a/hnbgw/HNBGW_Tests.ttcn +++ b/hnbgw/HNBGW_Tests.ttcn @@ -272,6 +272,8 @@ /* Counter state */ var CounterNameValsList g_ctr_cn; var CounterNameValsList g_ctr_hnb; + + var RanOps g_ran_ops := MSC_RanOps; } /* global altstep for global guard timer; */ @@ -394,7 +396,7 @@ * link for 'sgsn 3' = (ps_domain := true, cn_nr := 3) */ private function f_cn_nr_init(boolean ps_domain, integer cn_nr) runs on test_CT { - var RanOps ranops := MSC_RanOps; + var RanOps ranops := g_ran_ops; ranops.ps_domain := ps_domain; var integer cn_idx := f_cn_idx(ps_domain, cn_nr); var charstring msc_sgsn := "msc"; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38539?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib9462ba41b16375348b086d7ffe9f5755ae26f84 Gerrit-Change-Number: 38539 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: RAN_Emulation: Introduce field ranap_connect_ind_auto_res
by pespin 26 Oct '24

26 Oct '24
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38538?usp=email ) Change subject: RAN_Emulation: Introduce field ranap_connect_ind_auto_res ...................................................................... RAN_Emulation: Introduce field ranap_connect_ind_auto_res This field allows skipping automatic response of the connect_ind, hence allowing ConnHdlr to totally skip it, delay it, or generate a CREF by means of sending RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ to RAN_Emulation, as per ITU Q.711 Figure 8. Change-Id: I5a69990e3a0839dd3c25c7dc66e6bcf66123fbff --- M hnbgw/HNBGW_Tests.ttcn M library/RAN_Emulation.ttcnpp M msc/BSC_ConnectionHandler.ttcn M sgsn/SGSN_Tests.ttcn 4 files changed, 10 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn index 30e624f..4ab5a90 100644 --- a/hnbgw/HNBGW_Tests.ttcn +++ b/hnbgw/HNBGW_Tests.ttcn @@ -232,6 +232,7 @@ const RanOps MSC_RanOps := { ranap_create_cb := refers(RAN_Emulation.RanapExpectedCreateCallback), ranap_unitdata_cb := refers(MSC_UnitdataCallback), + ranap_connect_ind_auto_res := true, ps_domain := false, decode_dtap := false, role_ms := false, diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index fbe921d..c221c72 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -734,6 +734,9 @@ #ifdef RAN_EMULATION_RANAP RanapCreateCallback ranap_create_cb optional, RanapUnitdataCallback ranap_unitdata_cb optional, + /* Set to false if want to handle response to RANAP_N_CONNECT_ind. + * This is useful to eg. trigger SCCP CREF. */ + boolean ranap_connect_ind_auto_res, boolean ps_domain, #endif boolean decode_dtap, @@ -1000,8 +1003,10 @@ /* Notify client that we received an SCCP CR without user data */ CLIENT.send(ts_RANAP_Conn_Req(rconn_ind.callingAddress, rconn_ind.calledAddress, omit)); } - /* confirm connection establishment */ - RANAP.send(ts_RANAP_CONNECT_res(rconn_ind.connectionId, omit)); + if (g_ran_ops.ranap_connect_ind_auto_res) { + /* confirm connection establishment */ + RANAP.send(ts_RANAP_CONNECT_res(rconn_ind.connectionId, omit)); + } } /* SCCP -> Client: connection-oriented data in existing connection */ [] RANAP.receive(RANAP_N_DATA_ind:?) -> value rdata_ind { diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 467f387..e436117 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -273,6 +273,7 @@ unitdata_cb := refers(BscUnitdataCallback), ranap_create_cb := refers(RAN_Emulation.RanapExpectedCreateCallback), ranap_unitdata_cb := refers(RncUnitdataCallback), + ranap_connect_ind_auto_res := true, ps_domain := false, decode_dtap := true, role_ms := true, diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 1099798..0f5da29 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -437,6 +437,7 @@ const RanOps RNC_RanOps := { ranap_create_cb := refers(RAN_Emulation.RanapExpectedCreateCallback), ranap_unitdata_cb := refers(RncUnitdataCallback), + ranap_connect_ind_auto_res := true, ps_domain := true, decode_dtap := true, role_ms := true, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38538?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5a69990e3a0839dd3c25c7dc66e6bcf66123fbff Gerrit-Change-Number: 38538 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: Convert RAN_Conn_Prim from enum to union
by pespin 26 Oct '24

26 Oct '24
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38540?usp=email ) Change subject: Convert RAN_Conn_Prim from enum to union ...................................................................... Convert RAN_Conn_Prim from enum to union This will allow passing parameters in each primitive. This is needed eg. to pass the reason in DISCONNECT.req. Change-Id: I17994795b51efc7e6700238ddcf45594af653e42 --- M bsc-nat/BSC_MS_ConnectionHandler.ttcn M bsc-nat/MSC_ConnectionHandler.ttcn M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_ASCI.ttcn M bsc/BSC_Tests_LCLS.ttcn M hnbgw/ConnHdlr.ttcn M hnbgw/HNBGW_Tests.ttcn M library/RAN_Emulation.ttcnpp M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn M msc/MSC_Tests_Iu.ttcn M sgsn/BSSGP_ConnHdlr.ttcn M sgsn/SGSN_Tests_Iu.ttcn 13 files changed, 101 insertions(+), 71 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/bsc-nat/BSC_MS_ConnectionHandler.ttcn b/bsc-nat/BSC_MS_ConnectionHandler.ttcn index 8aea74a..882caf8 100644 --- a/bsc-nat/BSC_MS_ConnectionHandler.ttcn +++ b/bsc-nat/BSC_MS_ConnectionHandler.ttcn @@ -190,16 +190,16 @@ log("Unhandled DTAP ", l3); } - [g_state == BSC_STATE_WAIT_DISC_IND] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [g_state == BSC_STATE_WAIT_DISC_IND] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(pass); self.stop; } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) { } /* disconnect in invalid state */ - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(fail); self.stop; } diff --git a/bsc-nat/MSC_ConnectionHandler.ttcn b/bsc-nat/MSC_ConnectionHandler.ttcn index fdf08de..0fe7c23 100644 --- a/bsc-nat/MSC_ConnectionHandler.ttcn +++ b/bsc-nat/MSC_ConnectionHandler.ttcn @@ -181,14 +181,14 @@ } [g_state == MSC_STATE_WAIT_DLCX_ACK] BSSAP.receive(tr_DLCX_ACK) { - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); setverdict(pass); self.stop; } /* TODO: CLEAR REQUEST from BSS */ - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(fail); self.stop; } @@ -199,7 +199,7 @@ /* Guard timer has expired, close connection */ [] T.timeout { - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); setverdict(fail, "Timeout of guard timer"); self.stop; } diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 8dcff83..4d60ea8 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -5964,7 +5964,7 @@ f_rslem_unregister(0, g_chan_nr, PT := RSL1_PROC); } [] BSSAP.receive(tr_BSSMAP_ClearComplete) { - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } } @@ -6085,7 +6085,7 @@ [] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)); [] RSL.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)); [] BSSAP.receive(tr_BSSMAP_ClearComplete) { - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } } setverdict(pass); @@ -6373,7 +6373,7 @@ f_expect_dlcx_conns(); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); setverdict(pass); f_sleep(1.0); @@ -6422,10 +6422,10 @@ enc := g_pars.encr); if (g_pars.inter_bsc_ho_in__ho_req_in_initial_sccp_cr) { BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, ho_req)); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); } else { BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, omit)); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); BSSAP.send(ho_req); } @@ -6824,7 +6824,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */ @@ -6867,7 +6867,7 @@ f_expect_dlcx_conns(); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); setverdict(pass); f_sleep(1.0); @@ -6914,7 +6914,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */ @@ -6961,7 +6961,7 @@ f_expect_dlcx_conns(); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); f_sleep(1.0); } @@ -7001,7 +7001,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */ @@ -7051,7 +7051,7 @@ f_expect_dlcx_conns(); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); f_sleep(1.0); } @@ -7093,7 +7093,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */ @@ -7135,7 +7135,7 @@ }; f_expect_dlcx_conns(); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); f_sleep(1.0); } @@ -8548,7 +8548,7 @@ [] BSSAP.receive(tr_BSSMAP_ClearComplete) { f_logp(BSCVTY, "Got BSSMAP Clear Complete"); /* Also drop the SCCP connection */ - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } [] rsl_pt.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) { f_logp(BSCVTY, "Got RSL RF Chan Rel, sending Rel Ack"); @@ -8575,7 +8575,7 @@ [] BSSAP.receive(tr_BSSMAP_ClearComplete) { f_logp(BSCVTY, "Got BSSMAP Clear Complete"); /* Also drop the SCCP connection */ - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } [] rsl_pt.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) { f_logp(BSCVTY, "Got RSL RF Chan Rel, sending Rel Ack"); @@ -8594,7 +8594,7 @@ BSSAP.receive(tr_BSSMAP_ClearComplete); f_logp(BSCVTY, "Got BSSMAP Clear Complete"); /* Also drop the SCCP connection */ - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } friend function f_perform_clear_test_ct(DchanTuple dt) @@ -10374,7 +10374,7 @@ var BssmapCause cause := 0; BSSAP.send(ts_BSSMAP_ClearCommand(cause)); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); timer no_more_bssap := 5.0; no_more_bssap.start; @@ -10424,7 +10424,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi), ts_CellId_CGI('001'H, '01'H, 1, 0))))); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); var PDU_BSSAP_LE plr; BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?)) -> value(plr); @@ -10485,7 +10485,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Perform_Location_Request(omit, ts_CellId_CGI('262'H, '42'H, 23, 42))))); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); /* BSC tells MSC about failure */ BSSAP.receive(tr_BSSMAP_Perform_Location_Response( @@ -10597,7 +10597,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi), ts_CellId_CGI('001'H, '01'H, 1, 0))))); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); var PDU_BSSAP_LE plr; BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?)) -> value(plr); @@ -10664,7 +10664,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi), ts_CellId_CGI('001'H, '01'H, 1, 0))))); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); var PDU_BSSAP_LE plr; BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?)) -> value(plr); @@ -11119,7 +11119,7 @@ f_rslem_unregister(0, g_chan_nr); } [] BSSAP.receive(tr_BSSMAP_ClearComplete) { - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } } f_expect_dlcx_conns(); @@ -11821,7 +11821,7 @@ BSSAP.send(ts_BSSMAP_ClearCommand(0)); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); var MgcpCommand mgcp; var MGCP_RecvFrom mrf; diff --git a/bsc/BSC_Tests_ASCI.ttcn b/bsc/BSC_Tests_ASCI.ttcn index 8c8b66c..eb4a9dc 100644 --- a/bsc/BSC_Tests_ASCI.ttcn +++ b/bsc/BSC_Tests_ASCI.ttcn @@ -118,7 +118,7 @@ /* VGCS/VBS SETUP REQ in SCCP CR (must be the first message) */ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, setup_req)); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); alt { [] BSSAP.receive(tr_BSSMAP_VGCS_VBS_SetupAck) -> value rx_bssap { @@ -129,7 +129,7 @@ } BSSAP.send(ts_BSSMAP_ClearCommand(0)); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); setverdict(pass); return; } @@ -237,7 +237,7 @@ COORD.send(COORD_VGCS_CHANNEL_REL); BSSAP.send(ts_BSSMAP_ClearCommand(0)); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); if (g_pars.asci_test.vgcs_assign_ok) { if (not assign_res) { @@ -412,7 +412,7 @@ group_call_ref := bit2oct(encvalue(callref))); /* VGCS/VBS ASS REQ in SCCP CR (must be the first message) */ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, ass_req)); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); alt { [] BSSAP.receive(tr_BSSMAP_VGCS_VBS_AssignmentRes(res_ch_type, res_cell_id)) -> value rx_bssap { @@ -456,7 +456,7 @@ COORD.receive(COORD_VGCS_CHANNEL_REL); BSSAP.send(ts_BSSMAP_ClearCommand(0)); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); return; } [] COORD.receive(COORD_VGCS_CHANNEL_REL) { diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index 2b9886b..30aef99 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -717,7 +717,7 @@ } } [] CONN_A.receive(tr_BSSMAP_ClearComplete) { - CONN_A.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + CONN_A.send(ts_MSC_CONN_PRIM_DISC_REQ); } [] CONN_B.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_possible_ls)); } diff --git a/hnbgw/ConnHdlr.ttcn b/hnbgw/ConnHdlr.ttcn index b304f18..93875bd 100644 --- a/hnbgw/ConnHdlr.ttcn +++ b/hnbgw/ConnHdlr.ttcn @@ -367,7 +367,7 @@ /* expect disconnect on the Iu side */ T.start; alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(pass); } [] T.timeout { diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn index 4606396..6606d3b 100644 --- a/hnbgw/HNBGW_Tests.ttcn +++ b/hnbgw/HNBGW_Tests.ttcn @@ -2294,7 +2294,7 @@ /* We modified the SCCP configuration, expect disconnect of UE that was active on the aborted link. */ RUA.receive(RUA_Disc_Ind:?); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); /* Would be nice to test reconnection on the other point-code, too. That would require another cnlink in * osmo-stp.cfg and module parameters... */ diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index c221c72..5a95ba0 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -71,14 +71,44 @@ port RAN_PROC_PT BSSAP_PROC; } +/* SCCP tell us that connection was released */ +type record MSC_CONN_PRIM_DISC_IND { +}; + +/* we tell SCCP to release connection */ +type record MSC_CONN_PRIM_DISC_REQ { +}; + +/* Connection confirmed indication */ +type record MSC_CONN_PRIM_CONF_IND { +}; + /* Auxiliary primitive that can happen on the port between per-connection client and this dispatcher */ -type enumerated RAN_Conn_Prim { - /* SCCP tell us that connection was released */ - MSC_CONN_PRIM_DISC_IND, - /* we tell SCCP to release connection */ - MSC_CONN_PRIM_DISC_REQ, - /* Connection confirmed indication */ - MSC_CONN_PRIM_CONF_IND +type union RAN_Conn_Prim { + MSC_CONN_PRIM_DISC_IND disc_ind, + MSC_CONN_PRIM_DISC_REQ disc_req, + MSC_CONN_PRIM_CONF_IND conf_ind +} + +template (present) RAN_Conn_Prim tr_MSC_CONN_PRIM_DISC_IND := { + disc_ind := ? +} +template (value) RAN_Conn_Prim ts_MSC_CONN_PRIM_DISC_IND := { + disc_ind := {} +} + +template (present) RAN_Conn_Prim tr_MSC_CONN_PRIM_DISC_REQ := { + disc_req := ? +} +template (value) RAN_Conn_Prim ts_MSC_CONN_PRIM_DISC_REQ := { + disc_req := {} +} + +template (present) RAN_Conn_Prim tr_MSC_CONN_PRIM_CONF_IND := { + conf_ind := ? +} +template (value) RAN_Conn_Prim ts_MSC_CONN_PRIM_CONF_IND := { + conf_ind := {} } type enumerated RAN_Transport { @@ -889,7 +919,7 @@ f_handle_userData(vc_conn, disc_ind.userData); } /* notify client about termination */ - var RAN_Conn_Prim prim := MSC_CONN_PRIM_DISC_IND; + var RAN_Conn_Prim prim := valueof(ts_MSC_CONN_PRIM_DISC_IND); CLIENT.send(prim) to vc_conn; f_conn_table_del(disc_ind.connectionId); /* TOOD: return confirm to other side? */ @@ -897,7 +927,7 @@ /* SCCP -> Client: connection confirm for outbound connection */ [] BSSAP.receive(BSSAP_N_CONNECT_cfm:?) -> value conn_cfm { vc_conn := f_comp_by_conn_id(conn_cfm.connectionId); - var RAN_Conn_Prim prim := MSC_CONN_PRIM_CONF_IND; + var RAN_Conn_Prim prim := valueof(ts_MSC_CONN_PRIM_CONF_IND); CLIENT.send(prim) to vc_conn; /* handle user payload */ if (ispresent(conn_cfm.userData)) { @@ -915,7 +945,7 @@ } /* Disconnect request client -> SCCP */ - [] CLIENT.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { + [] CLIENT.receive(tr_MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { var integer conn_id := f_conn_id_by_comp(vc_conn); BSSAP.send(ts_BSSAP_DISC_req(conn_id, 0)); f_conn_table_del(conn_id); @@ -1022,7 +1052,7 @@ f_handle_userData_RANAP(vc_conn, rdisc_ind.userData); } /* notify client about termination */ - var RAN_Conn_Prim prim := MSC_CONN_PRIM_DISC_IND; + var RAN_Conn_Prim prim := valueof(ts_MSC_CONN_PRIM_DISC_IND); CLIENT.send(prim) to vc_conn; f_conn_table_del(rdisc_ind.connectionId); /* TOOD: return confirm to other side? */ @@ -1030,7 +1060,7 @@ /* SCCP -> Client: connection confirm for outbound connection */ [] RANAP.receive(RANAP_N_CONNECT_cfm:?) -> value rconn_cfm { vc_conn := f_comp_by_conn_id(rconn_cfm.connectionId); - var RAN_Conn_Prim prim := MSC_CONN_PRIM_CONF_IND; + var RAN_Conn_Prim prim := valueof(ts_MSC_CONN_PRIM_CONF_IND); CLIENT.send(prim) to vc_conn; /* handle user payload */ if (ispresent(rconn_cfm.userData)) { @@ -1050,7 +1080,7 @@ } /* Disconnect request client -> SCCP */ - [] CLIENT.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { + [] CLIENT.receive(tr_MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { var integer conn_id := f_conn_id_by_comp(vc_conn); RANAP.send(ts_RANAP_DISC_req(conn_id, 0)); f_conn_table_del(conn_id); @@ -1565,7 +1595,7 @@ [] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)) { BSSAP.send(ts_RANAP_IuReleaseComplete); alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(pass); } [] BSSAP.receive { diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index e436117..b7d1b94 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -307,8 +307,8 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own, valueof(ts_BSSMAP_ComplL3(g_pars.cell_id, l3_enc)))); alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {} - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(fail, "DISC.ind from SCCP"); mtc.stop; } @@ -356,8 +356,8 @@ ranap := valueof(ts_RANAP_initialUE_CS(lai, sai, l3_enc, sigc_id, grnc_id)); BSSAP.send(ts_RANAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own, ranap)); alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {} - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(fail, "DISC.ind from SCCP"); mtc.stop; } @@ -1445,7 +1445,7 @@ [] MNCC.receive(tr_MNCC_REL_ind(cpars.mncc_callref)); [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id))); [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id))); - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); [] BSSAP.receive(tr_BSSMAP_ClearCommand); [] BSSAP.receive(tr_BSSMAP_ClearCommandCSFB); [] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)); @@ -1917,14 +1917,14 @@ [g_pars.ran_is_geran] BSSAP.receive(t_clear) { log("f_call_hangup 5: rx BSSAP Clear Command"); BSSAP.send(ts_BSSMAP_ClearComplete); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); log("f_call_hangup 6: rx SCCP DISC"); setverdict(pass); } [not g_pars.ran_is_geran] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)) { log("f_call_hangup 5.iu: rx Iu Release Command"); BSSAP.send(ts_RANAP_IuReleaseComplete); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); log("f_call_hangup 6.iu: rx SCCP DISC"); setverdict(pass); } @@ -2036,7 +2036,7 @@ [] BSSAP.receive(tr_BSSMAP_ClearCommand) { BSSAP.send(ts_BSSMAP_ClearComplete); alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(pass); } [] BSSAP.receive { diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 283ced6..b4b3614 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -819,7 +819,7 @@ /* Expect the channel cleared upon T(iar) triggered: */ T_wait_iar.start; alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { T_wait_iar.stop setverdict(pass); } @@ -951,7 +951,7 @@ mtc.stop; repeat; } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {} } setverdict(pass); } @@ -1043,7 +1043,7 @@ f_sleep(1.0); /* send clear request in the middle of the LU */ - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); setverdict(pass); f_sleep(1.0); } @@ -1512,10 +1512,10 @@ timer T := 5.0; T.start; alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {} /* Expect LU REJECT with Cause == Illegal MS */ [] BSSAP.receive(tr_PDU_DTAP_MT(?)) { repeat; } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) { repeat; } + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) { repeat; } [] as_clear_cmd_compl_disc(); [] T.timeout { setverdict(fail, "Timeout waiting for ClearCommand or SCCP Release"); @@ -1551,9 +1551,9 @@ T.start; alt { /* Immediate disconnect */ - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {} [] BSSAP.receive(tr_PDU_DTAP_MT(?)) { repeat; } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) { repeat; } + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) { repeat; } [] as_clear_cmd_compl_disc(); [] T.timeout { setverdict(fail, "Timeout waiting for ClearCommand or SCCP Release"); @@ -6843,7 +6843,7 @@ [] BSSAP.receive(tr_BSSMAP_ClearCommand) { BSSAP.send(ts_BSSMAP_ClearComplete); } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); } f_sleep(1.0); diff --git a/msc/MSC_Tests_Iu.ttcn b/msc/MSC_Tests_Iu.ttcn index 361dd83..229ebb6 100644 --- a/msc/MSC_Tests_Iu.ttcn +++ b/msc/MSC_Tests_Iu.ttcn @@ -141,7 +141,7 @@ mtc.stop; repeat; } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {} } setverdict(pass); } diff --git a/sgsn/BSSGP_ConnHdlr.ttcn b/sgsn/BSSGP_ConnHdlr.ttcn index 78a81bc..2a434aa 100644 --- a/sgsn/BSSGP_ConnHdlr.ttcn +++ b/sgsn/BSSGP_ConnHdlr.ttcn @@ -215,8 +215,8 @@ ranap := valueof(ts_RANAP_initialUE_PS(lai, rac, sai, l3_enc, sigc_id, grnc_id)); BSSAP.send(ts_RANAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_local, ranap)); alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {} - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(fail, "DISC.ind from SCCP"); mtc.stop; } diff --git a/sgsn/SGSN_Tests_Iu.ttcn b/sgsn/SGSN_Tests_Iu.ttcn index 7a7ee7c..400b717 100644 --- a/sgsn/SGSN_Tests_Iu.ttcn +++ b/sgsn/SGSN_Tests_Iu.ttcn @@ -393,7 +393,7 @@ apars.ggsn_tei_c, GTP_CAUSE_REQUEST_ACCEPTED)); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); g_pars.rnc_send_initial_ue := true; BSSAP.receive(tr_RANAP_Paging(ps_domain, imsi_hex2oct(g_pars.imsi))); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38540?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I17994795b51efc7e6700238ddcf45594af653e42 Gerrit-Change-Number: 38540 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: Convert RAN_Conn_Prim from enum to union
by pespin 26 Oct '24

26 Oct '24
pespin has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38540?usp=email ) Change subject: Convert RAN_Conn_Prim from enum to union ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38540?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I17994795b51efc7e6700238ddcf45594af653e42 Gerrit-Change-Number: 38540 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Fri, 25 Oct 2024 22:53:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • ...
  • 164
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.