[MERGED] osmo-pcu[master]: Move paging generation into PDCH

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
Mon Feb 19 08:43:50 UTC 2018


Harald Welte has submitted this change and it was merged.

Change subject: Move paging generation into PDCH
......................................................................


Move paging generation into PDCH

Previously paging was prepared inside BTS function and than handed over
to PDCH function. Move the actual preparation into PDCH to better
decouple PDCH from BTS.

Related: OS#1539
Change-Id: I389fb16b6e54040770c21f88edbcb8e045636928
---
M src/bts.cpp
M src/bts.h
2 files changed, 14 insertions(+), 12 deletions(-)

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



diff --git a/src/bts.cpp b/src/bts.cpp
index 05966d0..cbd3a1c 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -303,7 +303,6 @@
 	uint8_t l, trx, ts, any_tbf = 0;
 	struct gprs_rlcmac_tbf *tbf;
 	LListHead<gprs_rlcmac_tbf> *pos;
-	struct gprs_rlcmac_paging *pag;
 	uint8_t slot_mask[8];
 	int8_t first_ts; /* must be signed */
 
@@ -359,16 +358,10 @@
 		for (ts = 0; ts < 8; ts++) {
 			if ((slot_mask[trx] & (1 << ts))) {
 				/* schedule */
-				pag = talloc_zero(tall_pcu_ctx,
-					struct gprs_rlcmac_paging);
-				if (!pag)
+				if (!m_bts.trx[trx].pdch[ts].add_paging(chan_needed, identity_lv))
 					return -ENOMEM;
-				pag->chan_needed = chan_needed;
-				memcpy(pag->identity_lv, identity_lv,
-					identity_lv[0] + 1);
-				m_bts.trx[trx].pdch[ts].add_paging(pag);
-				LOGP(DRLCMAC, LOGL_INFO, "Paging on PACCH of "
-					"TRX=%d TS=%d\n", trx, ts);
+
+				LOGP(DRLCMAC, LOGL_INFO, "Paging on PACCH of TRX=%d TS=%d\n", trx, ts);
 				any_tbf = 1;
 			}
 		}
@@ -955,9 +948,18 @@
 	return msg;
 }
 
-void gprs_rlcmac_pdch::add_paging(struct gprs_rlcmac_paging *pag)
+bool gprs_rlcmac_pdch::add_paging(uint8_t chan_needed, uint8_t *identity_lv)
 {
+	struct gprs_rlcmac_paging *pag = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_paging);
+	if (!pag)
+		return false;
+
+	pag->chan_needed = chan_needed;
+	memcpy(pag->identity_lv, identity_lv, identity_lv[0] + 1);
+
 	llist_add(&pag->list, &paging_list);
+
+	return true;
 }
 
 void gprs_rlcmac_pdch::rcv_control_ack(Packet_Control_Acknowledgement_t *packet, uint32_t fn)
diff --git a/src/bts.h b/src/bts.h
index f9f385b..25f8ccd 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -73,7 +73,7 @@
 	struct gprs_rlcmac_paging *dequeue_paging();
 	struct msgb *packet_paging_request();
 
-	void add_paging(struct gprs_rlcmac_paging *pag);
+	bool add_paging(uint8_t chan_needed, uint8_t *identity_lv);
 
 	void free_resources();
 

-- 
To view, visit https://gerrit.osmocom.org/6193
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I389fb16b6e54040770c21f88edbcb8e045636928
Gerrit-PatchSet: 3
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Stefan Sperling <ssperling at sysmocom.de>



More information about the gerrit-log mailing list