diff options
author | Harald Welte <laforge@netfilter.org> | 2009-12-29 10:52:38 +0100 |
---|---|---|
committer | Harald Welte <laforge@netfilter.org> | 2009-12-29 10:53:25 +0100 |
commit | 1887f9d153497adc37cec5b8db6b7423ff64d6c0 (patch) | |
tree | 43b4b9b971ba3dd6549dba33c5d845dbf9f59fd5 | |
parent | 8e93b7908f09e5c356989677e21dd8b8e9cb4371 (diff) |
Introduce gsm_lchans_name() for human readable lchan state name
Also, use this new function to dump lchan state on VTY and to
improve readability of RSL log messages.
-rw-r--r-- | openbsc/include/openbsc/gsm_data.h | 1 | ||||
-rw-r--r-- | openbsc/src/abis_rsl.c | 13 | ||||
-rw-r--r-- | openbsc/src/gsm_data.c | 14 | ||||
-rw-r--r-- | openbsc/src/vty_interface.c | 3 |
4 files changed, 25 insertions, 6 deletions
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h index cd1209303..2e5779383 100644 --- a/openbsc/include/openbsc/gsm_data.h +++ b/openbsc/include/openbsc/gsm_data.h @@ -632,6 +632,7 @@ const char *gsm_lchant_name(enum gsm_chan_t c); const char *gsm_chreq_name(enum gsm_chreq_reason_t c); char *gsm_ts_name(struct gsm_bts_trx_ts *ts); char *gsm_lchan_name(struct gsm_lchan *lchan); +const char *gsm_lchans_name(enum gsm_lchan_state s); enum gsm_e1_event { EVT_E1_NONE, diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c index 6f13b4b30..164d27d1f 100644 --- a/openbsc/src/abis_rsl.c +++ b/openbsc/src/abis_rsl.c @@ -940,8 +940,9 @@ static int rsl_rx_chan_act_ack(struct msgb *msg) return -EINVAL; if (msg->lchan->state != LCHAN_S_ACT_REQ) - LOGP(DRSL, LOGL_NOTICE, "%s CHAN ACT ACK, but state %u\n", - gsm_lchan_name(msg->lchan), msg->lchan->state); + LOGP(DRSL, LOGL_NOTICE, "%s CHAN ACT ACK, but state %s\n", + gsm_lchan_name(msg->lchan), + gsm_lchans_name(msg->lchan->state)); msg->lchan->state = LCHAN_S_ACTIVE; dispatch_signal(SS_LCHAN, S_LCHAN_ACTIVATE_ACK, msg->lchan); @@ -1171,8 +1172,9 @@ static int abis_rsl_rx_dchan(struct msgb *msg) case RSL_MT_RF_CHAN_REL_ACK: DEBUGP(DRSL, "%s RF CHANNEL RELEASE ACK\n", ts_name); if (msg->lchan->state != LCHAN_S_REL_REQ) - LOGP(DRSL, LOGL_NOTICE, "%s CHAN REL ACK but state=%u\n", - gsm_lchan_name(msg->lchan), msg->lchan->state); + LOGP(DRSL, LOGL_NOTICE, "%s CHAN REL ACK but state %s\n", + gsm_lchan_name(msg->lchan), + gsm_lchans_name(msg->lchan->state)); msg->lchan->state = LCHAN_S_NONE; lchan_free(msg->lchan); break; @@ -1312,7 +1314,8 @@ static int rsl_rx_chan_rqd(struct msgb *msg) if (lchan->state != LCHAN_S_NONE) LOGP(DRSL, LOGL_NOTICE, "%s lchan_alloc() returned channel " - "in state %u\n", gsm_lchan_name(lchan), lchan->state); + "in state %s\n", gsm_lchan_name(lchan), + gsm_lchans_name(lchan->state)); lchan->state = LCHAN_S_ACT_REQ; ts_number = lchan->ts->nr; diff --git a/openbsc/src/gsm_data.c b/openbsc/src/gsm_data.c index 7e62aa846..0dfd31f17 100644 --- a/openbsc/src/gsm_data.c +++ b/openbsc/src/gsm_data.c @@ -88,6 +88,20 @@ const char *gsm_lchant_name(enum gsm_chan_t c) return lchan_names[c]; } +static const struct value_string lchan_s_names[] = { + { LCHAN_S_NONE, "NONE" }, + { LCHAN_S_ACT_REQ, "ACTIVATION REQUESTED" }, + { LCHAN_S_ACTIVE, "ACTIVE" }, + { LCHAN_S_INACTIVE, "INACTIVE" }, + { LCHAN_S_REL_REQ, "RELEASE REQUESTED" }, + { 0, NULL }, +}; + +const char *gsm_lchans_name(enum gsm_lchan_state s) +{ + return get_value_string(lchan_s_names, s); +} + static const char *chreq_names[] = { [GSM_CHREQ_REASON_EMERG] = "EMERGENCY", [GSM_CHREQ_REASON_PAG] = "PAGING", diff --git a/openbsc/src/vty_interface.c b/openbsc/src/vty_interface.c index 59865d52a..22284d803 100644 --- a/openbsc/src/vty_interface.c +++ b/openbsc/src/vty_interface.c @@ -571,7 +571,8 @@ static void lchan_dump_vty(struct vty *vty, struct gsm_lchan *lchan) lchan->nr, lchan->ts->nr, lchan->ts->trx->nr, lchan->ts->trx->bts->nr, gsm_lchant_name(lchan->type), VTY_NEWLINE); - vty_out(vty, " Use Count: %u%s", lchan->use_count, VTY_NEWLINE); + vty_out(vty, " Use Count: %u, State: %s%s", lchan->use_count, + gsm_lchans_name(lchan->state), VTY_NEWLINE); vty_out(vty, " BS Power: %u dBm, MS Power: %u dBm%s", lchan->ts->trx->nominal_power - lchan->ts->trx->max_power_red - lchan->bs_power*2, |