gsm_08_58, gsm_44_004: add struct for l1 information

Libosmocore currently does not offer any structs to encode and decode
the l1 information on RSL level and the sacch l1 header on the air
interface level. Both structs are identical but the field order in the
first octet is reversed.

Change-Id: I23c1890b89d5a0574eb05dace9f64cc59d6f6df7
This commit is contained in:
Philipp Maier 2021-02-16 17:31:22 +01:00
parent bb149ecda2
commit ca770ae77e
3 changed files with 36 additions and 0 deletions

View File

@ -144,6 +144,7 @@ nobase_include_HEADERS = \
osmocom/gsm/protocol/gsm_23_003.h \
osmocom/gsm/protocol/gsm_23_041.h \
osmocom/gsm/protocol/gsm_29_118.h \
osmocom/gsm/protocol/gsm_44_004.h \
osmocom/gsm/protocol/gsm_44_318.h \
osmocom/gsm/protocol/gsm_48_049.h \
osmocom/gsm/protocol/gsm_48_071.h \

View File

@ -945,4 +945,20 @@ struct ipac_preproc_cfg {
struct ipac_preproc_ho_ctl_param ho_ctl_param;
};
struct rsl_l1_info {
#if OSMO_IS_BIG_ENDIAN
uint8_t ms_pwr:5,
fpc_epc:1,
srr_sro:1,
reserved:1;
uint8_t ta;
#elif OSMO_IS_LITTLE_ENDIAN
uint8_t reserved:1,
srr_sro:1,
fpc_epc:1,
ms_pwr:5;
uint8_t ta;
#endif
} __attribute__ ((packed));
/*! @} */

View File

@ -0,0 +1,19 @@
#pragma once
/* TS 44.004 Section 7.1 */
struct gsm_sacch_l1_hdr {
#if OSMO_IS_BIG_ENDIAN
uint8_t reserved:1,
srr_sro:1,
fpc_epc:1,
ms_pwr:5;
uint8_t ta;
#elif OSMO_IS_LITTLE_ENDIAN
uint8_t ms_pwr:5,
fpc_epc:1,
srr_sro:1,
reserved:1;
uint8_t ta;
#endif
} __attribute__ ((packed));