diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-07-15 15:58:13 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-07-15 15:58:13 +0200 |
commit | a082a696cfbf859b0212486d85534505d9539de0 (patch) | |
tree | 867e4838a180007aaad7ab0fb6323688b9cda86a /sysinfo | |
parent | 9a907b37b58d938bb6c3a94af77ce975ffa1f635 (diff) |
Add enumerated for RR Message Type
Diffstat (limited to 'sysinfo')
-rw-r--r-- | sysinfo/GSM_SystemInformation.ttcn | 25 | ||||
-rw-r--r-- | sysinfo/GSM_Types.ttcn | 106 | ||||
-rw-r--r-- | sysinfo/Test.ttcn | 6 |
3 files changed, 119 insertions, 18 deletions
diff --git a/sysinfo/GSM_SystemInformation.ttcn b/sysinfo/GSM_SystemInformation.ttcn index 552463fa..8413ee37 100644 --- a/sysinfo/GSM_SystemInformation.ttcn +++ b/sysinfo/GSM_SystemInformation.ttcn @@ -6,6 +6,7 @@ module GSM_SystemInformation { import from General_Types all; + import from GSM_Types all; import from Osmocom_Types all; type record L2PseudoLength { @@ -32,10 +33,10 @@ module GSM_SystemInformation { L2PseudoLength l2_plen, uint4_t skip_indicator, uint4_t rr_protocol_discriminator, - OCT1 message_type + RrMessageType message_type } with { variant "" }; - template SystemInformationHeader t_SiHeader(OCT1 msg_type, uint6_t len) := { + template SystemInformationHeader t_SiHeader(RrMessageType msg_type, uint6_t len) := { l2_plen := t_L2Pseudolength(len), rr_protocol_discriminator := 6, message_type := msg_type @@ -234,16 +235,16 @@ module GSM_SystemInformation { SystemInformationType5bis si5bis, SystemInformationType5ter si5ter, SystemInformationType6 si6 - } with { variant "TAG(si1, header.message_type = '19'O; - si2, header.message_type = '1A'O; - si2bis, header.message_type = '02'O; - si2ter, header.message_type = '03'O; - si3, header.message_type = '1B'O; - si4, header.message_type = '1C'O; - si5, header.message_type = '1D'O; - si5bis, header.message_type = '05'O; - si5ter, header.message_type = '06'O; - si6, header.message_type = '1E'O; + } with { variant "TAG(si1, header.message_type = SYSTEM_INFORMATION_TYPE_1; + si2, header.message_type = SYSTEM_INFORMATION_TYPE_2; + si2bis, header.message_type = SYSTEM_INFORMATION_TYPE_2bis; + si2ter, header.message_type = SYSTEM_INFORMATION_TYPE_2ter; + si3, header.message_type = SYSTEM_INFORMATION_TYPE_3; + si4, header.message_type = SYSTEM_INFORMATION_TYPE_4; + si5, header.message_type = SYSTEM_INFORMATION_TYPE_5; + si5bis, header.message_type = SYSTEM_INFORMATION_TYPE_5bis; + si5ter, header.message_type = SYSTEM_INFORMATION_TYPE_5ter; + si6, header.message_type = SYSTEM_INFORMATION_TYPE_6; )" }; external function enc_SystemInformation(in SystemInformation si) return octetstring diff --git a/sysinfo/GSM_Types.ttcn b/sysinfo/GSM_Types.ttcn new file mode 100644 index 00000000..70051bd7 --- /dev/null +++ b/sysinfo/GSM_Types.ttcn @@ -0,0 +1,106 @@ +/* Encoding/Decoding routines for GSM System Information messages + * according to 3GPP TS 44.018 Version 12.3.0 Release 12 */ + +/* (C) 2017 by Harald Welte <laforge@gnumonks.org> */ + +module GSM_Types { + + import from General_Types all; + import from Osmocom_Types all; + + /* Table 10.4.1 of Section 10.4 / 3GPP TS 44.018 */ + type enumerated RrMessageType { + ADDITIONAL_ASSIGNMENT ('00111011'B), + IMMEDIATE_ASSIGNMENT ('00111111'B), + IMMEDIATE_ASSIGNMENT_EXTENDED ('00111001'B), + IMMEDIATE_ASSIGNMENT_REJECT ('00111010'B), + IMMEDIATE_PACKET_ASSIGNMENT ('01101001'B), + + CIPHERING_MODE_COMMAND ('00110101'B), + CIPHERING_MODE_COMPLETE ('00110010'B), + + CONFIGURATION_CHANGE_COMMAND ('00110000'B), + CONFIGURATION_CHANGE_ACK ('00110001'B), + CONFIGURATION_CHANGE_REJECT ('00110011'B), + + ASSIGNMENT_COMMAND ('00101110'B), + ASSIGNMENT_COMPLETE ('00101001'B), + ASSIGNMENT_FAILURE ('00101111'B), + HANDOVER_COMMAND ('00101011'B), + HANDOVER_COMPLETE ('00101100'B), + HANDOVER_FAILURE ('00101000'B), + PHYSICAL_INFORMATION ('00101101'B), + + CHANNEL_RELEASE ('00001101'B), + PARTIAL_RELEASE ('00001010'B), + PARTIAL_RELEASE_COMPLETE ('00001111'B), + + PAGING_REQUEST_TYPE_1 ('00100001'B), + PAGING_REQUEST_TYPE_2 ('00100010'B), + PAGING_REQUEST_TYPE_3 ('00100100'B), + PAGING_RESPONSE ('00100111'B), + NOTIFICATION_NCH ('00100000'B), + NOTIFICATION_RESPOSNE ('00100110'B), + + SYSTEM_INFORMATION_TYPE_8 ('00011000'B), + SYSTEM_INFORMATION_TYPE_1 ('00011001'B), + SYSTEM_INFORMATION_TYPE_2 ('00011010'B), + SYSTEM_INFORMATION_TYPE_3 ('00011011'B), + SYSTEM_INFORMATION_TYPE_4 ('00011100'B), + SYSTEM_INFORMATION_TYPE_5 ('00011101'B), + SYSTEM_INFORMATION_TYPE_6 ('00011110'B), + SYSTEM_INFORMATION_TYPE_7 ('00011111'B), + SYSTEM_INFORMATION_TYPE_2bis ('00000010'B), + SYSTEM_INFORMATION_TYPE_2ter ('00000011'B), + SYSTEM_INFORMATION_TYPE_2quater ('00000111'B), + SYSTEM_INFORMATION_TYPE_5bis ('00000101'B), + SYSTEM_INFORMATION_TYPE_5ter ('00000110'B), + SYSTEM_INFORMATION_TYPE_9 ('00000100'B), + SYSTEM_INFORMATION_TYPE_13 ('00000000'B), + + SYSTEM_INFORMATION_TYPE_16 ('00111101'B), + SYSTEM_INFORMATION_TYPE_17 ('00111110'B), + + CHANNEL_MODE_MODIFY ('00010000'B), + RR_STATUS ('00010010'B), + CHANNEL_MODE_MODIFY_ACKNOWLEDGE ('00010111'B), + FREQUENCY_REDEFINITION ('00010100'B), + MEASUREMENT_REPORT ('00010101'B), + CLASSMARK_CHANGE ('00010110'B), + CLASSMARK_ENQUIRY ('00010011'B), + EXTENDED_MEASUREMENT_REPORT ('00110110'B), + EXTENDED_MEASUREMENT_ORDER ('00110111'B), + GPRS_SUSPENSION_REQUEST ('00110100'B), + //MBMS_ANNOUNCEMENT ('00010110'B), duplicate? + //SERVICE_INFORMATION ('00110110'B), duplicate? + + APPLICATION_INFORMATION ('00111000'B), + + SYSTEM_INFORMATION_TYPE_14 ('00000001'B), + SYSTEM_INFORMATION_TYPE_15 ('01000011'B), + SYSTEM_INFORMATION_TYPE_18 ('01000000'B), + SYSTEM_INFORMATION_TYPE_19 ('01000001'B), + SYSTEM_INFORMATION_TYPE_20 ('01000010'B), + SYSTEM_INFORMATION_TYPE_13alt ('01000100'B), + SYSTEM_INFORMATION_TYPE_2n ('01000101'B), + SYSTEM_INFORMATION_TYPE_21 ('01000110'B), + SYSTEM_INFORMATION_TYPE_22 ('01000111'B), + SYSTEM_INFORMATION_TYPE_23 ('01001111'B), + + DTM_ASSIGNMENT_FAILURE ('01001000'B), + DTM_REJECT ('01001001'B), + DTM_REQUEST ('01001010'B), + PACKET_ASSIGNMENT ('01001011'B), + DTM_ASSIGNMENT_COMMAND ('01001100'B), + DTM_INFORMATION ('01001101'B), + PACKET_INFORMATION ('01001110'B), + + UTRAN_CLASSMARK_CHANGE ('01100000'B), + CDMA2000_CLASSMARK_CHANGE ('01100010'B), + INTERSYS_TO_UTRAN_HO_CMD ('01100011'B), + INTERSYS_TO_CDMA2000_HO_CMD ('01100100'B), + GERAN_IU_MODE_CLASSMARK_CHG ('01100101'B), + INTERSYS_TO_EUTRAN_HO_CMD ('01100110'B) + } with { variant "FIELDLENGTH(8)" }; + +} with { encode "RAW"; variant "FIELDORDER(msb)" } diff --git a/sysinfo/Test.ttcn b/sysinfo/Test.ttcn index 5fa89fa2..c2ffa4de 100644 --- a/sysinfo/Test.ttcn +++ b/sysinfo/Test.ttcn @@ -16,12 +16,6 @@ module Test { }; 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)); |