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(+)
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 */
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
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.