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/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/13754 ) Change subject: sgsn: Integrate RANAP ...................................................................... sgsn: Integrate RANAP Integrate RANAP support to SGSN_Tests.ttcn. Related: OS#2857 Change-Id: Ib62fc4c6007f6f4c47db7ca096a8d629bc72bb22 --- M sgsn/SGSN_Tests.ttcn M sgsn/gen_links.sh M sgsn/regen_makefile.sh 3 files changed, 106 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index e349719..a7cc57f 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -19,6 +19,7 @@ import from BSSGP_Types all; import from BSSGP_Emulation all; import from Osmocom_Gb_Types all; +import from SCCPasp_Types all; import from MobileL3_CommonIE_Types all; import from MobileL3_GMM_SM_Types all; @@ -30,6 +31,12 @@ import from GSUP_Types all; import from IPA_Emulation all; +import from RAN_Adapter all; +import from RAN_Emulation all; +import from RANAP_Templates all; +import from RANAP_PDU_Descriptions all; +import from RANAP_IEs all; + import from GTP_Emulation all; import from GTP_Templates all; import from GTP_CodecPort all; @@ -87,6 +94,20 @@ handle_sns := false } }; + + RAN_Configurations mp_ranap_cfg := { + { + transport := RANAP_TRANSPORT_IuCS, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23908, "127.0.0.1", 2905, "127.0.0.1" }, + own_pc := 195, + own_ssn := 142, + peer_pc := 188, /* 0.23.4 */ + peer_ssn := 142, + sio := '83'O, + rctx := 2 + } + } }; type record GbInstance { @@ -100,8 +121,12 @@ type record length(NUM_GB) of NSConfiguration NSConfigurations; type record length(NUM_GB) of BssgpCellId BssgpCellIds; +const integer NUM_RNC := 1; +type record of RAN_Configuration RAN_Configurations; + type component test_CT { var GbInstances g_gb; + var RAN_Adapter g_ranap[NUM_RNC]; var GSUP_Emulation_CT vc_GSUP; var IPA_Emulation_CT vc_GSUP_IPA; @@ -116,7 +141,7 @@ var boolean g_use_echo := false; }; -type component BSSGP_ConnHdlr extends BSSGP_Client_CT, GSUP_ConnHdlr, GTP_ConnHdlr { +type component BSSGP_ConnHdlr extends BSSGP_Client_CT, GSUP_ConnHdlr, GTP_ConnHdlr, RAN_ConnHdlr { var BSSGP_ConnHdlrPars g_pars; timer g_Tguard; var LLC_Entities llc; @@ -145,7 +170,10 @@ BssgpCellIds bssgp_cell_id, AuthVector vec optional, SGSN_ConnHdlrNetworkPars net, - float t_guard + float t_guard, + /* only in IuPS / RANAP case */ + SCCP_PAR_Address sccp_addr_local, + SCCP_PAR_Address sccp_addr_peer }; private function f_cellid_to_RAI(in BssgpCellId cell_id) return RoutingAreaIdentificationV { @@ -240,6 +268,8 @@ /* mcc_mnc is 24.008 10.5.5.15 encoded. 262 42 */ function f_init(BcdMccMnc mcc_mnc := '262F42'H) runs on test_CT { + var integer i; + if (g_initialized == true) { return; } @@ -288,11 +318,44 @@ f_init_gb(g_gb[0], "SGSN_Test-Gb0", 0); f_init_gb(g_gb[1], "SGSN_Test-Gb1", 1); f_init_gb(g_gb[2], "SGSN_Test-Gb2", 2); + + for (i := 0; i < NUM_RNC; i := i+1) { + f_ran_adapter_init(g_ranap[i], mp_ranap_cfg[i], "SGSN_Test_" & int2str(i), RNC_RanOps); + f_ran_adapter_start(g_ranap[i]); + } f_init_gsup("SGSN_Test"); f_init_gtp("SGSN_Test"); f_vty_enable_echo_interval(g_use_echo); } +private function RncUnitdataCallback(RANAP_PDU ranap) +runs on RAN_Emulation_CT return template RANAP_PDU { + var template RANAP_PDU resp := omit; + + log ("RANAP_RncUnitDataCallback"); + /* answer all RESET with RESET ACK */ + if (match(ranap, tr_RANAP_Reset)) { + log("RANAP_RncUnitdataCallback: Responding to RESET with RESET-ACK"); + var CN_DomainIndicator dom; + dom := ranap.initiatingMessage.value_.Reset.protocolIEs[1].value_.cN_DomainIndicator; + resp := ts_RANAP_ResetAck(dom); + } + return resp; +} + +const RanOps RNC_RanOps := { + ranap_create_cb := refers(RAN_Emulation.RanapExpectedCreateCallback), + ranap_unitdata_cb := refers(RncUnitdataCallback), + ps_domain := true, + decode_dtap := true, + role_ms := true, + protocol := RAN_PROTOCOL_RANAP, + transport := RANAP_TRANSPORT_IuCS, + use_osmux := false, + sccp_addr_local := omit, + sccp_addr_peer := omit +}; + type function void_fn(charstring id) runs on BSSGP_ConnHdlr; /* helper function to create, connect and start a BSSGP_ConnHdlr component */ @@ -317,7 +380,9 @@ bssgp_cell_id := { gb[0].cfg.cell_id, gb[1].cfg.cell_id, gb[2].cfg.cell_id }, vec := omit, net := net_pars, - t_guard := t_guard + t_guard := t_guard, + sccp_addr_local := g_ranap[0].sccp_addr_own, + sccp_addr_peer := g_ranap[0].sccp_addr_peer }; vc_conn := BSSGP_ConnHdlr.create(id); @@ -328,6 +393,10 @@ connect(vc_conn:BSSGP[2], gb[2].vc_BSSGP:BSSGP_SP); connect(vc_conn:BSSGP_PROC[2], gb[2].vc_BSSGP:BSSGP_PROC); + /* FIXME: support multiple RNCs */ + connect(vc_conn:BSSAP, g_ranap[0].vc_RAN:CLIENT); + connect(vc_conn:BSSAP_PROC, g_ranap[0].vc_RAN:PROC); + connect(vc_conn:GSUP, vc_GSUP:GSUP_CLIENT); connect(vc_conn:GSUP_PROC, vc_GSUP:GSUP_PROC); diff --git a/sgsn/gen_links.sh b/sgsn/gen_links.sh index fe09726..3552bc2 100755 --- a/sgsn/gen_links.sh +++ b/sgsn/gen_links.sh @@ -53,6 +53,35 @@ FILES="GTPC_EncDec.cc GTPC_Types.ttcn GTPU_EncDec.cc GTPU_Types.ttcn" gen_links $DIR $FILES +# required by M3UA_Emulation +DIR=$BASEDIR/titan.ProtocolModules.M3UA/src +FILES="M3UA_Types.ttcn" +gen_links $DIR $FILES + +# required by M3UA_Emulation +DIR=$BASEDIR/titan.TestPorts.SCTPasp/src +FILES="SCTPasp_PT.cc SCTPasp_PT.hh SCTPasp_PortType.ttcn SCTPasp_Types.ttcn" +gen_links $DIR $FILES + +# required by M3UA Emulation +DIR=$BASEDIR/titan.TestPorts.MTP3asp/src +FILES="MTP3asp_PortType.ttcn MTP3asp_Types.ttcn" +gen_links $DIR $FILES + +# required by SCCP Emulation +DIR=$BASEDIR/titan.ProtocolEmulations.M3UA/src +FILES="M3UA_Emulation.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolEmulations.SCCP/src +FILES="SCCP_Emulation.ttcn SCCP_EncDec.cc SCCP_Mapping.ttcnpp SCCP_Types.ttcn SCCPasp_Types.ttcn" +gen_links $DIR $FILES + +DIR=../library/ranap +FILES="RANAP_CommonDataTypes.asn RANAP_Constants.asn RANAP_Containers.asn RANAP_IEs.asn RANAP_PDU_Contents.asn RANAP_PDU_Descriptions.asn " +FILES+="RANAP_Types.ttcn RANAP_Templates.ttcn RANAP_CodecPort.ttcn RANAP_EncDec.cc " +gen_links $DIR $FILES + DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc " FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " @@ -60,6 +89,7 @@ FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn " FILES+="Osmocom_VTY_Functions.ttcn " FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " +FILES+="RAN_Emulation.ttcnpp RAN_Adapter.ttcnpp SCCP_Templates.ttcn " # IPA_Emulation + dependencies FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc Native_Functions.ttcn Native_FunctionDefs.cc GSUP_Types.ttcn GSUP_Emulation.ttcn " FILES+="GTP_CodecPort.ttcn GTP_CodecPort_CtrlFunct.ttcn GTP_CodecPort_CtrlFunctDef.cc GTP_Emulation.ttcn diff --git a/sgsn/regen_makefile.sh b/sgsn/regen_makefile.sh index 0cf2e64..a239a3b 100755 --- a/sgsn/regen_makefile.sh +++ b/sgsn/regen_makefile.sh @@ -1,7 +1,9 @@ #!/bin/sh -FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc LLC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc GTPU_EncDec.cc GTPC_EncDec.cc GTP_CodecPort_CtrlFunctDef.cc" +FILES="*.ttcn *.ttcnpp *.asn BSSGP_EncDec.cc LLC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc GTPU_EncDec.cc GTPC_EncDec.cc GTP_CodecPort_CtrlFunctDef.cc SCCP_EncDec.cc SCTPasp_PT.cc RANAP_EncDec.cc " -export CPPFLAGS_TTCN3="-DIPA_EMULATION_GSUP -DIPA_EMULATION_CTRL" +export CPPFLAGS_TTCN3="-DIPA_EMULATION_GSUP -DIPA_EMULATION_CTRL -DUSE_MTP3_DISTRIBUTOR -DRAN_EMULATION_RANAP" ../regen-makefile.sh SGSN_Tests.ttcn $FILES + +sed -i -e 's/^LINUX_LIBS = -lxml2/LINUX_LIBS = -lxml2 -lfftranscode/' Makefile -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/13754 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: Ib62fc4c6007f6f4c47db7ca096a8d629bc72bb22 Gerrit-Change-Number: 13754 Gerrit-PatchSet: 8 Gerrit-Owner: laforge <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge at gnumonks.org> Gerrit-Reviewer: lynxis lazus <lynxis at fe80.eu> 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/20190818/46558a4e/attachment.htm>