diff --git a/common/utils/telnetsrv/telnetsrv_measurements.c b/common/utils/telnetsrv/telnetsrv_measurements.c
index 0fe672f02e38161c641b68effbf0547d8a404201..3148fe43059e782cf4ed773d05431d6a04f101b5 100644
--- a/common/utils/telnetsrv/telnetsrv_measurements.c
+++ b/common/utils/telnetsrv/telnetsrv_measurements.c
@@ -50,18 +50,27 @@
 #include "openair2/LAYER2/MAC/mac.h"
 #include "openair1/PHY/phy_extern.h"
 
-static telnet_measurgroupdef_t *measurgroups[TELNET_MAXMEASURGROUPS];
-static int                     telnet_num_measurgroups=0;
+void measurcmd_display_macstats(telnet_printfunc_t prnt);
+void measurcmd_display_macstats_ue(telnet_printfunc_t prnt);
+void measurcmd_display_rlcstats(telnet_printfunc_t prnt);
+static telnet_measurgroupdef_t measurgroups[] = {
+  {"enb",   GROUP_LTESTATS,0, measurcmd_display_macstats,   {NULL}},
+  {"enbues",GROUP_LTESTATS,0, measurcmd_display_macstats_ue,{NULL}}, 
+  {"rlc",   GROUP_LTESTATS,0, measurcmd_display_rlcstats,   {NULL}}, 
+};
+#define TELNET_NUM_MEASURGROUPS (sizeof(measurgroups)/sizeof(telnet_measurgroupdef_t))
+
 static int                     eNB_id =0;
-static char                    *grouptypes[] = {"ltemac","cpustats"};
+static char                    *grouptypes[] = {"ltestats","cpustats"};
+#define TELNET_NUM_MEASURTYPES (sizeof(grouptypes)/sizeof(char *))
 
 #define HDR "---------------------------------"
 
 void measurcmd_display_groups(telnet_printfunc_t prnt) {
    prnt("  %*s %10s %s\n",TELNET_MAXMEASURNAME_LEN-1,"name","type","nombre de mesures");
-   for(int i=0; i<telnet_num_measurgroups; i++)
-     prnt("%02d %*s %10s %i\n",i,TELNET_MAXMEASURNAME_LEN-1,measurgroups[i]->groupname,
-          grouptypes[measurgroups[i]->type], measurgroups[i]->size);
+   for(int i=0; i<TELNET_NUM_MEASURGROUPS; i++)
+     prnt("%02d %*s %10s %i\n",i,TELNET_MAXMEASURNAME_LEN-1,measurgroups[i].groupname,
+          grouptypes[measurgroups[i].type], measurgroups[i].size);
 } /* measurcmd_display_groups */
 
 uint64_t measurcmd_getstatvalue(telnet_ltemeasurdef_t *measur,telnet_printfunc_t prnt) {
@@ -105,7 +114,7 @@ void measurcmd_display_macstats_ue(telnet_printfunc_t prnt) {
     for (int i=0; i<UE_list->numactiveCCs[UE_id]; i++) {
       int CC_id = UE_list->ordered_CCids[i][UE_id];
       prnt("%s UE %i Id %i CCid %i %s\n",HDR,i,UE_id,CC_id,HDR);
-      eNB_UE_STATS *macstatptr = &(UE_list->eNB_UE_stats[CC_id][UE_id]);
+      eNB_UE_STATS *macuestatptr = &(UE_list->eNB_UE_stats[CC_id][UE_id]);
       telnet_ltemeasurdef_t  statsptr[]=LTEMAC_UEMEASURE;
       measurcmd_display_measures(prnt, statsptr, sizeof(statsptr)/sizeof(telnet_ltemeasurdef_t));
     }
@@ -178,19 +187,28 @@ int idx1, idx2;
   if (s>0) { 
     if ( strcmp(subcmd,"groups") == 0)
        measurcmd_display_groups(prnt);
-    else if ( strcmp(subcmd,"lte") == 0) {
-       measurcmd_display_macstats(prnt);
-       measurcmd_display_macstats_ue(prnt);
-       measurcmd_display_rlcstats(prnt);
+    else {
+       for (int i=0; i<TELNET_NUM_MEASURTYPES; i++) {
+         if(strcmp(subcmd,grouptypes[i]) == 0) {
+	   for(int j=0; j<TELNET_NUM_MEASURGROUPS; j++) {
+	     if(i == measurgroups[j].type) {
+               measurgroups[j].displayfunc(prnt);
+	     }
+	   } /* for j...*/
+         }
+       }/* for i...*/
+       for (int i=0; i<TELNET_NUM_MEASURGROUPS; i++) {
+         if(strcmp(subcmd,measurgroups[i].groupname) == 0) {
+           measurgroups[i].displayfunc(prnt);
+	 break;
+         }
+       }       
     }
-    else
-       prnt("%s: Unknown command\n",buf);
-    free(subcmd);
-    } 
+  free(subcmd);
+  } /* s>0 */
   return 0;
 } 
 
-
 /*-------------------------------------------------------------------------------------*/
 
 void add_measur_cmds(void)
diff --git a/common/utils/telnetsrv/telnetsrv_measurments.h b/common/utils/telnetsrv/telnetsrv_measurments.h
index 9b21378bd3691a7e0c6db675537d8a7be9d364c0..a3c4e0bcc9de0b0c98d6062d02b112ef79ef8d1c 100644
--- a/common/utils/telnetsrv/telnetsrv_measurments.h
+++ b/common/utils/telnetsrv/telnetsrv_measurments.h
@@ -56,12 +56,14 @@ typedef struct ltemeasurdef {
     unsigned int statemask;
 } telnet_ltemeasurdef_t;
 
-#define GROUP_LTEMACSTATS 0
+#define GROUP_LTESTATS    0
 #define GROUP_CPUSTATS    1
+typedef void(*measur_dislayfunc_t)(telnet_printfunc_t prnt);
 typedef struct mesurgroupdef {
     char groupname[TELNET_MAXMEASURNAME_LEN];
     unsigned char type;
     unsigned char size;
+    measur_dislayfunc_t displayfunc;
     union {
        telnet_cpumeasurdef_t *cpustats;
        telnet_ltemeasurdef_t *ltestats;
@@ -106,29 +108,29 @@ typedef struct mesurgroupdef {
 
 #define LTEMAC_UEMEASURE \
 { \
-  {"dlsch_mcs1",	   &(macstatptr->dlsch_mcs1),TELNET_VARTYPE_INT8,0},\
-  {"dlsch_mcs2",	   &(macstatptr->dlsch_mcs2),TELNET_VARTYPE_INT8,0},\
-  {"rbs_used",	           &(macstatptr->rbs_used),TELNET_VARTYPE_INT32,0},\
-  {"rbs_used_retx",	   &(macstatptr->rbs_used_retx),TELNET_VARTYPE_INT16,0},\
-  {"total_rbs_used",	   &(macstatptr->total_rbs_used),TELNET_VARTYPE_INT16,0},\
-  {"ncce_used",	           &(macstatptr->ncce_used),TELNET_VARTYPE_INT16,0},\
-  {"ncce_used_retx",	   &(macstatptr->ncce_used_retx),TELNET_VARTYPE_INT16,0},\
-  {"TBS",	           &(macstatptr->TBS),TELNET_VARTYPE_INT32,0},\
-  {"total_pdu_bytes",	   &(macstatptr->total_pdu_bytes),TELNET_VARTYPE_INT64,0},\
-  {"total_num_pdus",	   &(macstatptr->total_num_pdus),TELNET_VARTYPE_INT32,0},\
-  {"overhead_bytes",	   &(macstatptr->overhead_bytes),TELNET_VARTYPE_INT64,0},\
-  {"crnti",	           &(macstatptr->crnti),TELNET_VARTYPE_INT16,0},\
-  {"normalized_rx_power",  &(macstatptr->normalized_rx_power),TELNET_VARTYPE_INT32,0},\
-  {"target_rx_power",	   &(macstatptr->target_rx_power),TELNET_VARTYPE_INT32,0},\
-  {"ulsch_mcs1",	   &(macstatptr->ulsch_mcs1),TELNET_VARTYPE_INT8,0},\
-  {"ulsch_mcs2",	   &(macstatptr->ulsch_mcs2),TELNET_VARTYPE_INT8,0},\
-  {"rbs_used_rx",	   &(macstatptr->rbs_used_rx),TELNET_VARTYPE_INT32,0},\
-  {"rbs_used_retx_rx",	   &(macstatptr->rbs_used_retx_rx),TELNET_VARTYPE_INT32,0},\
-  {"total_rbs_used_rx",	   &(macstatptr->total_rbs_used_rx),TELNET_VARTYPE_INT32,0},\
-  {"ulsch_TBS",	           &(macstatptr->ulsch_TBS),TELNET_VARTYPE_INT32,0},\
-  {"total_pdu_bytes_rx",   &(macstatptr->total_pdu_bytes_rx),TELNET_VARTYPE_INT64,0},\
-  {"total_num_pdus_rx",	   &(macstatptr->total_num_pdus_rx),TELNET_VARTYPE_INT32,0},\
-  {"num_errors_rx",	   &(macstatptr->num_errors_rx),TELNET_VARTYPE_INT32,0},\
+  {"dlsch_mcs1",	   &(macuestatptr->dlsch_mcs1),TELNET_VARTYPE_INT8,0},\
+  {"dlsch_mcs2",	   &(macuestatptr->dlsch_mcs2),TELNET_VARTYPE_INT8,0},\
+  {"rbs_used",	           &(macuestatptr->rbs_used),TELNET_VARTYPE_INT32,0},\
+  {"rbs_used_retx",	   &(macuestatptr->rbs_used_retx),TELNET_VARTYPE_INT16,0},\
+  {"total_rbs_used",	   &(macuestatptr->total_rbs_used),TELNET_VARTYPE_INT16,0},\
+  {"ncce_used",	           &(macuestatptr->ncce_used),TELNET_VARTYPE_INT16,0},\
+  {"ncce_used_retx",	   &(macuestatptr->ncce_used_retx),TELNET_VARTYPE_INT16,0},\
+  {"TBS",	           &(macuestatptr->TBS),TELNET_VARTYPE_INT32,0},\
+  {"total_pdu_bytes",	   &(macuestatptr->total_pdu_bytes),TELNET_VARTYPE_INT64,0},\
+  {"total_num_pdus",	   &(macuestatptr->total_num_pdus),TELNET_VARTYPE_INT32,0},\
+  {"overhead_bytes",	   &(macuestatptr->overhead_bytes),TELNET_VARTYPE_INT64,0},\
+  {"crnti",	           &(macuestatptr->crnti),TELNET_VARTYPE_INT16,0},\
+  {"normalized_rx_power",  &(macuestatptr->normalized_rx_power),TELNET_VARTYPE_INT32,0},\
+  {"target_rx_power",	   &(macuestatptr->target_rx_power),TELNET_VARTYPE_INT32,0},\
+  {"ulsch_mcs1",	   &(macuestatptr->ulsch_mcs1),TELNET_VARTYPE_INT8,0},\
+  {"ulsch_mcs2",	   &(macuestatptr->ulsch_mcs2),TELNET_VARTYPE_INT8,0},\
+  {"rbs_used_rx",	   &(macuestatptr->rbs_used_rx),TELNET_VARTYPE_INT32,0},\
+  {"rbs_used_retx_rx",	   &(macuestatptr->rbs_used_retx_rx),TELNET_VARTYPE_INT32,0},\
+  {"total_rbs_used_rx",	   &(macuestatptr->total_rbs_used_rx),TELNET_VARTYPE_INT32,0},\
+  {"ulsch_TBS",	           &(macuestatptr->ulsch_TBS),TELNET_VARTYPE_INT32,0},\
+  {"total_pdu_bytes_rx",   &(macuestatptr->total_pdu_bytes_rx),TELNET_VARTYPE_INT64,0},\
+  {"total_num_pdus_rx",	   &(macuestatptr->total_num_pdus_rx),TELNET_VARTYPE_INT32,0},\
+  {"num_errors_rx",	   &(macuestatptr->num_errors_rx),TELNET_VARTYPE_INT32,0},\
 }
 
 #define LTE_RLCMEASURE \