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/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. Change subject: bts: extend bts_chan_load to allow counting tch only ...................................................................... bts: extend bts_chan_load to allow counting tch only Change-Id: I86f1d502649747b6b9aefcb39081b14110e8f494 --- M openbsc/include/openbsc/chan_alloc.h M openbsc/src/libbsc/bsc_ctrl_commands.c M openbsc/src/libbsc/bsc_vty.c M openbsc/src/libbsc/chan_alloc.c M openbsc/src/libbsc/paging.c 5 files changed, 30 insertions(+), 7 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/openbsc/include/openbsc/chan_alloc.h b/openbsc/include/openbsc/chan_alloc.h index 78242e5..d919b51 100644 --- a/openbsc/include/openbsc/chan_alloc.h +++ b/openbsc/include/openbsc/chan_alloc.h @@ -46,7 +46,7 @@ struct load_counter pchan[_GSM_PCHAN_MAX]; }; -void bts_chan_load(struct pchan_load *cl, const struct gsm_bts *bts); +void bts_chan_load(struct pchan_load *cl, const struct gsm_bts *bts, int only_count_tch); void network_chan_load(struct pchan_load *pl, struct gsm_network *net); int trx_is_usable(struct gsm_bts_trx *trx); diff --git a/openbsc/src/libbsc/bsc_ctrl_commands.c b/openbsc/src/libbsc/bsc_ctrl_commands.c index 7e84797..3f4fee2 100644 --- a/openbsc/src/libbsc/bsc_ctrl_commands.c +++ b/openbsc/src/libbsc/bsc_ctrl_commands.c @@ -239,7 +239,7 @@ bts = cmd->node; memset(&pl, 0, sizeof(pl)); - bts_chan_load(&pl, bts); + bts_chan_load(&pl, bts, 0); cmd->reply = talloc_strdup(cmd, ""); diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c index 5c95e85..01eec23 100644 --- a/openbsc/src/libbsc/bsc_vty.c +++ b/openbsc/src/libbsc/bsc_vty.c @@ -329,7 +329,7 @@ /* FIXME: chan_desc */ memset(&pl, 0, sizeof(pl)); - bts_chan_load(&pl, bts); + bts_chan_load(&pl, bts, 0); vty_out(vty, " Current Channel Load:%s", VTY_NEWLINE); dump_pchan_load_vty(vty, " ", &pl); } diff --git a/openbsc/src/libbsc/chan_alloc.c b/openbsc/src/libbsc/chan_alloc.c index 7b0c3e6..03d44e0 100644 --- a/openbsc/src/libbsc/chan_alloc.c +++ b/openbsc/src/libbsc/chan_alloc.c @@ -514,7 +514,28 @@ return NULL; } -void bts_chan_load(struct pchan_load *cl, const struct gsm_bts *bts) +static int chan_is_tch(struct gsm_bts_trx_ts *ts) +{ + switch (ts->pchan) { + case GSM_PCHAN_TCH_F: + case GSM_PCHAN_TCH_H: + return 1; + case GSM_PCHAN_TCH_F_PDCH: + case GSM_PCHAN_TCH_F_TCH_H_PDCH: + if (ts->dyn.pchan_is == GSM_PCHAN_TCH_F || + ts->dyn.pchan_is == GSM_PCHAN_TCH_H) + return 1; + else + return 0; + default: + return 0; + } +} + + + +void bts_chan_load(struct pchan_load *cl, const struct gsm_bts *bts, + int only_count_tch) { struct gsm_bts_trx *trx; @@ -534,6 +555,9 @@ /* skip administratively deactivated timeslots */ if (!nm_is_running(&ts->mo.nm_state)) + continue; + + if (only_count_tch && !chan_is_tch(ts)) continue; subslots = ts_subslots(ts); @@ -561,6 +585,5 @@ memset(pl, 0, sizeof(*pl)); llist_for_each_entry(bts, &net->bts_list, list) - bts_chan_load(pl, bts); + bts_chan_load(pl, bts, 0); } - diff --git a/openbsc/src/libbsc/paging.c b/openbsc/src/libbsc/paging.c index fcb4deb..e3795b3 100644 --- a/openbsc/src/libbsc/paging.c +++ b/openbsc/src/libbsc/paging.c @@ -119,7 +119,7 @@ int count; memset(&pl, 0, sizeof(pl)); - bts_chan_load(&pl, bts); + bts_chan_load(&pl, bts, 0); switch (rsl_type) { case RSL_CHANNEED_TCH_F: -- To view, visit https://gerrit.osmocom.org/793 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I86f1d502649747b6b9aefcb39081b14110e8f494 Gerrit-PatchSet: 2 Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Owner: lynxis lazus <lynxis at fe80.eu> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder