aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2021-01-27 23:44:54 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2021-02-05 20:24:40 +0100
commit71b1bc49642518ac1e85447c9f59e44902f6875b (patch)
tree54ea429d0179792bd767278ce4d097f631e0e200
parent9a66b3f200c6d373e37aa11536d6a1cb5054fd37 (diff)
lchan assignment when RTP is set up: don't break on Mode Modify
-rw-r--r--src/osmo-bsc/assignment_fsm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c
index 8bb879fd1..a8b6439df 100644
--- a/src/osmo-bsc/assignment_fsm.c
+++ b/src/osmo-bsc/assignment_fsm.c
@@ -444,8 +444,11 @@ void assignment_fsm_start(struct gsm_subscriber_connection *conn, struct gsm_bts
return;
/* There may be an already existing lchan, if yes, try to work with
- * the existing lchan. */
- if (reuse_existing_lchan(conn)) {
+ * the existing lchan.
+ * If an RTP FSM is already set up for the lchan, Mode Modify is not yet supported -- see handling of
+ * LCHAN_EV_REQUEST_MODE_MODIFY in lchan_fsm.c. To not break the lchan, do not even attempt to re-use an lchan
+ * that already has an RTP stream set up, rather establish a new lchan (that transition is well implemented). */
+ if (reuse_existing_lchan(conn) && !conn->lchan->fi_rtp) {
/* If the requested mode and the current TCH mode matches up, just send the
* assignment complete directly and be done with the assignment procedure. */