From fd815bba12c05e12fa3f73c54c071475f0105686 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 30 Aug 2019 18:32:42 +0200 Subject: vty: Print MM state and RAN type in show mm-context Value presviosuly printed as MM state is actually usually refereed as GMM state, so rename it. Change-Id: Ia06c53f0cd2a6348237ed3abeb9367d965745aba --- include/osmocom/sgsn/gprs_sgsn.h | 1 + src/gprs/gprs_sgsn.c | 9 +++++++++ src/gprs/sgsn_vty.c | 7 ++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h index 8f16c5b30..8e8b762f1 100644 --- a/include/osmocom/sgsn/gprs_sgsn.h +++ b/include/osmocom/sgsn/gprs_sgsn.h @@ -104,6 +104,7 @@ enum sgsn_ran_type { MM_CTX_T_GERAN_Iu, #endif }; +extern const struct value_string sgsn_ran_type_names[]; struct service_info { uint8_t type; diff --git a/src/gprs/gprs_sgsn.c b/src/gprs/gprs_sgsn.c index 23347073b..387c0d5a1 100644 --- a/src/gprs/gprs_sgsn.c +++ b/src/gprs/gprs_sgsn.c @@ -62,6 +62,15 @@ LLIST_HEAD(sgsn_ggsn_ctxts); LLIST_HEAD(sgsn_apn_ctxts); LLIST_HEAD(sgsn_pdp_ctxts); +const struct value_string sgsn_ran_type_names[] = { + { MM_CTX_T_GERAN_Gb, "GPRS/EDGE via Gb" }, + { MM_CTX_T_UTRAN_Iu, "UMTS via Iu" }, +#if 0 + { MM_CTX_T_GERAN_Iu, "GPRS/EDGE via Iu" }, +#endif + { 0, NULL } +}; + static const struct rate_ctr_desc mmctx_ctr_description[] = { { "sign:packets:in", "Signalling Messages ( In)" }, { "sign:packets:out", "Signalling Messages (Out)" }, diff --git a/src/gprs/sgsn_vty.c b/src/gprs/sgsn_vty.c index 1f7874fc4..184ece761 100644 --- a/src/gprs/sgsn_vty.c +++ b/src/gprs/sgsn_vty.c @@ -526,15 +526,18 @@ static void vty_dump_mmctx(struct vty *vty, const char *pfx, struct sgsn_mm_ctx *mm, int pdp) { uint32_t id = 0; + const char *mm_state_name = NULL; switch(mm->ran_type) { case MM_CTX_T_UTRAN_Iu: #if BUILD_IU id = mm->iu.ue_ctx->conn_id; + mm_state_name = osmo_fsm_inst_state_name(mm->iu.mm_state_fsm); #endif break; case MM_CTX_T_GERAN_Gb: id = mm->gb.tlli; + mm_state_name = osmo_fsm_inst_state_name(mm->gb.mm_state_fsm); break; } @@ -542,9 +545,11 @@ static void vty_dump_mmctx(struct vty *vty, const char *pfx, pfx, mm->imsi, mm->imei, mm->p_tmsi, VTY_NEWLINE); vty_out(vty, "%s MSISDN: %s, TLLI: %08x%s HLR: %s", pfx, mm->msisdn, id, mm->hlr, VTY_NEWLINE); - vty_out(vty, "%s MM State: %s, Routeing Area: %s, Cell ID: %u%s", + vty_out(vty, "%s GMM State: %s, Routeing Area: %s, Cell ID: %u%s", pfx, get_value_string(gprs_mm_st_strs, mm->gmm_state), osmo_rai_name(&mm->ra), mm->gb.cell_id, VTY_NEWLINE); + vty_out(vty, "%s MM State: %s, RAN Type: %s%s", pfx, mm_state_name, + get_value_string(sgsn_ran_type_names, mm->ran_type), VTY_NEWLINE); vty_out_rate_ctr_group(vty, " ", mm->ctrg); -- cgit v1.2.3