From ddeaa5769c7ba11aa3519186be0c701260132029 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Fri, 14 Jul 2017 18:58:07 +0200 Subject: Add GSMTAP header and message definition --- sysinfo/GSMTAP_Types.ttcn | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sysinfo/GSMTAP_Types.ttcn (limited to 'sysinfo/GSMTAP_Types.ttcn') diff --git a/sysinfo/GSMTAP_Types.ttcn b/sysinfo/GSMTAP_Types.ttcn new file mode 100644 index 00000000..9e7d9800 --- /dev/null +++ b/sysinfo/GSMTAP_Types.ttcn @@ -0,0 +1,75 @@ +module GSMTAP_Types { + import from Osmocom_Types all; + + const uint8_t GSMTAP_VERSION := 2; + + 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" }; -- cgit v1.2.3