diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2023-03-02 01:59:45 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2023-03-03 16:27:41 +0100 |
commit | ccfe31fefb963c50481f0380d158658abda558ce (patch) | |
tree | 55fc4f68e373abc8b4259f9f9739c2ad1a7d5e21 | |
parent | e4adb4de69bdc396236c162f29abdc47a952386d (diff) |
drop gsm_pchan_ids, use sanitized FSM ids instead
gsm_pchan_ids[] exists only to compose osmo_fsm compliant IDs. We do
have osmo_fsm_inst_update_id_f_sanitize() now, rather use that.
This removes some confusion about which value_string array has an effect
on the VTY command 'ts' / 'phys_chan_config'.
Note that tests/bsc_test.ok does not change, hence the new way of
composing FSM IDs is identical to using the old gsm_pchan_ids[].
Change-Id: Ib85b7aa4ea882ae37919dd3ea0c033e949c083e5
-rw-r--r-- | include/osmocom/bsc/gsm_data.h | 3 | ||||
-rw-r--r-- | src/osmo-bsc/assignment_fsm.c | 19 | ||||
-rw-r--r-- | src/osmo-bsc/gsm_data.c | 16 | ||||
-rw-r--r-- | src/osmo-bsc/lchan_fsm.c | 10 | ||||
-rw-r--r-- | src/osmo-bsc/timeslot_fsm.c | 4 |
5 files changed, 17 insertions, 35 deletions
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index b2aa59000..cf66a041f 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -806,10 +806,7 @@ struct gsm_bts *gsm_bts_by_cell_id(const struct gsm_network *net, extern const struct value_string gsm_chreq_descs[]; extern const struct value_string gsm_pchant_names[]; extern const struct value_string gsm_pchant_descs[]; -extern const struct value_string gsm_pchan_ids[]; const char *gsm_pchan_name(enum gsm_phys_chan_config c); -static inline const char *gsm_pchan_id(enum gsm_phys_chan_config c) -{ return get_value_string(gsm_pchan_ids, c); } enum gsm_phys_chan_config gsm_pchan_parse(const char *name); const char *gsm_chreq_name(enum gsm_chreq_reason_t c); char *gsm_ts_name(const struct gsm_bts_trx_ts *ts); diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 8ffaccaaa..7f6a7ea85 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -313,15 +313,16 @@ void assignment_fsm_update_id(struct gsm_subscriber_connection *conn) return; } - osmo_fsm_inst_update_id_f(conn->assignment.fi, "%s_%u-%u-%u-%s%s%s-%s%u", - conn->fi->id, - new_lchan->ts->trx->bts->nr, new_lchan->ts->trx->nr, new_lchan->ts->nr, - gsm_pchan_id(new_lchan->ts->pchan_on_init), - (new_lchan->ts->pchan_on_init == new_lchan->ts->pchan_is)? "" : "as", - (new_lchan->ts->pchan_on_init == new_lchan->ts->pchan_is)? "" - : gsm_pchan_id(new_lchan->ts->pchan_is), - new_lchan->vamos.is_secondary ? "shadow" : "", - new_lchan->nr - (new_lchan->vamos.is_secondary ? new_lchan->ts->max_primary_lchans : 0)); + osmo_fsm_inst_update_id_f_sanitize(conn->assignment.fi, '_', "%s_%u-%u-%u-%s%s%s-%s%u", + conn->fi->id, + new_lchan->ts->trx->bts->nr, new_lchan->ts->trx->nr, new_lchan->ts->nr, + gsm_pchan_name(new_lchan->ts->pchan_on_init), + (new_lchan->ts->pchan_on_init == new_lchan->ts->pchan_is) ? "" : "as", + (new_lchan->ts->pchan_on_init == new_lchan->ts->pchan_is) ? + "" : gsm_pchan_name(new_lchan->ts->pchan_is), + new_lchan->vamos.is_secondary ? "shadow" : "", + new_lchan->nr - (new_lchan->vamos.is_secondary ? + new_lchan->ts->max_primary_lchans : 0)); } static bool lchan_type_compat_with_mode(enum gsm_chan_t type, const struct channel_mode_and_rate *ch_mode_rate) diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 295b7f14a..012149a36 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -197,22 +197,6 @@ const struct value_string gsm_pchant_names[] = { { 0, NULL } }; -const struct value_string gsm_pchan_ids[] = { - { GSM_PCHAN_NONE, "NONE" }, - { GSM_PCHAN_CCCH, "CCCH" }, - { GSM_PCHAN_CCCH_SDCCH4,"CCCH_SDCCH4" }, - { GSM_PCHAN_TCH_F, "TCH_F" }, - { GSM_PCHAN_TCH_H, "TCH_H" }, - { GSM_PCHAN_SDCCH8_SACCH8C, "SDCCH8" }, - { GSM_PCHAN_PDCH, "PDCH" }, - { GSM_PCHAN_TCH_F_PDCH, "DYNAMIC_IPACCESS" }, - { GSM_PCHAN_UNKNOWN, "UNKNOWN" }, - { GSM_PCHAN_CCCH_SDCCH4_CBCH, "CCCH_SDCCH4_CBCH" }, - { GSM_PCHAN_SDCCH8_SACCH8C_CBCH, "SDCCH8_CBCH" }, - { GSM_PCHAN_OSMO_DYN, "DYNAMIC_OSMOCOM" }, - { 0, NULL } -}; - /* VTY command descriptions. These have to be in the same order as gsm_pchant_names[], so that the automatic VTY command * composition in bts_trx_vty_init() works out. */ const struct value_string gsm_pchant_descs[] = { diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 717f9be6b..05fcea75b 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -452,11 +452,11 @@ void lchan_fsm_update_id(struct gsm_lchan *lchan) lchan_update_name(lchan); if (!lchan->fi) return; - osmo_fsm_inst_update_id_f(lchan->fi, "%u-%u-%u-%s-%s%u", - lchan->ts->trx->bts->nr, lchan->ts->trx->nr, lchan->ts->nr, - gsm_pchan_id(lchan->ts->pchan_on_init), - lchan->vamos.is_secondary ? "shadow" : "", - lchan->nr - (lchan->vamos.is_secondary ? lchan->ts->max_primary_lchans : 0)); + osmo_fsm_inst_update_id_f_sanitize(lchan->fi, '_', "%u-%u-%u-%s-%s%u", + lchan->ts->trx->bts->nr, lchan->ts->trx->nr, lchan->ts->nr, + gsm_pchan_name(lchan->ts->pchan_on_init), + lchan->vamos.is_secondary ? "shadow" : "", + lchan->nr - (lchan->vamos.is_secondary ? lchan->ts->max_primary_lchans : 0)); if (lchan->fi_rtp) osmo_fsm_inst_update_id_f(lchan->fi_rtp, lchan->fi->id); } diff --git a/src/osmo-bsc/timeslot_fsm.c b/src/osmo-bsc/timeslot_fsm.c index c7f61304b..c9902b6b3 100644 --- a/src/osmo-bsc/timeslot_fsm.c +++ b/src/osmo-bsc/timeslot_fsm.c @@ -49,8 +49,8 @@ struct gsm_bts_trx_ts *ts_fi_ts(struct osmo_fsm_inst *fi) static void ts_fsm_update_id(struct gsm_bts_trx_ts *ts) { - osmo_fsm_inst_update_id_f(ts->fi, "%u-%u-%u-%s", ts->trx->bts->nr, ts->trx->nr, ts->nr, - gsm_pchan_id(ts->pchan_on_init)); + osmo_fsm_inst_update_id_f_sanitize(ts->fi, '_', "%u-%u-%u-%s", ts->trx->bts->nr, ts->trx->nr, ts->nr, + gsm_pchan_name(ts->pchan_on_init)); } static __attribute__((constructor)) void ts_fsm_init(void) |