blob: c7ce0f992b507e1ba4e13d810b895e0908ca29ed [file] [log] [blame]
Harald Welte56db5fd2017-07-14 18:25:59 +02001module Test {
2 import from GSM_SystemInformation all;
Harald Welteb622a3d2017-07-14 22:26:33 +02003 import from GSMTAP_Types all;
4 import from GSMTAP_PortType all;
5 import from IPL4_GSMTAP_CtrlFunct all;
Harald Welte56db5fd2017-07-14 18:25:59 +02006
7 const octetstring si1 := '5506198fb38000000000000000000000000000e504002b'O;
8 const octetstring si2 := '59061a00000000000000000000000000000000ffe50400'O;
9 const octetstring si3 := '49061b000062f22404d2490301275d40e50400392b2b2b'O;
10 const octetstring si4 := '31061c62f22404d25d40e504002b2b2b2b2b2b2b2b2b2b'O;
11
12 type component dummy_CT {
Harald Welteb622a3d2017-07-14 22:26:33 +020013 port GSMTAP_PT GSMTAP;
Harald Welte56db5fd2017-07-14 18:25:59 +020014 };
15
16 testcase TC_si1() runs on dummy_CT {
17 var SystemInformationHeader hdr := {
18 l2_plen := valueof(t_L2Pseudolength(21)),
19 skip_indicator := 0,
20 rr_protocol_discriminator := 6,
21 message_type := '19'O
22 };
23 log("SI: ", dec_SystemInformation(si1));
24 log("SI: ", dec_SystemInformation(si2));
25 log("SI: ", dec_SystemInformation(si3));
26 log("SI: ", dec_SystemInformation(si4));
27 }
28
Harald Welteb622a3d2017-07-14 22:26:33 +020029 template GsmtapHeader t_GsmtapHeader := {
30 version := GSMTAP_VERSION,
31 hdr_len := 4,
32 msg_type := ?,
33 timeslot := ?,
34 arfcn := ?,
35 signal_dbm := ?,
36 snr_db := ?,
37 frame_number := ?,
38 sub_type := ?,
39 antenna_nr := ?,
40 sub_slot := ?,
41 res := ?
42 }
43
44 template GsmtapHeader t_GsmtapHeaderUm(template GsmtapChannel ch) modifies t_GsmtapHeader := {
45 msg_type := GSMTAP_TYPE_UM,
46 sub_type := ch
47 }
48
49
50 template GsmtapMessage t_bcch := {
51 header := t_GsmtapHeaderUm(GSMTAP_CHANNEL_BCCH),
52 payload := ?
53 }
54
55 template GSMTAP_RecvFrom t_recvfrom(template GsmtapChannel ch) := {
56 connId := ?,
57 remName := ?,
58 remPort := ?,
59 locName := ?,
60 locPort := GSMTAP_PORT,
61 proto := {udp:={}},
62 userData := ?,
63 msg := { header := t_GsmtapHeaderUm(ch), payload := ?}
64 }
65
66 testcase TC_gsmtap() runs on dummy_CT {
67 map(self:GSMTAP, system:GSMTAP);
68 IPL4_GSMTAP_CtrlFunct.f_IPL4_listen(GSMTAP, "0.0.0.0", GSMTAP_PORT, {udp := {}});
69
70 var GSMTAP_RecvFrom rf;
71 GSMTAP.receive(t_recvfrom(GSMTAP_CHANNEL_BCCH)) -> value rf;
72 log("UDP Rx:", rf);
73 log("SI: ", dec_SystemInformation(rf.msg.payload));
74 }
75
Harald Welte56db5fd2017-07-14 18:25:59 +020076 control {
77 execute(TC_si1());
Harald Welteb622a3d2017-07-14 22:26:33 +020078 execute(TC_gsmtap());
Harald Welte56db5fd2017-07-14 18:25:59 +020079 }
80}