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.
This commit is contained in:
parent
8e93b7908f
commit
1887f9d153
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue