module M3UA_Emulation_Test { //import from MTP3asp_PortType all; import from MTP3asp_Types all; import from BICC_Types all; import from M3UA_Emulation all; import from SCTPasp_PortType all; modulepar { SCTP_Association_Address tsp_address := { 0, "", 0, "" }; // float tsp_serverWait := 5.0; // boolean tsp_serverTest := false; } type port MTP3asp_PT_Int message { out ASP_MTP3_TRANSFERreq; in ASP_MTP3_TRANSFERind; } with {extension "internal"} type component BICC_CT { port MTP3asp_PT_Int BICC_MTP3_PORT; } type component MTC_CT { var BICC_CT vlc_BICC_COMPONENT_1; var M3UA_CT vlc_M3UA_COMPONENT_1; port SCTPasp_PT SCTP_PORT; // var BICC_CT vlc_BICC_COMPONENT_2; // port MTP3asp_PT M3UA_PORT; } function f_testconfig_bicc(SCTP_Association_Address pl_address) runs on MTC_CT { vlc_BICC_COMPONENT_1 := BICC_CT.create; vlc_M3UA_COMPONENT_1 := M3UA_CT.create; connect(vlc_BICC_COMPONENT_1:BICC_MTP3_PORT, vlc_M3UA_COMPONENT_1:MTP3_SP_PORT); map(system:SCTP_PORT, vlc_M3UA_COMPONENT_1:SCTP_PORT); vlc_M3UA_COMPONENT_1.start(f_M3UA_Emulation(pl_address)); } function f_testconfig_end_demo_bicc() runs on MTC_CT { unmap(system:SCTP_PORT, vlc_M3UA_COMPONENT_1:SCTP_PORT); disconnect(vlc_BICC_COMPONENT_1:BICC_MTP3_PORT, vlc_M3UA_COMPONENT_1:MTP3_SP_PORT); vlc_M3UA_COMPONENT_1.stop; } template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind_BICC := { sio := { ni := '10'B, prio := ?, si := '1101'B }, opc := ?, dpc := ?, sls := ?, data := ? } function f_init_BICC_bicc() runs on BICC_CT { var PDU_BICC vl_PDU_BICC; var ASP_MTP3_TRANSFERind vl_ASP_MTP3_TRANSFERind; var ASP_MTP3_TRANSFERreq vl_ASP_MTP3_TRANSFERreq; vl_PDU_BICC := { BICC_GRA := { CIC := '00000000'O, MType := '00010111'B, var_part_ptr := 1, RngSts := { range := '1F'O, status := ''O } } } vl_ASP_MTP3_TRANSFERreq := { sio := { ni := '10'B, prio := '00'B, si := '1101'B }, opc := 115, dpc := 300, sls := 0, data := enc_PDU_BICC(vl_PDU_BICC) } timer T_Timer := 5.0; T_Timer.start; alt { [] BICC_MTP3_PORT.receive(tr_ASP_MTP3_TRANSFERind_BICC) -> value vl_ASP_MTP3_TRANSFERind { log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind); vl_PDU_BICC := dec_PDU_BICC(vl_ASP_MTP3_TRANSFERind.data); log("received BICC message: ", vl_PDU_BICC); setverdict(pass); BICC_MTP3_PORT.send(vl_ASP_MTP3_TRANSFERreq); T_Timer.stop; } [] BICC_MTP3_PORT.receive(ASP_MTP3_TRANSFERind : ?) -> value vl_ASP_MTP3_TRANSFERind { log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind); repeat; } [] BICC_MTP3_PORT.receive { setverdict(fail); } [] T_Timer.timeout { setverdict(fail); } } T_Timer.start; alt { [] BICC_MTP3_PORT.receive(tr_ASP_MTP3_TRANSFERind_BICC) -> value vl_ASP_MTP3_TRANSFERind { log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind); vl_PDU_BICC := dec_PDU_BICC(vl_ASP_MTP3_TRANSFERind.data); log("received BICC message: ", vl_PDU_BICC); repeat; } [] BICC_MTP3_PORT.receive(ASP_MTP3_TRANSFERind : ?) -> value vl_ASP_MTP3_TRANSFERind { log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind); repeat; } [] BICC_MTP3_PORT.receive { } [] T_Timer.timeout { } } } testcase tc_M3UA_demo_bicc() runs on MTC_CT { f_testconfig_bicc(tsp_address); vlc_BICC_COMPONENT_1.start(f_init_BICC_bicc()); vlc_BICC_COMPONENT_1.done; f_testconfig_end_demo_bicc(); } }