Change in libosmocore[master]: gsm_08_58.h: Introduce struct abis_rsl_chan_nr

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Sun Oct 21 12:25:13 UTC 2018


Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/11303 )

Change subject: gsm_08_58.h: Introduce struct abis_rsl_chan_nr
......................................................................

gsm_08_58.h: Introduce struct abis_rsl_chan_nr

It will allow to make code handling chan_nr values more easier to read
and less prone to errors.
union is used to be able to get the full octet in
case we need to pass it somewhere else or encode it.

An extra union is used in struct abis_rsl_common_hdr and others to allow
using fields directly while keeping API compatibility.

Change-Id: Icd6822021207270a00106c50f8ca6b93c1250df9
---
M include/osmocom/gsm/protocol/gsm_08_58.h
1 file changed, 32 insertions(+), 3 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h
index c7a7d8a..cd28caf 100644
--- a/include/osmocom/gsm/protocol/gsm_08_58.h
+++ b/include/osmocom/gsm/protocol/gsm_08_58.h
@@ -31,6 +31,26 @@
  *  @{
  * \file gsm_08_58.h */
 
+/* Channel Number 9.3.1 */
+union abis_rsl_chan_nr {
+#if OSMO_IS_BIG_ENDIAN
+		uint8_t cbits:5,
+			tn:3;
+#elif OSMO_IS_LITTLE_ENDIAN
+		uint8_t tn:3,
+			cbits:5;
+#endif
+		uint8_t chan_nr;
+} __attribute__ ((packed));
+#define ABIS_RSL_CHAN_NR_CBITS_Bm_ACCHs	0x01
+#define ABIS_RSL_CHAN_NR_CBITS_Lm_ACCHs(ss)	(0x02 + (ss))
+#define ABIS_RSL_CHAN_NR_CBITS_SDCCH4_ACCH(ss)	(0x04 + (ss))
+#define ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(ss)	(0x08 + (ss))
+#define ABIS_RSL_CHAN_NR_CBITS_BCCH		0x10
+#define ABIS_RSL_CHAN_NR_CBITS_RACH		0x11
+#define ABIS_RSL_CHAN_NR_CBITS_PCH_AGCH	0x12
+#define ABIS_RSL_CHAN_NR_CBITS_OSMO_PDCH	0x18 /*< non-standard, for dyn TS */
+
 /* Link Identifier 9.3.2 */
 union abis_rsl_link_id {
 #if OSMO_IS_BIG_ENDIAN
@@ -60,7 +80,10 @@
 struct abis_rsl_rll_hdr {
 	struct abis_rsl_common_hdr c;
 	uint8_t	ie_chan;	/*!< \ref RSL_IE_CHAN_NR (tag) */
-	uint8_t	chan_nr;	/*!< RSL channel number (value) */
+	union {
+		uint8_t	chan_nr;	 /* API backward compat */
+		union abis_rsl_chan_nr chan_nr_fields; /*!< RSL channel number (value) */
+	};
 	uint8_t	ie_link_id;	/*!< \ref RSL_IE_LINK_IDENT (tag) */
 	union {
 		uint8_t	link_id; /* API backward compat */
@@ -73,7 +96,10 @@
 struct abis_rsl_dchan_hdr {
 	struct abis_rsl_common_hdr c;
 	uint8_t	ie_chan;	/*!< \ref RSL_IE_CHAN_NR (tag) */
-	uint8_t	chan_nr;	/*!< RSL channel number (value) */
+	union {
+		uint8_t	chan_nr;	 /* API backward compat */
+		union abis_rsl_chan_nr chan_nr_fields; /*!< RSL channel number (value) */
+	};
 	uint8_t	data[0];	/*!< message payload data */
 } __attribute__ ((packed));
 
@@ -81,7 +107,10 @@
 struct abis_rsl_cchan_hdr {
 	struct abis_rsl_common_hdr c;
 	uint8_t	ie_chan;	/*!< \ref RSL_IE_CHAN_NR (tag) */
-	uint8_t	chan_nr;	/*!< RSL channel number (value) */
+	union {
+		uint8_t	chan_nr;	 /* API backward compat */
+		union abis_rsl_chan_nr chan_nr_fields; /*!< RSL channel number (value) */
+	};
 	uint8_t	data[0];	/*!< message payload data */
 } __attribute__ ((packed));
 

-- 
To view, visit https://gerrit.osmocom.org/11303
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Icd6822021207270a00106c50f8ca6b93c1250df9
Gerrit-Change-Number: 11303
Gerrit-PatchSet: 3
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder (1000002)
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-CC: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-CC: Vadim Yanitskiy <axilirator at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181021/ba37f833/attachment.htm>


More information about the gerrit-log mailing list