aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/lchan.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2023-05-11 13:14:20 +0200
committerlaforge <laforge@osmocom.org>2023-07-21 10:52:07 +0000
commit2ae45aba3f9d9000522b4ba7f0f72b92bce6278f (patch)
tree5a21d9a19f763793c340b3761475d6dc3903f95f /src/common/lchan.c
parent6c83527e62c27c22dbfbccb7a1cacaf2fa3194a0 (diff)
ASCI: VGCS/VBS RACH -> RSL TALKER/LISTENER DETECT
Random access is allowed on VGCS / VBS channels to access the uplink or to detect listeners. Uplink Access from a listener is only reported once after activating the channel. Uplink Access from a talker is reported each time the uplink becomes occupied. RSL TALKER/LISTENER DETECT messages are sent to the bsc. The VGCS UPLINK GRANT message is sent by the BTS itself. Timer T3115 is used to repeat the message up to NY2 times until one valid frame is received from the MS (CM service request). The UPLINK BUSY / UPLINK FREE message must be sent by the BSC. The uplink is released by UPLINK RELEASE message from the MS or from the BSC. Afterwards the UPLINK FREE message causes the MS to leave the uplink without any acknowlege. An RSL REL-REQ must be used to terminate the link locally. (Without layer 2 DISC procedure.) Change-Id: I1bd07ab6802341b09a06e89df356665ffaf6d2bf Related: OS#4851
Diffstat (limited to 'src/common/lchan.c')
-rw-r--r--src/common/lchan.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/common/lchan.c b/src/common/lchan.c
index 8d2b6496..971f0a5d 100644
--- a/src/common/lchan.c
+++ b/src/common/lchan.c
@@ -33,6 +33,7 @@
#include <osmo-bts/handover.h>
#include <osmo-bts/l1sap.h>
#include <osmo-bts/bts_model.h>
+#include <osmo-bts/asci.h>
#include <errno.h>
static const struct value_string lchan_s_names[] = {
@@ -216,8 +217,10 @@ void gsm_lchan_release(struct gsm_lchan *lchan, enum lchan_rel_act_kind rel_kind
if (lchan->state == LCHAN_S_NONE)
return;
- /* release handover state */
+ /* release handover, listener and talker states */
handover_reset(lchan);
+ vgcs_talker_reset(lchan);
+ vgcs_listener_reset(lchan);
lchan->rel_act_kind = rel_kind;