Change in osmo-pcu[master]: pcuif_proto: version 10: add frequency hopping parameters

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/.

fixeria gerrit-no-reply at lists.osmocom.org
Fri Aug 21 21:08:22 UTC 2020


fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19789 )


Change subject: pcuif_proto: version 10: add frequency hopping parameters
......................................................................

pcuif_proto: version 10: add frequency hopping parameters

Change-Id: I6863830883d90954006a7126c22d348aa2a83271
Related: SYS#4868, OS#4547
---
M include/osmocom/pcu/pcuif_proto.h
M src/pcu_l1_if.cpp
2 files changed, 33 insertions(+), 6 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/89/19789/1

diff --git a/include/osmocom/pcu/pcuif_proto.h b/include/osmocom/pcu/pcuif_proto.h
index e88607e..ad6fa9a 100644
--- a/include/osmocom/pcu/pcuif_proto.h
+++ b/include/osmocom/pcu/pcuif_proto.h
@@ -5,7 +5,7 @@
 
 #define PCU_SOCK_DEFAULT	"/tmp/pcu_bts"
 
-#define PCU_IF_VERSION		0x09
+#define PCU_IF_VERSION		0x0a
 #define TXT_MAX_LEN	128
 
 /* msg_type */
@@ -112,12 +112,20 @@
 	uint8_t		ts_nr;
 } __attribute__ ((packed));
 
+struct gsm_pcu_if_info_ts {
+	uint8_t		tsc;
+	uint8_t		h;
+	uint8_t		hsn;
+	uint8_t		maio;
+	uint8_t		ma[8];
+} __attribute__ ((packed));
+
 struct gsm_pcu_if_info_trx {
 	uint16_t	arfcn;
-	uint8_t		pdch_mask;		/* PDCH channels per TS */
+	uint8_t		pdch_mask;		/* PDCH slot-mask */
 	uint8_t		spare;
-	uint8_t		tsc[8];			/* TSC per channel */
 	uint32_t	hlayer1;
+	struct gsm_pcu_if_info_ts ts[8];	/* timeslots per TRX */
 } __attribute__ ((packed));
 
 struct gsm_pcu_if_info_ind {
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp
index f92fe4e..3c348a4 100644
--- a/src/pcu_l1_if.cpp
+++ b/src/pcu_l1_if.cpp
@@ -630,6 +630,7 @@
 		}
 
 		for (ts_nr = 0; ts_nr < ARRAY_SIZE(bts->trx[0].pdch); ts_nr++) {
+			const struct gsm_pcu_if_info_ts *its = &info_ind->trx[trx_nr].ts[ts_nr];
 			struct gprs_rlcmac_pdch *pdch = &bts->trx[trx_nr].pdch[ts_nr];
 			if ((info_ind->trx[trx_nr].pdch_mask & (1 << ts_nr))) {
 				/* FIXME: activate dynamically at RLCMAC */
@@ -643,9 +644,27 @@
 					pcu_tx_act_req(trx_nr, ts_nr, 1);
 					pdch->enable();
 				}
-				pdch->tsc = info_ind->trx[trx_nr].tsc[ts_nr];
-				LOGP(DL1IF, LOGL_INFO, "PDCH: trx=%d ts=%d\n",
-					trx_nr, ts_nr);
+
+				pdch->tsc = its->tsc;
+
+				/* (Optional) frequency hopping parameters */
+				if (its->h) {
+					pdch->fh.enabled = true;
+					pdch->fh.maio    = its->maio;
+					pdch->fh.hsn     = its->hsn;
+					pdch->fh.ma_len  = 0;
+
+					/* Mobile Allocation (byte/bit order as on the wire) */
+					for (unsigned int i = 0; i < ARRAY_SIZE(pdch->fh.ma); i++) {
+						/* Skip redundant octets (basically padding) */
+						if (!pdch->fh.ma_len && its->ma[i] == 0x00)
+							continue;
+						pdch->fh.ma[pdch->fh.ma_len++] = its->ma[i];
+					}
+				}
+
+				LOGP(DL1IF, LOGL_INFO, "PDCH (trx=%u, ts=%u): tsc=%u, hopping=%s\n",
+				     trx_nr, ts_nr, pdch->tsc, pdch->fh.enabled ? "yes" : "no");
 			} else {
 				if (pdch->is_enabled()) {
 					pcu_tx_act_req(trx_nr, ts_nr, 0);

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19789
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I6863830883d90954006a7126c22d348aa2a83271
Gerrit-Change-Number: 19789
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200821/d986fd28/attachment.htm>


More information about the gerrit-log mailing list