Extend L1SAP PH-DATA with presence information
diff mbox

Message ID 1455905874-14883-1-git-send-email-msuraev@sysmocom.de
State Superseded
Headers show

Commit Message

Max Feb. 19, 2016, 6:17 p.m. UTC
From: Max <msuraev@sysmocom.de>

Previously the presence of header and data blocks were communicated
in-band which decreases code readability and makes it unnecessary hard
to add support for new hardware.

Note: both OsmoBTS and OsmoPCU have to be modified to take advantage of
extended ph_data_param structure.
---
 include/osmocom/gsm/l1sap.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Holger Freyther Feb. 19, 2016, 6:47 p.m. UTC | #1
> On 19 Feb 2016, at 19:17, msuraev@sysmocom.de wrote:
> 
> 

good!


> 
> +/*! \brief PH-DATA presence information */
> +enum osmo_ph_pres_info_type {
> +	PRES_INFO_INVALID = 0,	/*!< \brief Data is invalid */
> +	PRES_INFO_HEADER  = 1,	/*!< \brief Only header is present and valid */
> +	PRES_INFO_FIRST   = 3,	/*!< \brief First half of data + header are valid (2nd half may be present but invalid) */
> +	PRES_INFO_SECOND  = 5,	/*!< \brief Second half of data + header are valid (1st halfmay be present but invalid) */
> +	PRES_INFO_BOTH    = 7,	/*!< \brief Both parts + header are present and valid */


do you intend to use it as a bit mask or why the b101 and b111?



> +	PRES_INFO_UNKNOWN
> +};
> +
> /*! \brief for PH-RANDOM_ACCESS.req */
> struct ph_rach_req_param {
> 
> +	enum osmo_ph_pres_info_type pdch_presence_info; /*!< \brief Info regarding presence/validity of header and data parts */
> };

This might or might not change the size of the struct osmo_phsap_prim and then we have an ABI issue. For such cases we have created the TODO-RELEASE file to indicate that we need to bump the SOVERSION on the next release.


holger
Max Feb. 19, 2016, 6:51 p.m. UTC | #2
Good point, totally forgot about TODO-RELEASE.
As for values - I've took them directly from off-list comment by Harald. 
I suspect there might be other places where hardcoded values are used.

cheers,
Max.

Patch
diff mbox

diff --git a/include/osmocom/gsm/l1sap.h b/include/osmocom/gsm/l1sap.h
index 9f3fe98..1af8ba8 100644
--- a/include/osmocom/gsm/l1sap.h
+++ b/include/osmocom/gsm/l1sap.h
@@ -25,6 +25,16 @@  enum osmo_mph_info_type {
 	PRIM_INFO_DEACT_CIPH,	/*!< \brief Deactivation of ciphering */
 };
 
+/*! \brief PH-DATA presence information */
+enum osmo_ph_pres_info_type {
+	PRES_INFO_INVALID = 0,	/*!< \brief Data is invalid */
+	PRES_INFO_HEADER  = 1,	/*!< \brief Only header is present and valid */
+	PRES_INFO_FIRST   = 3,	/*!< \brief First half of data + header are valid (2nd half may be present but invalid) */
+	PRES_INFO_SECOND  = 5,	/*!< \brief Second half of data + header are valid (1st halfmay be present but invalid) */
+	PRES_INFO_BOTH    = 7,	/*!< \brief Both parts + header are present and valid */
+	PRES_INFO_UNKNOWN
+};
+
 /*! \brief for PH-RANDOM_ACCESS.req */
 struct ph_rach_req_param {
 	uint8_t ra;		/*!< \brief Random Access */
@@ -48,6 +58,7 @@  struct ph_data_param {
 	uint8_t chan_nr;	/*!< \brief Channel Number (Like RSL) */
 	uint32_t fn;		/*!< \brief GSM Frame Number */
 	int8_t rssi;		/*!< \brief RSSI of receivedindication */
+	enum osmo_ph_pres_info_type pdch_presence_info; /*!< \brief Info regarding presence/validity of header and data parts */
 };
 
 /*! \brief for TCH.{req,ind} | TCH-RTS.ind */