Change in osmo-bts[master]: update sysinfo copies in all lchans upon SACCH FILL

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
Tue Jul 24 18:52:44 UTC 2018


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

Change subject: update sysinfo copies in all lchans upon SACCH FILL
......................................................................

update sysinfo copies in all lchans upon SACCH FILL

When a SACCH FILL is received, loop over all lchans and update
their copies of system information data.

This change makes BTS_Tests.TC_sacch_multi_chg pass.

Change-Id: I3e63eeb5fcf320fb029de16e4d327e153cc34567
Related: OS#3173
---
M src/common/rsl.c
1 file changed, 32 insertions(+), 0 deletions(-)

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



diff --git a/src/common/rsl.c b/src/common/rsl.c
index 9295240..e28f313 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -563,12 +563,44 @@
 	}
 	if (TLVP_PRESENT(&tp, RSL_IE_L3_INFO)) {
 		uint16_t len = TLVP_LEN(&tp, RSL_IE_L3_INFO);
+		struct gsm_bts_trx *t;
+
 		lapdm_ui_prefix_bts(bts, TLVP_VAL(&tp, RSL_IE_L3_INFO), osmo_si, len);
 
+		/* Propagate SI change to all lchans. */
+		llist_for_each_entry(t, &bts->trx_list, list) {
+			int i, j;
+			for (i = 0; i < ARRAY_SIZE(t->ts); i++) {
+				struct gsm_bts_trx_ts *ts = &t->ts[i];
+				for (j = 0; j < ARRAY_SIZE(ts->lchan); j++) {
+					struct gsm_lchan *lchan = &ts->lchan[j];
+					if (lchan->state == LCHAN_S_NONE)
+						continue;
+					lapdm_ui_prefix_lchan(lchan, TLVP_VAL(&tp, RSL_IE_L3_INFO), osmo_si, len);
+				}
+			}
+		}
+
 		LOGP(DRSL, LOGL_INFO, " Rx RSL SACCH FILLING (SI%s, %u bytes)\n",
 		     get_value_string(osmo_sitype_strs, osmo_si), len);
 	} else {
+		struct gsm_bts_trx *t;
+
 		bts->si_valid &= ~(1 << osmo_si);
+
+		/* Propagate SI change to all lchans. */
+		llist_for_each_entry(t, &bts->trx_list, list) {
+			int i, j;
+			for (i = 0; i < ARRAY_SIZE(t->ts); i++) {
+				struct gsm_bts_trx_ts *ts = &t->ts[i];
+				for (j = 0; j < ARRAY_SIZE(ts->lchan); j++) {
+					struct gsm_lchan *lchan = &ts->lchan[j];
+					if (lchan->state == LCHAN_S_NONE)
+						continue;
+					lchan->si.valid &= ~(1 << osmo_si);
+				}
+			}
+		}
 		LOGP(DRSL, LOGL_INFO, " Rx RSL Disabling SACCH FILLING (SI%s)\n",
 			get_value_string(osmo_sitype_strs, osmo_si));
 	}

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

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I3e63eeb5fcf320fb029de16e4d327e153cc34567
Gerrit-Change-Number: 10153
Gerrit-PatchSet: 1
Gerrit-Owner: Stefan Sperling <ssperling at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180724/d13a2268/attachment.htm>


More information about the gerrit-log mailing list