aboutsummaryrefslogtreecommitdiffstats
path: root/sysinfo
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-07-19 19:57:26 +0200
committerHarald Welte <laforge@gnumonks.org>2017-07-19 19:57:26 +0200
commit3b8bdd63580a10b74c7556bd8fb6e2629e6b5734 (patch)
tree3938ad8f3c0887b654b4a5b856dcfe9fe328ef56 /sysinfo
parent599faa1d1882cc35114c88727714e51a6a1bad95 (diff)
Introduce 'library' directory for modules shared by multiple test cases
Diffstat (limited to 'sysinfo')
-rw-r--r--sysinfo/GSMTAP_PortType.ttcn76
-rw-r--r--sysinfo/GSMTAP_Types.ttcn77
-rw-r--r--sysinfo/GSM_SystemInformation.ttcn209
-rw-r--r--sysinfo/GSM_Types.ttcn587
-rw-r--r--sysinfo/IPL4_GSMTAP_CtrlFunct.ttcn44
-rw-r--r--sysinfo/IPL4_GSMTAP_CtrlFunctDef.cc56
-rw-r--r--sysinfo/Osmocom_Types.ttcn29
-rwxr-xr-xsysinfo/gen_links.sh5
8 files changed, 5 insertions, 1078 deletions
diff --git a/sysinfo/GSMTAP_PortType.ttcn b/sysinfo/GSMTAP_PortType.ttcn
deleted file mode 100644
index 69074df5..00000000
--- a/sysinfo/GSMTAP_PortType.ttcn
+++ /dev/null
@@ -1,76 +0,0 @@
-/* dual-faced port that wraps an IPL4asp port and encodes/decodes GSMTAP */
-module GSMTAP_PortType {
- import from GSMTAP_Types all;
- import from IPL4asp_PortType all;
- import from IPL4asp_Types all;
-
- /* just like ASP_ReacFrom but with decoded GsmtapMessage */
- type record GSMTAP_RecvFrom {
- ConnectionId connId,
- HostName remName,
- PortNumber remPort,
- HostName locName,
- PortNumber locPort,
- ProtoTuple proto,
- UserData userData,
- GsmtapMessage msg
- }
-
- /* just like ASP_Send but with decoded GsmtapMessage */
- type record GSMTAP_Send {
- ConnectionId connId,
- ProtoTuple proto,
- GsmtapMessage msg
- }
-
- /* just like ASP_SendTo but with decoded GsmtapMessage */
- type record GSMTAP_SendTo {
- ConnectionId connId,
- HostName remName,
- PortNumber remPort,
- ProtoTuple proto,
- GsmtapMessage msg
- }
-
- /* Convert RecvFrom from ASP to GSMTAP decoded */
- private function IPL4_to_GSMTAP(in ASP_RecvFrom pin, out GSMTAP_RecvFrom pout) {
- pout.connId := pin.connId;
- pout.remName := pin.remName;
- pout.remPort := pin.remPort;
- pout.locName := pin.locName;
- pout.locPort := pin.locPort;
- pout.proto := pin.proto;
- pout.userData := pin.userData;
- pout.msg := dec_GsmtapMessage(pin.msg);
- } with { extension "prototype(fast)" }
-
- /* Convert SendTo from GSMTAP to ASP */
- private function GSMTAP_to_IPL4_SendTo(in GSMTAP_SendTo pin, out ASP_SendTo pout) {
- pout.connId := pin.connId;
- pout.remName := pin.remName;
- pout.remPort := pin.remPort;
- pout.proto := pin.proto;
- pout.msg := enc_GsmtapMessage(pin.msg);
- } with { extension "prototype(fast)" }
-
- /* Convert SendTo from GSMTAP to ASP */
- private function GSMTAP_to_IPL4_Send(in GSMTAP_Send pin, out ASP_Send pout) {
- pout.connId := pin.connId;
- pout.proto := pin.proto;
- pout.msg := enc_GsmtapMessage(pin.msg);
- } with { extension "prototype(fast)" }
-
- /* dual-faced port that converts from octetstring to decoded
- * GSMTAP and vice-versa */
- type port GSMTAP_PT message {
- out GSMTAP_Send
- out GSMTAP_SendTo
- in GSMTAP_RecvFrom
- in ASP_Event
- } with { extension "user IPL4asp_PT
- out(GSMTAP_Send -> ASP_Send: function(GSMTAP_to_IPL4_Send);
- GSMTAP_SendTo -> ASP_SendTo: function(GSMTAP_to_IPL4_SendTo))
- in(ASP_RecvFrom -> GSMTAP_RecvFrom: function(IPL4_to_GSMTAP);
- ASP_Event -> ASP_Event: simple)" }
-
-}
diff --git a/sysinfo/GSMTAP_Types.ttcn b/sysinfo/GSMTAP_Types.ttcn
deleted file mode 100644
index 32882844..00000000
--- a/sysinfo/GSMTAP_Types.ttcn
+++ /dev/null
@@ -1,77 +0,0 @@
-module GSMTAP_Types {
- import from Osmocom_Types all;
-
- const uint8_t GSMTAP_VERSION := 2;
-
- const uint16_t GSMTAP_PORT := 4729;
-
- type enumerated GsmtapMsgType {
- GSMTAP_TYPE_UM (1),
- GSMTAP_TYPE_ABIS (2),
- GSMTAP_TYPE_UM_BURST (3),
- GSMTAP_TYPE_SIM (4),
- GSMTAP_TYPE_TETRA_I1 (5),
- GSMTAP_TYPE_TETRA_I1_BURST (6),
- GSMTAP_TYPE_WMX_BURST (7),
- GSMTAP_TYPE_GB_LLC (8),
- GSMTAP_TYPE_GB_SNDCP (9),
- GSMTAP_TYPE_GMR1_UM (10),
- GSMTAP_TYPE_UMTS_RLC_MAC (11),
- GSMTAP_TYPE_UMTS_RRC (12),
- GSMTAP_TYPE_LTE_RRC (13),
- GSMTAP_TYPE_LTE_MAC (14),
- GSMTAP_TYPE_LTE_MAC_FRAMED (15),
- GSMTAP_TYPE_OSMOCORE_LOG (16),
- GSMTAP_TYPE_QC_DIAG (17)
- } with { variant "FIELDLENGTH(8)" };
-
- type enumerated GsmtapChannel {
- GSMTAP_CHANNEL_UNKNOWN (0),
- GSMTAP_CHANNEL_BCCH (1),
- GSMTAP_CHANNEL_CCCH (2),
- GSMTAP_CHANNEL_RACH (3),
- GSMTAP_CHANNEL_AGCH (4),
- GSMTAP_CHANNEL_PCH (5),
- GSMTAP_CHANNEL_SDCCH (6),
- GSMTAP_CHANNEL_SDCCH4 (7),
- GSMTAP_CHANNEL_SDCCH8 (8),
- GSMTAP_CHANNEL_TCH_F (9),
- GSMTAP_CHANNEL_TCH_H (10),
- GSMTAP_CHANNEL_PACCH (11),
- GSMTAP_CHANNEL_CBCH52 (12),
- GSMTAP_CHANNEL_PDCH (13),
- GSMTAP_CHANNEL_PTCCH (14),
- GSMTAP_CHANNEL_CBCH51 (15)
- } with { variant "FIELDLENGTH(8)" };
-
- type record GsmtapHeader {
- uint8_t version,
- uint8_t hdr_len,
- GsmtapMsgType msg_type,
- uint8_t timeslot,
- Arfcn arfcn,
- int8_t signal_dbm,
- int8_t snr_db,
- uint32_t frame_number,
- GsmtapChannel sub_type,
- uint8_t antenna_nr,
- uint8_t sub_slot,
- uint8_t res
- } with { variant (hdr_len) "LENGTHTO(version, hdr_len, msg_type, timeslot, arfcn, signal_dbm, snr_db, frame_number, sub_type, antenna_nr, sub_slot, res), UNIT(dword32)" }
-
- external function enc_GsmtapHeader(in GsmtapHeader si) return octetstring
- with { extension "prototype(convert) encode(RAW)" };
- external function dec_GsmtapHeader(in octetstring stream) return GsmtapHeader
- with { extension "prototype(convert) decode(RAW)" };
-
- type record GsmtapMessage {
- GsmtapHeader header,
- octetstring payload optional
- } with { variant "" };
-
- external function enc_GsmtapMessage(in GsmtapMessage si) return octetstring
- with { extension "prototype(convert) encode(RAW)" };
- external function dec_GsmtapMessage(in octetstring stream) return GsmtapMessage
- with { extension "prototype(convert) decode(RAW)" };
-
-} with { encode "RAW" };
diff --git a/sysinfo/GSM_SystemInformation.ttcn b/sysinfo/GSM_SystemInformation.ttcn
deleted file mode 100644
index 74852d43..00000000
--- a/sysinfo/GSM_SystemInformation.ttcn
+++ /dev/null
@@ -1,209 +0,0 @@
-/* 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_SystemInformation {
-
- import from General_Types all;
- import from GSM_Types all;
- import from Osmocom_Types all;
-
- type union ArfcnOrMaio {
- uint12_t arfcn,
- MaioHsn maio_hsn
- } with { variant "" };
-
- /* 24.008 10.5.1.1 */
- type uint16_t CellIdentity;
-
- /* 44.018 10.5.2.1b */
- type octetstring CellChannelDescription with { variant "FIELDLENGTH(16)" };
-
- /* 44.018 10.5.2.3 */
- type record CellOptions {
- boolean dn_ind,
- boolean pwrc,
- BIT2 dtx,
- BIT4 radio_link_timeout
- } with { variant "" };
-
- /* 44.018 10.5.2.3a */
- type record CellOptionsSacch {
- BIT1 dtx_ext,
- boolean pwrc,
- BIT2 dtx,
- BIT4 radio_link_timeout
- } with { variant "" };
-
- /* 44.018 10.5.2.4 */
- type record CellSelectionParameters {
- uint3_t cell_resel_hyst,
- uint5_t ms_txpwr_max_cch,
- boolean acs,
- boolean neci,
- uint6_t rxlev_access_min
- } with { variant "" };
-
- /* 44.018 10.5.2.11 */
- type record ControlChannelDescription {
- boolean mscrr,
- boolean att,
- uint3_t bs_ag_blks_res,
- uint3_t ccch_conf,
- boolean si22ind,
- uint2_t cbq3,
- BIT2 spare,
- uint3_t bs_pa_mfrms,
- uint8_t t3212
- } with { variant "" };
-
- template ControlChannelDescription t_ControlChannelDescription := { ?, ?, ?, ?, ?, ?, '00'B, ?, ? };
-
- /* 44.018 10.5.2.21 */
- type record MobileAllocationT {
- OCT1 iei,
- uint8_t len,
- bitstring ma
- } with { variant "" };
-
- /* 44.018 10.5.2.22 */
- type octetstring NeighbourCellDescription with { variant "FIELDLENGTH(16)" };
-
- /* 44.018 10.5.2.22a */
- type octetstring NeighbourCellDescription2 with { variant "FIELDLENGTH(16)" };
-
- type bitstring AccessControlClass with { variant "FIELDLENGTH(16), BYTEORDER(last)" };
-
- /* 44.018 10.5.2.29 */
- type record RachControlParameters {
- BIT2 max_retrans,
- BIT4 tx_integer,
- boolean cell_barr_access,
- boolean re,
- AccessControlClass ac
- } with { variant (ac) "FIELDLENGTH(16)" };
-
- /* 44.018 10.5.2.32 */
- type RestOctets Si1RestOctets with { variant "FIELDLENGTH(1)" };
- type RestOctets Si3RestOctets with { variant "FIELDLENGTH(4)" };
-
- /* 44.018 9.1.31 */
- type record SystemInformationType1 {
- CellChannelDescription cell_chan_desc,
- RachControlParameters rach_control,
- Si1RestOctets rest_octets
- } with { variant "" };
-
- /* 44.018 9.1.32 */
- type record SystemInformationType2 {
- NeighbourCellDescription bcch_freq_list,
- BIT8 ncc_permitted,
- RachControlParameters rach_control
- } with { variant "" };
-
- /* 44.018 9.1.33 */
- type record SystemInformationType2bis {
- NeighbourCellDescription extd_bcch_freq_list,
- RachControlParameters rach_control,
- OCT1 rest_octets
- } with { variant "" };
-
- /* 44.018 9.1.34 */
- type record SystemInformationType2ter {
- NeighbourCellDescription2 extd_bcch_freq_list,
- OCT4 rest_octets
- } with { variant "" };
-
- /* 44.018 9.1.35 */
- type record SystemInformationType3 {
- CellIdentity cell_id,
- LocationAreaIdentification lai,
- ControlChannelDescription ctrl_chan_desc,
- CellOptions cell_options,
- CellSelectionParameters cell_sel_par,
- RachControlParameters rach_control,
- Si3RestOctets rest_octets
- } with { variant "" };
-
- template SystemInformationType3 t_SI3 := {
- cell_id := ?,
- lai := ?,
- ctrl_chan_desc := t_ControlChannelDescription,
- cell_options := ?,
- cell_sel_par := ?,
- rach_control := ?,
- rest_octets := ?
- };
-
-
- /* 44.018 9.1.36 */
- type record SystemInformationType4 {
- LocationAreaIdentification lai,
- CellSelectionParameters cell_sel_par,
- RachControlParameters rach_control,
- ChannelDescriptionTV cbch_chan_desc optional,
- MobileAllocationT cbch_mobile_alloc optional,
- RestOctets rest_octets
- } with { variant "TAG(cbch_chan_desc, iei = '64'O; cbch_mobile_alloc, iei = '72'O)" };
-
- /* 44.018 9.1.37 */
- type record SystemInformationType5 {
- NeighbourCellDescription bcch_freq_list
- } with { variant "" };
-
- /* 44.018 9.1.38 */
- type record SystemInformationType5bis {
- NeighbourCellDescription extd_bcch_freq_list
- } with { variant "" };
-
- /* 44.018 9.1.39 */
- type record SystemInformationType5ter {
- NeighbourCellDescription2 extd_bcch_freq_list
- } with { variant "" };
-
- /* 44.018 9.1.40 */
- type record SystemInformationType6 {
- CellIdentity cell_id,
- LocationAreaIdentification lai,
- CellOptionsSacch cell_options,
- BIT8 ncc_permitted,
- OCT7 rest_octets
- } with { variant "" };
-
- type union SystemInformationUnion {
- SystemInformationType1 si1,
- SystemInformationType2 si2,
- SystemInformationType2bis si2bis,
- SystemInformationType2ter si2ter,
- SystemInformationType3 si3,
- SystemInformationType4 si4,
- SystemInformationType5 si5,
- SystemInformationType5bis si5bis,
- SystemInformationType5ter si5ter,
- SystemInformationType6 si6,
- octetstring other
- } with { variant "" };
-
- type record SystemInformation {
- RrHeader header,
- SystemInformationUnion payload
- } with { variant (payload) "CROSSTAG(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;
- other, OTHERWISE;
- )" };
-
- external function enc_SystemInformation(in SystemInformation si) return octetstring
- with { extension "prototype(convert) encode(RAW)" };
- external function dec_SystemInformation(in octetstring stream) return SystemInformation
- with { extension "prototype(convert) decode(RAW)" };
-
-} with { encode "RAW"; variant "FIELDORDER(msb)" }
diff --git a/sysinfo/GSM_Types.ttcn b/sysinfo/GSM_Types.ttcn
deleted file mode 100644
index c2051403..00000000
--- a/sysinfo/GSM_Types.ttcn
+++ /dev/null
@@ -1,587 +0,0 @@
-/* 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;
-
- type integer GsmArfcn (0..1023);
- type integer UmtsArfcn (0..16383);
- type integer UmtsScramblingCode (0..511);
- const integer GsmMaxFrameNumber := 26*51*2048;
- type integer GsmFrameNumber (0..GsmMaxFrameNumber);
- type integer GsmRxLev (0..63);
- type integer GsmTsc (0..7) with { variant "FIELDLENGTH(8)" };
- type uint32_t GsmTmsi;
-
- /* 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)" };
-
- type octetstring RestOctets with { variant "PADDING(yes), PADDING_PATTERN('00101011'B)" };
- type hexstring GsmBcdString with { variant "HEXORDER(low)" };
- type GsmBcdString BcdMccMnc with { variant "FIELDLENGTH(6)" };
-
- type record L2PseudoLength {
- uint6_t l2_plen,
- BIT2 zero_one
- } with { variant "" };
-
- template L2PseudoLength t_L2Pseudolength(template uint6_t len) := {
- l2_plen := len,
- zero_one := '01'B
- };
-
- type record RrHeader {
- L2PseudoLength l2_plen,
- uint4_t skip_indicator,
- uint4_t rr_protocol_discriminator,
- RrMessageType message_type
- } with { variant "" };
-
- template RrHeader t_RrHeader(RrMessageType msg_type, template uint6_t len) := {
- l2_plen := t_L2Pseudolength(len),
- skip_indicator := 0,
- rr_protocol_discriminator := 6,
- message_type := msg_type
- };
-
- type record RrL3Header {
- uint4_t skip_indicator,
- uint4_t rr_protocol_discriminator,
- RrMessageType message_type
- } with { variant "" };
-
- type record MaioHsn {
- } with { variant "" };
-
- /* TS 24.008 10.5.1.2 */
- type uint4_t CipheringKeySeqNr (0..7);
-
- /* 24.008 10.5.1.3 */
- type record LocationAreaIdentification {
- BcdMccMnc mcc_mnc,
- uint16_t lac
- } with { variant "" };
-
- /* TS 24.008 10.5.1.4 */
- type enumerated MobileIdentityType {
- MI_TYPE_NONE (0),
- MI_TYPE_IMSI,
- MI_TYPE_IMEI,
- MI_TYPE_IMEISV,
- MI_TYPE_TMSI,
- MI_TYPE_TMGI
- } with { variant "FIELDLENGTH(3)" };
-
- type record MobileIdentityBCD {
- MobileIdentityType mi_type (MI_TYPE_IMSI, MI_TYPE_IMEI, MI_TYPE_IMEISV),
- boolean odd,
- hexstring digits
- } with { variant "" };
-
- type record MobileIdentityTMSI {
- BIT4 pad ('1111'B),
- boolean odd (false),
- MobileIdentityType mi_type (MI_TYPE_TMSI),
- GsmTmsi tmsi
- } with { variant "" };
-
- type record MobileIdentityNone {
- BIT4 pad ('1111'B),
- boolean odd (false),
- MobileIdentityType mi_type (MI_TYPE_NONE)
- } with { variant "" };
-
- type union MobileIdentity {
- MobileIdentityBCD bcd,
- MobileIdentityTMSI tmsi,
- MobileIdentityNone unused
- } with { variant "TAG(bcd, mi_type = MI_TYPE_IMSI;
- bcd, mi_type = MI_TYPE_IMEI;
- bcd, mi_type = MI_TYPE_IMEISV;
- tmsi, mi_type = MI_TYPE_TMSI;
- unused, mi_type = MI_TYPE_NONE)" };
-
- type record MobileIdentityLV {
- uint8_t len,
- MobileIdentity mi
- } with { variant (len) "LENGTHTO(mi)" };
-
- type record MobileIdentityTLV {
- uint8_t tag,
- uint8_t len,
- MobileIdentity mi
- } with { variant (len) "LENGTHTO(mi)" };
-
- /* TS 24.008 10.5.1.5 */
- type record MsClassmark1 {
- BIT1 spare,
- uint2_t rev_level,
- boolean es_ind,
- boolean a51,
- uint3_t rf_pwr_cap
- } with { variant "" };
-
- /* TS 24.008 10.5.1.6 */
- type record MsClassmark2 {
- BIT1 spare,
- uint2_t rev_level,
- boolean es_ind,
- boolean a51,
- uint3_t rf_pwr_cap,
- BIT1 spare1,
- boolean ps_cap,
- uint2_t ss_screen_ind,
- boolean sm_cap,
- boolean vbs,
- boolean vgcs,
- boolean fc,
- boolean cm3,
- BIT1 spare2,
- boolean lcsva_cap,
- boolean ucs2,
- boolean solsa,
- boolean cmsp,
- boolean a53,
- boolean a52
- } with { variant "" };
- type record MsClassmark2LV {
- uint8_t len,
- MsClassmark2 cm2
- } with { variant (len) "LENGTHTO(cm2)" };
-
-
- /* 44.018 10.5.2.5 */
- type record ChannelDescription {
- RslChannelNr chan_nr,
- uint3_t tsc,
- boolean h,
- uint12_t arfcn optional,
- MaioHsn maio_hsn optional
- } with { variant (arfcn) "PRESENCE(h = false)"
- variant (maio_hsn) "PRESENCE(h = true)" };
-
- type record ChannelDescriptionTV {
- OCT1 iei,
- ChannelDescription v
- } with { variant "" };
-
- /* 10.5.2.8 */
- type enumerated ChannelNeeded {
- CHAN_NEED_ANY (0),
- CHAN_NEED_SDCCH (1),
- CHAN_NEED_TCH_F (2),
- CHAN_NEED_TCH_H (3)
- } with { variant "FIELDLENGTH(2)" };
- type record ChannelNeeded12 {
- ChannelNeeded second,
- ChannelNeeded first
- } with { variant "" };
-
- /* 10.5.2.21 */
- type record MobileAllocation {
- uint8_t len,
- bitstring ma
- } with { variant (len) "LENGTHTO(ma)" };
-
- /* 10.5.2.25a */
- type OCT3 PacketChannelDescription;
-
- /* 10.5.2.25b */
- type record DedicatedModeOrTbf {
- BIT1 spare,
- boolean tma,
- boolean downlink,
- boolean tbf
- } with { variant "" };
-
- /* 10.5.2.26 */
- type enumerated PageMode {
- PAGE_MODE_NORMAL,
- PAGE_MODE_EXTENDED,
- PAGE_MODE_REORGANIZATION,
- PAGE_MODE_SAME_AS_BEFORE
- } with { variant "FIELDLENGTH(4)" };
-
- /* 10.5.2.30 */
- type record RequestReference {
- bitstring ra length(8),
- uint5_t t1p,
- uint6_t t3,
- uint5_t t2
- } with { variant "" };
-
- template RequestReference t_RequestReference(template bitstring ra, template uint5_t t1p, template uint6_t t3, template uint5_t t2) := {
- ra := ra,
- t1p := t1p,
- t3 := t3,
- t2 := t2
- }
-
- /* compute the expected request reference for given RA + FN */
- function f_compute_ReqRef(uint8_t ra, GsmFrameNumber fn) return RequestReference {
- var RequestReference req_ref := { ra := int2bit(ra, 8) };
- req_ref.t1p := (fn / 1326) mod 32;
- req_ref.t2 := fn mod 26;
- req_ref.t3 := fn mod 51;
- return req_ref
- }
-
- /* 10.5.2.40 */
- type integer TimingAdvance (0..219);
-
- /* 10.5.2.43 */
- type uint8_t WaitIndication;
-
- /* 10.5.2.76 */
- type record FeatureIndicator {
- BIT2 spare,
- boolean cs_ir,
- boolean ps_ir
- } with { variant "" };
-
-
- /* 9.1.18 */
- type record ImmediateAssignment {
- DedicatedModeOrTbf ded_or_tbf,
- PageMode page_mode,
- ChannelDescription chan_desc optional,
- PacketChannelDescription pkt_chan_desc optional,
- RequestReference req_ref,
- TimingAdvance timing_advance,
- MobileAllocation mobile_allocation
- } with { variant (chan_desc) "PRESENCE(ded_or_tbf.tbf = false)"
- variant (pkt_chan_desc) "PRESENCE(ded_or_tbf.tbf = true)" };
-
- /* 9.1.20 */
- type record ReqRefWaitInd {
- RequestReference req_ref,
- WaitIndication wait_ind
- } with { variant "" };
- type record length(4) of ReqRefWaitInd ReqRefWaitInd4;
- type record ImmediateAssignmentReject {
- FeatureIndicator feature_ind,
- PageMode page_mode,
- ReqRefWaitInd4 payload
- } with { variant "" };
-
- /* 9.1.22 */
- type record PagingRequestType1 {
- ChannelNeeded12 chan_needed,
- PageMode page_mode,
- MobileIdentityLV mi1,
- MobileIdentityTLV mi2 optional,
- RestOctets rest_octets
- } with { variant "TAG(mi2, tag = 23)" };
-
- /* 9.1.23 */
- type record PagingRequestType2 {
- ChannelNeeded12 chan_needed,
- PageMode page_mode,
- GsmTmsi mi1,
- GsmTmsi mi2,
- MobileIdentityTLV mi3 optional,
- RestOctets rest_octets
- } with { variant "TAG(mi3, tag = 23)" };
-
- /* 9.1.24 */
- type record length(4) of GsmTmsi GsmTmsi4;
- type record PagingRequestType3 {
- ChannelNeeded12 chan_needed,
- PageMode page_mode,
- GsmTmsi4 mi,
- RestOctets rest_octets
- } with { variant "" };
-
-
- type union RrUnion {
-/*
- SystemInformationType1 si1,
- SystemInformationType2 si2,
- SystemInformationType2bis si2bis,
- SystemInformationType2ter si2ter,
- SystemInformationType3 si3,
- SystemInformationType4 si4,
- SystemInformationType5 si5,
- SystemInformationType5bis si5bis,
- SystemInformationType5ter si5ter,
- SystemInformationType6 si6,
-*/
- ImmediateAssignment imm_ass,
- ImmediateAssignmentReject imm_ass_rej,
- PagingRequestType1 pag_req_1,
- PagingRequestType2 pag_req_2,
- PagingRequestType3 pag_req_3,
- octetstring other
- } with { variant "" };
-
- /* Special RR Message on BCCH / CCCH Dowlink */
-
- type record GsmRrMessage {
- RrHeader header,
- RrUnion payload
- } with { variant (payload) "CROSSTAG(
-/*
- 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;
-*/
- imm_ass, header.message_type = IMMEDIATE_ASSIGNMENT;
- imm_ass_rej, header.message_type = IMMEDIATE_ASSIGNMENT_REJECT;
- pag_req_1, header.message_type = PAGING_REQUEST_TYPE_1;
- pag_req_2, header.message_type = PAGING_REQUEST_TYPE_2;
- pag_req_3, header.message_type = PAGING_REQUEST_TYPE_3;
- other, OTHERWISE;
- )" };
-
- external function enc_GsmRrMessage(in GsmRrMessage msg) return octetstring
- with { extension "prototype(convert) encode(RAW)" };
- external function dec_GsmRrMessage(in octetstring stream) return GsmRrMessage
- with { extension "prototype(convert) decode(RAW)" };
-
- /* Normal L3 Message on Dedicated Channel */
-
- /* 9.1.25 Paging Response */
- type record PagingResponse {
- uint4_t spare_half_octet,
- CipheringKeySeqNr cksn,
- MsClassmark2LV cm2,
- MobileIdentityLV mi,
- uint8_t addl_upd_par optional
- } with { variant "" };
-
- type union RrL3Union {
- PagingResponse paging_response,
- octetstring other
- };
-
- type record GsmRrL3Message {
- RrL3Header header,
- RrL3Union payload
- } with { variant (payload) "CROSSTAG(
- paging_response, header.message_type = PAGING_RESPONSE;
-
- other, OTHERWISE;
- )" }
-
- /* TS 48.058 9.3.1 Channel Number IE */
- type enumerated RslChanNr0 {
- RSL_CHAN_NR_INVALID ('00'H),
- RSL_CHAN_NR_Bm_ACCH ('01'H),
- RSL_CHAN_NR_BCCH ('10'H),
- RSL_CHAN_NR_RACH ('11'H),
- RSL_CHAN_NR_PCH_AGCH ('12'H)
- } with { variant "FIELDLENGTH(5)" };
-
- type record RslChanNr2 {
- BIT4 tag ('0001'B),
- uint1_t sub_chan
- } with { variant "FIELDLENGTH(5)" };
-
- type record RslChanNr4 {
- BIT3 tag ('001'B),
- uint2_t sub_chan
- } with { variant "FIELDLENGTH(5)" };
-
- type record RslChanNr8 {
- BIT2 tag ('01'B),
- uint3_t sub_chan
- } with { variant "FIELDLENGTH(5)" };
-
- type union RslChanNrU {
- RslChanNr0 ch0,
- RslChanNr2 lm,
- RslChanNr4 sdcch4,
- RslChanNr8 sdcch8
- } with {
- variant "TAG(lm, tag = '0001'B;
- sdcch4, tag = '001'B;
- sdcch8, tag = '01'B;
- ch0, OTHERWISE)"
- variant "FIELDLENGTH(5)"
- };
-
- type record RslChannelNr {
- RslChanNrU u,
- uint3_t tn
- } with { variant "FIELDLENGTH(8)" };
-
- template RslChannelNr t_RslChanNr0(template uint3_t tn, template RslChanNr0 cht) := {
- u := { ch0 := cht },
- tn := tn
- }
-
- template RslChannelNr t_RslChanNr_RACH(template uint3_t tn) := t_RslChanNr0(tn, RSL_CHAN_NR_RACH);
- template RslChannelNr t_RslChanNr_BCCH(template uint3_t tn) := t_RslChanNr0(tn, RSL_CHAN_NR_BCCH);
- template RslChannelNr t_RslChanNr_PCH_AGCH(template uint3_t tn) := t_RslChanNr0(tn, RSL_CHAN_NR_PCH_AGCH);
- template RslChannelNr t_RslChanNr_Bm(template uint3_t tn) := t_RslChanNr0(tn, RSL_CHAN_NR_Bm_ACCH);
- template RslChannelNr t_RslChanNr_Lm(template uint3_t tn, uint1_t sub_slot) := {
- u := { lm := { tag := '0001'B, sub_chan := sub_slot } },
- tn := tn
- }
- template RslChannelNr t_RslChanNr_SDCCH4(template uint3_t tn, template uint2_t sub_slot) := {
- u := { sdcch4 := { tag := '001'B, sub_chan := sub_slot } },
- tn := tn
- }
- template RslChannelNr t_RslChanNr_SDCCH8(template uint3_t tn, template uint3_t sub_slot) := {
- u := { sdcch8 := { tag := '01'B, sub_chan := sub_slot } },
- tn := tn
- }
-
- /* TS 48.058 9.3.2 Link ID */
- type enumerated RslLinkIdC {
- FACCH_SDCCH (0),
- SACCH (1)
- } with { variant "FIELDLENGTH(2)" };
-
- type enumerated RslSapi0Prio {
- SAPI0_PRIO_NORMAL (0),
- SAPI0_PRIO_HIGH (1),
- SAPI0_PRIO_LOW (2)
- } with { variant "FIELDLENGTH(2)" };
-
- type uint3_t GsmSapi;
-
- type record RslLinkId {
- RslLinkIdC c,
- boolean na,
- RslSapi0Prio prio,
- GsmSapi sapi
- } with { variant "" };
-
- template RslLinkId tr_RslLinkId := {
- c := ?,
- na := ?,
- prio := ?,
- sapi := ?
- };
-
- template RslLinkId tr_RslLinkID_DCCH(template GsmSapi sapi) modifies tr_RslLinkId := {
- c := FACCH_SDCCH,
- na := false,
- sapi := sapi
- };
-
- template RslLinkId tr_RslLinkID_SACCH(template GsmSapi sapi) modifies tr_RslLinkId := {
- c := SACCH,
- na := false,
- sapi := sapi
- };
-
- template RslLinkId ts_RslLinkID_DCCH(GsmSapi sapi) := {
- c := FACCH_SDCCH,
- na := false,
- prio := SAPI0_PRIO_NORMAL,
- sapi := sapi
- };
-
- template RslLinkId ts_RslLinkID_SACCH(GsmSapi sapi) := {
- c := SACCH,
- na := false,
- prio := SAPI0_PRIO_NORMAL,
- sapi := sapi
- };
-
-} with { encode "RAW"; variant "FIELDORDER(msb)" }
diff --git a/sysinfo/IPL4_GSMTAP_CtrlFunct.ttcn b/sysinfo/IPL4_GSMTAP_CtrlFunct.ttcn
deleted file mode 100644
index 8bdb5921..00000000
--- a/sysinfo/IPL4_GSMTAP_CtrlFunct.ttcn
+++ /dev/null
@@ -1,44 +0,0 @@
-module IPL4_GSMTAP_CtrlFunct {
-
- import from GSMTAP_PortType all;
- import from IPL4asp_Types all;
-
- external function f_IPL4_listen(
- inout GSMTAP_PT portRef,
- in HostName locName,
- in PortNumber locPort,
- in ProtoTuple proto,
- in OptionList options := {}
- ) return Result;
-
- external function f_IPL4_connect(
- inout GSMTAP_PT portRef,
- in HostName remName,
- in PortNumber remPort,
- in HostName locName,
- in PortNumber locPort,
- in ConnectionId connId,
- in ProtoTuple proto,
- in OptionList options := {}
- ) return Result;
-
- external function f_IPL4_close(
- inout GSMTAP_PT portRef,
- in ConnectionId id,
- in ProtoTuple proto := { unspecified := {} }
- ) return Result;
-
- external function f_IPL4_setUserData(
- inout GSMTAP_PT portRef,
- in ConnectionId id,
- in UserData userData
- ) return Result;
-
- external function f_IPL4_getUserData(
- inout GSMTAP_PT portRef,
- in ConnectionId id,
- out UserData userData
- ) return Result;
-
-}
-
diff --git a/sysinfo/IPL4_GSMTAP_CtrlFunctDef.cc b/sysinfo/IPL4_GSMTAP_CtrlFunctDef.cc
deleted file mode 100644
index 4c05fe8a..00000000
--- a/sysinfo/IPL4_GSMTAP_CtrlFunctDef.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-#include "IPL4asp_PortType.hh"
-#include "GSMTAP_PortType.hh"
-#include "IPL4asp_PT.hh"
-
-namespace IPL4__GSMTAP__CtrlFunct {
-
- IPL4asp__Types::Result f__IPL4__listen(
- GSMTAP__PortType::GSMTAP__PT& portRef,
- const IPL4asp__Types::HostName& locName,
- const IPL4asp__Types::PortNumber& locPort,
- const IPL4asp__Types::ProtoTuple& proto,
- const IPL4asp__Types::OptionList& options)
- {
- return f__IPL4__PROVIDER__listen(portRef, locName, locPort, proto, options);
- }
-
- IPL4asp__Types::Result f__IPL4__connect(
- GSMTAP__PortType::GSMTAP__PT& portRef,
- const IPL4asp__Types::HostName& remName,
- const IPL4asp__Types::PortNumber& remPort,
- const IPL4asp__Types::HostName& locName,
- const IPL4asp__Types::PortNumber& locPort,
- const IPL4asp__Types::ConnectionId& connId,
- const IPL4asp__Types::ProtoTuple& proto,
- const IPL4asp__Types::OptionList& options)
- {
- return f__IPL4__PROVIDER__connect(portRef, remName, remPort,
- locName, locPort, connId, proto, options);
- }
-
- IPL4asp__Types::Result f__IPL4__close(
- GSMTAP__PortType::GSMTAP__PT& portRef,
- const IPL4asp__Types::ConnectionId& connId,
- const IPL4asp__Types::ProtoTuple& proto)
- {
- return f__IPL4__PROVIDER__close(portRef, connId, proto);
- }
-
- IPL4asp__Types::Result f__IPL4__setUserData(
- GSMTAP__PortType::GSMTAP__PT& portRef,
- const IPL4asp__Types::ConnectionId& connId,
- const IPL4asp__Types::UserData& userData)
- {
- return f__IPL4__PROVIDER__setUserData(portRef, connId, userData);
- }
-
- IPL4asp__Types::Result f__IPL4__getUserData(
- GSMTAP__PortType::GSMTAP__PT& portRef,
- const IPL4asp__Types::ConnectionId& connId,
- IPL4asp__Types::UserData& userData)
- {
- return f__IPL4__PROVIDER__getUserData(portRef, connId, userData);
- }
-
-}
-
diff --git a/sysinfo/Osmocom_Types.ttcn b/sysinfo/Osmocom_Types.ttcn
deleted file mode 100644
index 0c26f02a..00000000
--- a/sysinfo/Osmocom_Types.ttcn
+++ /dev/null
@@ -1,29 +0,0 @@
-module Osmocom_Types {
- type integer uint8_t (0..255) with { variant "unsigned 8 bit" };
- type integer uint16_t (0..65535) with { variant "unsigned 16 bit" };
- type integer uint32_t (0..4294967295) with { variant "unsigned 32 bit" };
-
- type integer int8_t (-128..127) with { variant "8 bit" };
- type integer int16_t (-32768..32767) with { variant "16 bit" };
-
- type integer uint1_t (0..1) with { variant "unsigned 1 bit" };
- type integer uint2_t (0..3) with { variant "unsigned 2 bit" };
- type integer uint3_t (0..7) with { variant "unsigned 3 bit" };
- type integer uint4_t (0..15) with { variant "unsigned 4 bit" };
- type integer uint5_t (0..31) with { variant "unsigned 5 bit" };
- type integer uint6_t (0..63) with { variant "unsigned 6 bit" };
- type integer uint7_t (0..127) with { variant "unsigned 7 bit" };
- type integer uint9_t (0..511) with { variant "unsigned 9 bit" };
- type integer uint10_t (0..1023) with { variant "unsigned 10 bit" };
- type integer uint11_t (0..2047) with { variant "unsigned 11 bit" };
- type integer uint12_t (0..4095) with { variant "unsigned 12 bit" };
- type integer uint13_t (0..8191) with { variant "unsigned 13 bit" };
- type integer uint14_t (0..16383) with { variant "unsigned 14 bit" };
- type integer uint15_t (0..32767) with { variant "unsigned 15 bit" };
-
- type record Arfcn {
- boolean pcs,
- uint15_t arfcn
- } with { variant "" };
-
-} with { encode "RAW"; variant "FIELDORDER(msb)" }
diff --git a/sysinfo/gen_links.sh b/sysinfo/gen_links.sh
index 91fa37b9..b719b061 100755
--- a/sysinfo/gen_links.sh
+++ b/sysinfo/gen_links.sh
@@ -26,3 +26,8 @@ gen_links $DIR $FILES
DIR=$BASEDIR/titan.TestPorts.TELNETasp/src
FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn"
gen_links $DIR $FILES
+
+DIR=../library
+FILES="GSMTAP_PortType.ttcn GSMTAP_Types.ttcn GSM_SystemInformation.ttcn GSM_Types.ttcn IPL4_GSMTAP_CtrlFunct.ttcn IPL4_GSMTAP_CtrlFunctDef.cc Osmocom_Types.ttcn General_Types.ttcn"
+gen_links $DIR $FILES
+