[PATCH] osmo-bsc[master]: dyn TS, assignment: set lchan state to LCHAN_S_ACT_REQ in th...

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

Neels Hofmeyr gerrit-no-reply at lists.osmocom.org
Sat May 5 18:39:54 UTC 2018


Review at  https://gerrit.osmocom.org/8042

dyn TS, assignment: set lchan state to LCHAN_S_ACT_REQ in the proper place

Set lchan->state to LCHAN_S_ACT_REQ in rsl_chan_activate_lchan(), not in
handle_new_assignment().

This is the first part of a fix for dynamic timeslots handling in the gscon.

Rationale:

In rsl_chan_activate_lchan(), we may choose to set the lchan state to
LCHAN_S_REL_REQ and wait for dyn TS switchover from PDCH.

So the caller from bsc_api.c handle_new_assignment() must not bluntly set the
state to LCHAN_S_ACT_REQ, which is not accurate in the case of dyn TS
switchover.

In case of dyn TS switchover, a later release ack received from the BTS will
cause rsl_chan_activate_lchan() to be called again, at which point we may
accurately set state LCHAN_S_ACT_REQ, and continue the Assignment.

Related: OS#3211
Change-Id: Iedb4fb63bf1959d5f1d2c6edb6a7f5097ff16bd7
---
M src/libbsc/abis_rsl.c
M src/libbsc/bsc_api.c
2 files changed, 4 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/42/8042/1

diff --git a/src/libbsc/abis_rsl.c b/src/libbsc/abis_rsl.c
index 10bef6e..b36e496 100644
--- a/src/libbsc/abis_rsl.c
+++ b/src/libbsc/abis_rsl.c
@@ -694,7 +694,10 @@
 
 	rate_ctr_inc(&lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_TOTAL]);
 
-	return abis_rsl_sendmsg(msg);
+	rc = abis_rsl_sendmsg(msg);
+	if (!rc)
+		rsl_lchan_set_state(lchan, LCHAN_S_ACT_REQ);
+	return rc;
 }
 
 /* Chapter 8.4.9: Modify channel mode on BTS side */
diff --git a/src/libbsc/bsc_api.c b/src/libbsc/bsc_api.c
index 19859cf..13fe099 100644
--- a/src/libbsc/bsc_api.c
+++ b/src/libbsc/bsc_api.c
@@ -156,8 +156,6 @@
 	/* remember that we have the channel */
 	conn->secondary_lchan = new_lchan;
 	new_lchan->conn = conn;
-
-	rsl_lchan_set_state(new_lchan, LCHAN_S_ACT_REQ);
 	return 0;
 }
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iedb4fb63bf1959d5f1d2c6edb6a7f5097ff16bd7
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list