From 9a5bbf36b543ff89c0ed148428d97300880c5804 Mon Sep 17 00:00:00 2001 From: Tom Tsou Date: Thu, 14 Jul 2016 15:13:45 -0700 Subject: egprs: Add CPS tables from TS 04.60 Includes EGPRS coding and puncturing scheme (CPS) tables from 3GPP TS 04.60. Currently osmo-bts-trx is the only user of CPS table values, but this may change with gprsdecode and other utilities. Change-Id: I09fe6514a0e2e51bb3206f8387633f7e0255345f --- include/osmocom/gprs/gprs_rlc.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 include/osmocom/gprs/gprs_rlc.h (limited to 'include/osmocom/gprs/gprs_rlc.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 + +/*! \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); -- cgit v1.2.3