| module Test { |
| import from GSM_SystemInformation all; |
| import from GSMTAP_Types all; |
| import from GSMTAP_PortType all; |
| import from IPL4_GSMTAP_CtrlFunct all; |
| |
| const octetstring si1 := '5506198fb38000000000000000000000000000e504002b'O; |
| const octetstring si2 := '59061a00000000000000000000000000000000ffe50400'O; |
| const octetstring si3 := '49061b000062f22404d2490301275d40e50400392b2b2b'O; |
| const octetstring si4 := '31061c62f22404d25d40e504002b2b2b2b2b2b2b2b2b2b'O; |
| |
| type component dummy_CT { |
| port GSMTAP_PT GSMTAP; |
| }; |
| |
| testcase TC_si1() runs on dummy_CT { |
| var SystemInformationHeader hdr := { |
| l2_plen := valueof(t_L2Pseudolength(21)), |
| skip_indicator := 0, |
| rr_protocol_discriminator := 6, |
| message_type := '19'O |
| }; |
| log("SI: ", dec_SystemInformation(si1)); |
| log("SI: ", dec_SystemInformation(si2)); |
| log("SI: ", dec_SystemInformation(si3)); |
| log("SI: ", dec_SystemInformation(si4)); |
| } |
| |
| template GsmtapHeader t_GsmtapHeader := { |
| version := GSMTAP_VERSION, |
| hdr_len := 4, |
| msg_type := ?, |
| timeslot := ?, |
| arfcn := ?, |
| signal_dbm := ?, |
| snr_db := ?, |
| frame_number := ?, |
| sub_type := ?, |
| antenna_nr := ?, |
| sub_slot := ?, |
| res := ? |
| } |
| |
| template GsmtapHeader t_GsmtapHeaderUm(template GsmtapChannel ch) modifies t_GsmtapHeader := { |
| msg_type := GSMTAP_TYPE_UM, |
| sub_type := ch |
| } |
| |
| |
| template GsmtapMessage t_bcch := { |
| header := t_GsmtapHeaderUm(GSMTAP_CHANNEL_BCCH), |
| payload := ? |
| } |
| |
| template GSMTAP_RecvFrom t_recvfrom(template GsmtapChannel ch) := { |
| connId := ?, |
| remName := ?, |
| remPort := ?, |
| locName := ?, |
| locPort := GSMTAP_PORT, |
| proto := {udp:={}}, |
| userData := ?, |
| msg := { header := t_GsmtapHeaderUm(ch), payload := ?} |
| } |
| |
| testcase TC_gsmtap() runs on dummy_CT { |
| map(self:GSMTAP, system:GSMTAP); |
| IPL4_GSMTAP_CtrlFunct.f_IPL4_listen(GSMTAP, "0.0.0.0", GSMTAP_PORT, {udp := {}}); |
| |
| var GSMTAP_RecvFrom rf; |
| GSMTAP.receive(t_recvfrom(GSMTAP_CHANNEL_BCCH)) -> value rf; |
| log("UDP Rx:", rf); |
| log("SI: ", dec_SystemInformation(rf.msg.payload)); |
| } |
| |
| control { |
| execute(TC_si1()); |
| execute(TC_gsmtap()); |
| } |
| } |