jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-bsc/+/33599
)
Change subject: ASCI: Add support for Group/Broadcast channel activation
......................................................................
ASCI: Add support for Group/Broadcast channel activation
"struct lchan_activate_info" is expanded to support flags for VGCS and
VBS. These are used to send the correct Channel Mode to the BTS.
"enum lchan_activate_for" is expanded to indicate and activation of
VGCS/VBS calls.
Change-Id: Ic0c0597d149d0758d6766937d99660fa02e0e139
Related: OS#4852
---
M include/osmocom/bsc/lchan.h
M src/osmo-bsc/abis_rsl.c
M src/osmo-bsc/gsm_data.c
3 files changed, 40 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/99/33599/1
diff --git a/include/osmocom/bsc/lchan.h b/include/osmocom/bsc/lchan.h
index 135a067..f46a3fd 100644
--- a/include/osmocom/bsc/lchan.h
+++ b/include/osmocom/bsc/lchan.h
@@ -101,6 +101,7 @@
ACTIVATE_FOR_MS_CHANNEL_REQUEST,
ACTIVATE_FOR_ASSIGNMENT,
ACTIVATE_FOR_HANDOVER,
+ ACTIVATE_FOR_VGCS_CHANNEL,
ACTIVATE_FOR_VTY,
ACTIVATE_FOR_MODE_MODIFY_RTP,
};
@@ -140,6 +141,8 @@
bool vamos;
+ bool vgcs, vbs;
+
/* A copy of bts->imm_ass_time at the time where Channel Activation was requested. A
change in the VTY
* configuration has immediate effect on the value, so make sure we don't get mixed
up when it gets changed
* while a channel activation is in progress. */
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index 8abb675..f3ab8d6 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -405,7 +405,7 @@
static int channel_mode_from_lchan(struct rsl_ie_chan_mode *cm,
struct gsm_lchan *lchan,
const struct channel_mode_and_rate *ch_mode_rate,
- bool vamos)
+ bool vamos, bool vgcs, bool vbs)
{
int rc;
memset(cm, 0, sizeof(*cm));
@@ -429,10 +429,24 @@
cm->chan_rt = RSL_CMOD_CRT_SDCCH;
break;
case GSM_LCHAN_TCH_F:
- cm->chan_rt = vamos ? RSL_CMOD_CRT_OSMO_TCH_VAMOS_Bm : RSL_CMOD_CRT_TCH_Bm;
+ if (vamos)
+ cm->chan_rt = RSL_CMOD_CRT_OSMO_TCH_VAMOS_Bm;
+ else if (vgcs)
+ cm->chan_rt = RSL_CMOD_CRT_TCH_GROUP_Bm;
+ else if (vbs)
+ cm->chan_rt = RSL_CMOD_CRT_TCH_BCAST_Bm;
+ else
+ cm->chan_rt = RSL_CMOD_CRT_TCH_Bm;
break;
case GSM_LCHAN_TCH_H:
- cm->chan_rt = vamos ? RSL_CMOD_CRT_OSMO_TCH_VAMOS_Lm : RSL_CMOD_CRT_TCH_Lm;
+ if (vamos)
+ cm->chan_rt = RSL_CMOD_CRT_OSMO_TCH_VAMOS_Lm;
+ else if (vgcs)
+ cm->chan_rt = RSL_CMOD_CRT_TCH_GROUP_Lm;
+ else if (vbs)
+ cm->chan_rt = RSL_CMOD_CRT_TCH_BCAST_Lm;
+ else
+ cm->chan_rt = RSL_CMOD_CRT_TCH_Lm;
break;
case GSM_LCHAN_NONE:
case GSM_LCHAN_UNKNOWN:
@@ -574,7 +588,8 @@
/* PDCH activation is a job for rsl_tx_dyn_ts_pdch_act_deact(); */
OSMO_ASSERT(act_type != RSL_ACT_OSMO_PDCH);
- rc = channel_mode_from_lchan(&cm, lchan, &lchan->activate.ch_mode_rate,
lchan->activate.info.vamos);
+ rc = channel_mode_from_lchan(&cm, lchan, &lchan->activate.ch_mode_rate,
lchan->activate.info.vamos,
+ lchan->activate.info.vgcs, lchan->activate.info.vbs);
if (rc < 0) {
LOGP(DRSL, LOGL_ERROR,
"%s Cannot find channel mode from lchan type\n",
@@ -711,7 +726,7 @@
if (chan_nr < 0)
return chan_nr;
- rc = channel_mode_from_lchan(&cm, lchan, &lchan->modify.ch_mode_rate,
lchan->modify.info.vamos);
+ rc = channel_mode_from_lchan(&cm, lchan, &lchan->modify.ch_mode_rate,
lchan->modify.info.vamos, false, false);
if (rc < 0)
return rc;
diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c
index 012149a..9a32e07 100644
--- a/src/osmo-bsc/gsm_data.c
+++ b/src/osmo-bsc/gsm_data.c
@@ -940,6 +940,7 @@
OSMO_VALUE_STRING(ACTIVATE_FOR_MS_CHANNEL_REQUEST),
OSMO_VALUE_STRING(ACTIVATE_FOR_ASSIGNMENT),
OSMO_VALUE_STRING(ACTIVATE_FOR_HANDOVER),
+ OSMO_VALUE_STRING(ACTIVATE_FOR_VGCS_CHANNEL),
OSMO_VALUE_STRING(ACTIVATE_FOR_VTY),
{}
};
--
To view, visit
https://gerrit.osmocom.org/c/osmo-bsc/+/33599
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ic0c0597d149d0758d6766937d99660fa02e0e139
Gerrit-Change-Number: 33599
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-MessageType: newchange