edge: Show current mode in VTY

Add the current mode to the output of the 'show ms imsi' and
'show ms tlli' commands.

Sponsored-by: On-Waves ehf
diff --git a/src/gprs_coding_scheme.cpp b/src/gprs_coding_scheme.cpp
index a460103..4ba55c3 100644
--- a/src/gprs_coding_scheme.cpp
+++ b/src/gprs_coding_scheme.cpp
@@ -176,3 +176,13 @@
 
 	m_scheme = Scheme(m_scheme - 1);
 }
+
+const char *GprsCodingScheme::modeName(Mode mode)
+{
+	switch (mode) {
+	case GPRS:       return "GPRS";
+	case EGPRS_GMSK: return "EGPRS_GMSK-only";
+	case EGPRS:      return "EGPRS";
+	default:         return "???";
+	}
+}
diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h
index d1fc064..f02ca51 100644
--- a/src/gprs_coding_scheme.h
+++ b/src/gprs_coding_scheme.h
@@ -87,6 +87,7 @@
 	static GprsCodingScheme getGprsByNum(unsigned num);
 	static GprsCodingScheme getEgprsByNum(unsigned num);
 
+	static const char *modeName(Mode mode);
 private:
 	enum Scheme m_scheme;
 };
diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp
index c059233..a5430f9 100644
--- a/src/pcu_vty_functions.cpp
+++ b/src/pcu_vty_functions.cpp
@@ -107,6 +107,8 @@
 		VTY_NEWLINE);
 	vty_out(vty, "  Coding scheme downlink: %s%s", ms->current_cs_dl().name(),
 		VTY_NEWLINE);
+	vty_out(vty, "  Mode:                   %s%s",
+		GprsCodingScheme::modeName(ms->mode()), VTY_NEWLINE);
 	vty_out(vty, "  MS class:               %d%s", ms->ms_class(), VTY_NEWLINE);
 	vty_out(vty, "  EGPRS MS class:         %d%s", ms->egprs_ms_class(), VTY_NEWLINE);
 	vty_out(vty, "  LLC queue length:       %d%s", ms->llc_queue()->size(),