# 0 "RAN_Adapter.ttcnpp" # 0 "" # 0 "" # 1 "RAN_Adapter.ttcnpp" module RAN_Adapter { # 18 "RAN_Adapter.ttcnpp" import from General_Types all; import from Osmocom_Types all; import from M3UA_Emulation all; import from MTP3asp_Types all; import from MTP3asp_PortType all; import from SCCP_Types all; import from SCCPasp_Types all; import from SCCP_Emulation all; import from SCCP_Templates all; import from SCCP_Adapter all; import from RAN_Emulation all; type record RAN_Adapter { SCCP_Adapter sccpa, RAN_Transport transport, RAN_Emulation_CT vc_RAN } type record RAN_Configuration { RAN_Transport transport, SCCP_Adapter_Config sccp }; type record of RAN_Configuration RAN_Configurations; function f_ran_adapter_init(inout RAN_Adapter ba, in RAN_Configuration cfg, charstring id, RanOps ops) { f_sccp_adapter_init(ba.sccpa, cfg.sccp, id); ba.transport := cfg.transport; ops.sccp_addr_local := ba.sccpa.sccp_addr_own; ops.sccp_addr_peer := ba.sccpa.sccp_addr_peer; ba.vc_RAN := RAN_Emulation_CT.create(id & "-RAN") alive; timer T := 5.0; T.start; ops.transport := cfg.transport; if (cfg.transport == RANAP_TRANSPORT_IuCS) { log("Connecting RANAP RAN_Emulation to SCCP_SP_PORT"); ops.protocol := RAN_PROTOCOL_RANAP connect(ba.vc_RAN:RANAP, ba.sccpa.vc_SCCP:SCCP_SP_PORT); } else { } if (cfg.transport == BSSAP_TRANSPORT_SCCPlite) { # 89 "RAN_Adapter.ttcnpp" } log("Starting RAN_Emulation"); ba.vc_RAN.start(RAN_Emulation.main(valueof(ops), "")); } function f_ran_adapter_start(inout RAN_Adapter ba) { f_sccp_adapter_start(ba.sccpa); } function f_ran_adapter_cleanup(inout RAN_Adapter ba) { if (ba.transport == RANAP_TRANSPORT_IuCS) { disconnect(ba.vc_RAN:RANAP, ba.sccpa.vc_SCCP:SCCP_SP_PORT); } else { } ba.vc_RAN.stop; f_sccp_adapter_cleanup(ba.sccpa); } }