diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/Makefile.am | 1 | ||||
-rw-r--r-- | include/osmocom/gprs/gprs_rlc.h | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/include/Makefile.am b/include/Makefile.am index e420a648..c1256916 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -51,6 +51,7 @@ nobase_include_HEADERS = \ osmocom/gprs/gprs_msgb.h \ osmocom/gprs/gprs_ns.h \ osmocom/gprs/gprs_ns_frgre.h \ + osmocom/gprs/gprs_rlc.h \ osmocom/gprs/protocol/gsm_04_60.h \ osmocom/gprs/protocol/gsm_08_16.h \ osmocom/gprs/protocol/gsm_08_18.h \ diff --git a/include/osmocom/gprs/gprs_rlc.h b/include/osmocom/gprs/gprs_rlc.h new file mode 100644 index 00000000..d34d49bf --- /dev/null +++ b/include/osmocom/gprs/gprs_rlc.h @@ -0,0 +1,27 @@ +#pragma once + +#include <stdint.h> + +/*! \brief Structure for CPS coding and puncturing scheme (TS 04.60 10.4.8a) */ +struct egprs_cps { + uint8_t bits; + uint8_t mcs; + uint8_t p[2]; +}; + +/*! \brief CPS puncturing table selection (TS 04.60 10.4.8a) */ +enum egprs_cps_punc { + EGPRS_CPS_P1, + EGPRS_CPS_P2, + EGPRS_CPS_P3, + EGPRS_CPS_NONE = -1, +}; + +/*! \brief EGPRS header types (TS 04.60 10.0a.2) */ +enum egprs_hdr_type { + EGPRS_HDR_TYPE1, + EGPRS_HDR_TYPE2, + EGPRS_HDR_TYPE3, +}; + +int egprs_get_cps(struct egprs_cps *cps, uint8_t type, uint8_t bits); |