aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/include/openbsc/gsm_data.h1
-rw-r--r--openbsc/src/abis_rsl.c13
-rw-r--r--openbsc/src/gsm_data.c14
-rw-r--r--openbsc/src/vty_interface.c3
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,