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/.
Alexander Chemeris gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/1247 vty: Add commands to manually activate/deactivate a channel. This is the easiest way I found to make BTS level loopback to work. Another way to implement this is to have BSC/NITB to send the OML command, but it's a longer path with no clear benefits. Note, that the current code hardcodes the channel to be TCH/F with v1 speech, which is what we need for the basic BER testing. We may want to extend this later to support more channel types. Change-Id: Ia2734afeff023e5b3d6b934c7e8b1ed95a071b72 --- M src/common/vty.c 1 file changed, 60 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/47/1247/1 diff --git a/src/common/vty.c b/src/common/vty.c index b4aa616..f56f5b5 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1055,6 +1055,64 @@ return CMD_SUCCESS; } +DEFUN(bts_t_t_l_activate, + bts_t_t_l_activate_cmd, + "bts <0-0> trx <0-0> ts <0-7> lchan <0-1> activate", + BTS_T_T_L_STR "Activate channel\n") +{ + struct gsm_network *net = gsmnet_from_vty(vty); + struct gsm_lchan *lchan; + int rc; + + lchan = resolve_lchan(net, argv, 0); + if (!lchan) { + vty_out(vty, "%% can't find BTS%s", VTY_NEWLINE); + return CMD_WARNING; + } + + /* set channel configuration */ + /* TODO: let user choose speech mode */ + lchan->tch_mode = GSM48_CMODE_SPEECH_V1; + lchan->rsl_cmode = RSL_CMOD_SPD_SPEECH; + /* no encryption */ + memset(&lchan->encr, 0, sizeof(lchan->encr)); + + /* activate the channel */ + lchan->rel_act_kind = LCHAN_REL_ACT_OML; + rc = l1sap_chan_act(lchan->ts->trx, gsm_lchan2chan_nr(lchan), NULL); + if (rc < 0) { + vty_out(vty, "%% can't activate channel%s", VTY_NEWLINE); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +DEFUN(bts_t_t_l_deactivate, + bts_t_t_l_deactivate_cmd, + "bts <0-0> trx <0-0> ts <0-7> lchan <0-1> deactivate", + BTS_T_T_L_STR "Deactivate channel\n") +{ + struct gsm_network *net = gsmnet_from_vty(vty); + struct gsm_lchan *lchan; + int rc; + + lchan = resolve_lchan(net, argv, 0); + if (!lchan) { + vty_out(vty, "%% can't find BTS%s", VTY_NEWLINE); + return CMD_WARNING; + } + + /* deactivate the channel */ + rc = l1sap_chan_rel(lchan->ts->trx, gsm_lchan2chan_nr(lchan)); + if (rc < 0) { + vty_out(vty, "%% can't deactivate channel%s", VTY_NEWLINE); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + int bts_vty_init(struct gsm_bts *bts, const struct log_info *cat) { cfg_trx_gsmtap_sapi_cmd.string = vty_cmd_string_from_valstr(bts, gsmtap_sapi_names, @@ -1113,6 +1171,8 @@ install_element(ENABLE_NODE, &bts_t_t_l_jitter_buf_cmd); install_element(ENABLE_NODE, &bts_t_t_l_loopback_cmd); install_element(ENABLE_NODE, &no_bts_t_t_l_loopback_cmd); + install_element(ENABLE_NODE, &bts_t_t_l_activate_cmd); + install_element(ENABLE_NODE, &bts_t_t_l_deactivate_cmd); install_element(CONFIG_NODE, &cfg_phy_cmd); install_node(&phy_node, config_write_phy); -- To view, visit https://gerrit.osmocom.org/1247 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia2734afeff023e5b3d6b934c7e8b1ed95a071b72 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Alexander Chemeris <Alexander.Chemeris at gmail.com>