aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-08-30 18:32:42 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2019-09-02 11:44:58 +0200
commitfd815bba12c05e12fa3f73c54c071475f0105686 (patch)
tree5422eb59b79fbdb42a79b1c20d0e50c04244812f
parentccd1252bd76169439cb66f3a50e4575e0f03ec0b (diff)
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
-rw-r--r--include/osmocom/sgsn/gprs_sgsn.h1
-rw-r--r--src/gprs/gprs_sgsn.c9
-rw-r--r--src/gprs/sgsn_vty.c7
3 files changed, 16 insertions, 1 deletions
diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h
index 8f16c5b3..8e8b762f 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 23347073..387c0d5a 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 1f7874fc..184ece76 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);