aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/gsm/protocol
AgeCommit message (Collapse)AuthorFilesLines
2024-02-06comment: gsm_04_08.h: add a spec hintNeels Hofmeyr1-1/+2
Change-Id: I2a606047db88ea47317397a790611048dead6403
2024-01-25gsm: add more definitions from Table 10.5.112/3GPP TS 24.008Vadim Yanitskiy1-0/+22
Change-Id: I25e40853ace09fa98b614f3893eeba600be8fcdc Related: OS#4396
2024-01-20gsm_04_08_gprs.h: Introduce packed struct gsm48_pdp_addressPau Espin Pedrol1-1/+35
This can be used in several protocols, such as GTP, GSUP, etc. Related: OS#6091 Change-Id: I453ced42dd36df3a6ddb5db67093df5a22cad18c
2023-11-29Fix union abis_rsl_chan_nr and abis_rsl_link_idAndreas Eversberg1-2/+6
All bit fields in a union will overlap in memory, as all elements in a union do. To prevent the bit fields from overlapping, wrap them into a packed structure. Change-Id: I5ef5aa62be8310da4ebe9ea73ebbedcbcc2ba49c
2023-09-18gsm/protocol/gsm_04_11.h: add SMSC-address length limit definitionsMychaela N. Falconia1-0/+10
Change-Id: Iea5c29909c5be80f81dbbc2873656ff5cf590a5d
2023-09-12ASCI: Add definition for TALKER INDICATION and UPLINK RELEASEAndreas Eversberg1-0/+12
Change-Id: I5ab196d46cdee160e59ee4ecf72c79aa1b25815f
2023-09-12ASCI: Add BCC call state definitionsAndreas Eversberg1-2/+2
BCC and GCC share same call states, except for two states that have same value, but different state names and conditions. Related: OS#5364 Change-Id: I2180b43b940542565188f52c554c960858fe2a95
2023-09-12gsm_12_21.h: fix typo: NM_IPAC_F_CHANT_P{C->D}CHFVadim Yanitskiy1-1/+1
Change-Id: I35ee30978820f2038f562b7703ca886852a4f708 Fixes: a7d7cf28 "gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES"
2023-09-05gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURESVadim Yanitskiy1-0/+92
Change-Id: Ia4208e10d61843dd6ae77398f6624c918dc81ea4
2023-09-02gsm_12_21.h: Introduce packed structs for NM_ATT_IPACC_NS_CFG valuesPau Espin Pedrol1-0/+11
Change-Id: Ie477b0e6d79e6d408e0004fd60307afc5feaa3b6
2023-09-02gsm_12_21.h: Introduce packed structs for NM_ATT_IPACC_BSSGP_CFG valuesPau Espin Pedrol1-0/+15
Change-Id: Ibfd759cb8a252f801bb3a758ea7960072c96f254
2023-09-02gsm_12_21.h: Introduce packed structs for NM_ATT_IPACC_RLC_CFG{,_2,_3} valuesPau Espin Pedrol1-0/+30
Change-Id: I60e17dedd1fadce0f705616e3ed96cabb318bcec
2023-08-23Revert "rsl: Introduce new osmocom extension IE RSL_IE_OSMO_ABS_FRAME_NUMBER"Pau Espin Pedrol1-1/+0
This reverts commit 54b1b3be37ae863ddbdd2b9408ebdd98ac8470d8. osmo-bts is forwarding the msgbs as they come from lapdm to the RSL on the wire, which means we end up sending the osmocom-specific IEs on the wire, something which was not envisioned when adding this IE. Change-Id: Id9029ef378970322063478e9ce888daf335d6103 Related: OS#6142
2023-08-21rsl: Introduce new osmocom extension IE RSL_IE_OSMO_ABS_FRAME_NUMBERPau Espin Pedrol1-0/+1
This will be used in RSLms to provide Absolute Frame Number information of the primitive indications being sent to upper layers, so that it's possible to track GSM time in the upper layers. The existing RSL_IE_FRAME_NUMBER and RSL_IE_STARTNG_TIME cannot be used there, since those are 16bit fields containing Relative FN values. Related: OS#3626 Change-Id: Ia28caa24dd141b1162b6e11500d753353fe6500d
2023-07-25gsm_08_08: define GSM0808_SCT_EXT (separately)Vadim Yanitskiy1-0/+6
As per 3GPP TS 48.008, section 3.2.2.103, the "Codec Type" field may contain either a certain 3GPP Speech Codec Type directly (4 bit value), or the so called "Codec Extension" = 0xFh, in which case the real Codec Type follows in the next octet as "Extended Codec Type". CSD is such an example, the encoding is defined as follows: 8 7 6 5 4 3 2 1 +----+----+----+----+-------------------+ | -- | PI | PT | -- | 0xFh | +----+----+----+----+-------------------+ | Extended Codec Type (CSData) | +----+----+-----------------------------+ | R2 | R3 | | +----+----+-----------------------------+ CSData is coded with 0xFDh or '1111 1101' (0xfd). Let's have the "Codec Extension" value clearly defined in the header file, but intentionally separate from the other GSM0808_SCT_* values. Change-Id: Iafaa25070684d2ba400c75fa33e803651a5ce857 Related: OS#6110, OS#4393, OS#4394
2023-07-18gsm: Add missing IE definition for GMM Receive N-PDU Number listPau Espin Pedrol1-0/+1
Change-Id: Ifac09653141758af345efe2eb9cef25ebf4dcff9
2023-06-21Add VGCS UPLINK GRANT message structure to gsm_04_08.hAndreas Eversberg1-0/+7
Change-Id: I8a16ce4ddc7a36e0db2936227a910b4d53cddfca
2023-06-09ASCI: Add Notification/NCH message to gsm_04_08.hAndreas Eversberg1-0/+8
This message is (the only message) used on the NCH to notify the MS about all currently ongoing voice group/broadcast calls. Change-Id: Iff1555a2914ce0a1ead6ab883498adb2c33b135e
2023-06-09Fix short L3 header of SI 10 at gsm_04_08.hAndreas Eversberg1-3/+3
Change-Id: I1c3002716b08e31016cc6e623f8f8a413ef7916f
2023-06-09Add short L3 header to gsm_04_08.hAndreas Eversberg1-0/+17
Change-Id: I0eceb380e401e1f842edbaa92f4b4738703a031c
2023-06-09ASCI: Add message definition and encoding according to 3GPP TS 48.008Andreas Eversberg1-0/+3
Change-Id: Ib94c64136c31ce4af67c314a8550d93946cc844f
2023-06-02ASCI: Add 3GPP TS 44.068 and 44.069 protocol definitionsAndreas Eversberg2-0/+137
Change-Id: I3554cea47e714c8fca18c3e9c0e6e80695915a90
2023-05-22gsm_04_08_gprs: add IEI "GMM TMSI Based NRI Container"Neels Hofmeyr1-0/+1
OsmoHNBGW will need to obtain the NRI from GMM Attach Request and GMM RAU Request to implement CN pooling. Related: SYS#6412 Change-Id: Id661abfdb2c81a92c9046542bbc08d6ccd39f073
2023-05-22gsm_08_58.h: Add 'struct rsl_ie_nch_drx_info'Harald Welte1-0/+17
This adds the definition of 'struct rsl_ie_nch_drx_info' representing the bit-field of the 'NCH DRX Information IE' of A-bis RSL. Change-Id: I9586b5cb8514010d9358fcfc97c3d34741294522 Related: OS#5781
2023-05-22cosmetic: Fix spec reference in RSL header fileHarald Welte1-1/+1
Change-Id: I671ee927b49099f7c8cc1fbd5f8b19f94ba1af81
2023-04-25gsm_04_08_gprs.h: Add enum field for GMM 'P-TMSI type' IEPau Espin Pedrol1-0/+1
Change-Id: Ief4e03785f01f07c8d97b33bbb55c89a863baccc
2023-04-13gsm_04_08_gprs.h: Add missing GMM IEs for T3302 and T3346Pau Espin Pedrol1-0/+2
As specified in TS 24.008 9.4.4 "Attach reject" Change-Id: I2d36d76ee6fe8ed1a36e37a7d74fbbdc9c27c2c7
2023-03-28gsm: Add missing TS 24.008 SM layer IEsPau Espin Pedrol1-0/+9
Change-Id: Iec0dbf617c8d0f2c8c44156d936244cedda9b303
2023-03-23gsm_04_08: add more enum gsm48_chan_mode data valuesVadim Yanitskiy1-0/+19
From 3GPP TS 44.018 (version 15.4.0), table 10.5.2.6.1. Change-Id: Ia6b428e5b6aaecf151cbfa980b89eff6d0fe6006 Related: OS#1572
2023-03-23gsm_04_08: add more enum gsm48_chan_mode speech valuesVadim Yanitskiy1-1/+7
From 3GPP TS 44.018 (version 15.4.0), table 10.5.2.6.1. Change-Id: I6adda28698c0e479ef20f5d090c1f7f76a2ec97e Related: OS#1572
2023-03-23gsm_04_08: document/clarify enum gsm48_chan_mode valuesVadim Yanitskiy1-2/+17
The values are defined in 3GPP TS 44.018, section 10.5.2.6. Only the radio interface rates for CSD (GSM48_CMODE_DATA_*) are given, but the respective service rates can be found in 3GPP TS 45.003. Change-Id: I716027f73ab6f20037f6de16e4a3740811aa38a2 Related: OS#1572
2023-03-22Fix parsing of TLV_TYPE_SINGLE_TVPau Espin Pedrol1-5/+10
The decoding path of TLV_TYPE_SINGLE_TV is wrong, since it is not shifting right the tag before using it. On the other hand, the encoding path (tlv_encode_one) is doing that, so it is clear there's a bug. It seems that in order to workaround the bug some IEs in gsm_04_08.h (TS 24.008 and TS 44.018) were defined incorrectly (eg 0x80) while the spec clearly assigns eg. "8" to it, and makes sure no full byte IEI collides. Some other IEIs like GSM48_IE_GMM_CIPH_CKSN which are also of the same type were already correctly defined as 0x08. Change-Id: I799e35dc8d4d153fa63bf50563a5482cdf4de2d7
2023-03-08gsm_08_58: Document IPAC RTP CSD modes in at least a few wordsHarald Welte1-4/+4
Let's clarify what those modes mean Change-Id: I77fc7b24ccd387f54a7c7edad666737252af6bd9
2023-03-03gsm0808: make CSD enum values consistent with RSLOliver Smith1-20/+20
Use the same 32k0, 29k0, 14k4, … notation for GSM0808_DATA_RATE, as it is already used in RSL_CMOD_CSD. As GSM0808_DATA_RATE enumes were just added to libosmocore and aren't used yet, don't add backwards compatible defines. Related: OS#4393 Change-Id: Ia965cdd9f53af756e5ffaff9b8f389b5ad629969
2023-03-03rsl: RSL_CMOD_CSD_T: make enum values consistentOliver Smith1-7/+14
Use the 32k0, 29k0, 14k4, … notation instead of 32000, 29000, 14400 etc to make transparent data enums with non-transparent data enums where this notation is already used. Related: OS#4393 Change-Id: I7b7c8f175f349811b17a3db68a57577bd3f1d2df
2023-03-03rsl: put values for Channel Mode into enumsOliver Smith1-41/+49
Related: OS#4393 Change-Id: I25bfd02aa1428a35492b20376a31635a442e545f
2023-02-28add gsm0808_amr_modes_from_cfgNeels Hofmeyr1-0/+23
Provide the definitions from 3GPP TS 28.062, Table 7.11.3.1.3-2 as generally usable API. Likely users: - upcoming patch to improve conversion between S0-S15 and MultiRate config, I900fda192742fa8f6dd54e9131ef1704b14cc41a - osmo-msc to figure out conversion between SDP AMR mode-set and 3GPP TS 48.008 Permitted Speech S0-S15. - osmo-bsc to choose AMR modes for channel activation from cfg / permitted speech from MSC. Related: SYS#5066 Change-Id: Icef7dd626d3d4641c66b8dd87e2047fc0ab547d1
2023-02-20Move libosmogsm TS 44.060 declarations under include/osmocom/gsm/Pau Espin Pedrol2-0/+253
Currently there's a big mess where include dir osmocom/gprs/ is used by both libosmogsm and libosmogb. Most of the header files under osmocom/gprs/ are actually all the headers of libosmogb (there's no osmocom/gb/ dir). But a couple files are actually RLC/MAC (TS 44.060) related are are also stored in there. Those files have no relation/use in Gb, and are actually interused with GSM (eg System Information 13 Rest Octets). Hence, it makes sense to have the RLC/MAC related parts inside osmocom/gsm/ as they should be in libosmogsm (and they actually are, see gprs_rlc.h function implemented in src/gsm/gsm48_rest_octets.c). The fact that some libosmogsm headers were placed in osmocom/gprs instead of osmocom/gsm already created some issues, like libosmocore.spec.in putting "%_includedir/%name/osmocom/gprs/" under libosmogb, which is wrong. As a first step to fix the mess, we move the 2 RLC/MAC headers currently under osmocom/gprs/{gprs_rlc,protocol/gsm_04_60}.h under a single header gsm/protocol/gsm_44_060.h The two old headers are left existing for backward compatibility and now simply include the new libosmogsm header, plus a warning asking users to switch to the new header so we can eventually get rid of them. This means libosmogb depends on libosmogsm, which is fine and was already the case beforehand (libosmogb using functions like gsm48_encode_ra() and linking against it in src/gb/Makefile.am). Change-Id: I70cc21bf25a7081070738abacb409ed19094c3b2
2023-02-20Run struct_endianness.pyOliver Smith1-0/+1
Ensure there is no diff to prepare to run this in CI. Related: OS#5884 Change-Id: I194f3affeb969d485348c46a6dabbe5f8e47e780
2023-02-17Fix typo endianess -> endiannessOliver Smith12-85/+85
Rename contrib/struct_endianess.py to contrib/struct_endianness.py, and fix the typo everywhere. This is in preparation to call the script in CI on all repositories. Related: OS#5884 Change-Id: Idc4af9098ba1de26243464c772d6ea8be330646a
2023-02-13gsm0808_enc/dec_channel_type: support dataOliver Smith1-0/+55
Related: OS#4393 Change-Id: Ib7b75c9d86aace329decf20003b68de459021c64
2023-02-09gsm0808_chan_indicator: add SPEECH_CTM_TEXT_TELEPHONYOliver Smith1-0/+1
Add it, so a follow-up patch can use it in gsm0808_dec_channel_type where 3GPP TS 48.008 § 3.2.2.11 refers to "if octet 3 indicates speech or speech + CTM Text Telephony". Related: OS#4393 Change-Id: Iaf12202c89b68290c2121bc016d08b9200a7278a
2023-02-04Add SI10 supportMax1-0/+14
Add data structures and checks for System information Type 10. Related: OS#5783 Change-Id: I3a5da543f083f31e873c67b5ec1b5a439187d8f3
2023-01-31gsm_08_08.h: fix typo in GSM0808_DATA_FULL_PREFOliver Smith1-1/+2
Change-Id: I25f46bf3893bb68203414300587756cf2fdb04f7
2023-01-25SI: add RR short PD message typesMax1-0/+15
Related: OS#5783 Change-Id: Ifbd0aabe826298fa4715eb4eb2ff8363e765933d
2023-01-18Split include/Makefile.am content into subdirsPau Espin Pedrol1-0/+28
When someone is modifying a given library there's no need to be looking at a common file contains tons of lines from different libraries. Furthermore, this removes the need of "nobase" autofoo prefix, hence following the usual directive of having one Makefile per directory. Change-Id: I785891c2f89114bf8303c799094b637d3d25ac71
2022-09-29include: use '#pragma once' everywhereVadim Yanitskiy2-9/+2
Change-Id: Iecc1754caae401aca28444d3e3d0cca04b398f26
2022-09-25comments: gsm_08_08.h: AMR cfg: explain in much more detailNeels Hofmeyr1-5/+48
Change-Id: I1864a6beeeedc301c6dc7e2e0c52a3f94b2fef01
2022-08-09gsm: rsl: Define new osmocom extension TLV IE to pass Osmux CIDPau Espin Pedrol1-0/+1
This is similar to what we already do between BSC<->MSC to pass Osmux CID (GSM0808_IE_OSMO_OSMUX_CID). We now want to support Osmux between BSC and Osmocom BTS, hence add an extension IE which will be used in ipaccess CRCX messages to tell the BTS to use Osmux. Change-Id: I580fe99c01bc0a844d877994ec6cd954310e265d
2022-08-08enrich API doc for gsm0808_speech_codecNeels Hofmeyr1-1/+6
Change-Id: Iee52f38c1040b7f7ee37aaa58cfdb0cb6cf33f4d