diff --git a/common/utils/telnetsrv/telnetsrv.c b/common/utils/telnetsrv/telnetsrv.c
index 4e8e2c7c7fdbb48197698127685de7c45c23680c..0ce780bbcfc8e15f301f672151c36198bb68d464 100644
--- a/common/utils/telnetsrv/telnetsrv.c
+++ b/common/utils/telnetsrv/telnetsrv.c
@@ -58,7 +58,7 @@
 
 #include "telnetsrv_phycmd.h"
 #include "telnetsrv_proccmd.h"
-static char *telnet_defstatmod[] = {"softmodem","phy","loader"};
+static char *telnet_defstatmod[] = {"softmodem","phy","loader","measur"};
 static telnetsrv_params_t telnetparams;
 #define TELNETSRV_LISTENADDR 0
 #define TELNETSRV_LISTENPORT 1
@@ -500,11 +500,10 @@ int process_command(char *buf) {
       }/* else */
     }/* strncmp: module name test */
     else if (strncasecmp(modulename,"loop",4) == 0 ) {
-      int lc;
       int f = fcntl(telnetparams.new_socket,F_GETFL);
       fcntl (telnetparams.new_socket, F_SETFL, O_NONBLOCK | f);
 
-      for(lc=0; lc<telnetparams.loopcount; lc++) {
+      for(int lc=0; lc<telnetparams.loopcount; lc++) {
         char dummybuff[20];
         char tbuff[64];
         int rs;
diff --git a/common/utils/telnetsrv/telnetsrv.h b/common/utils/telnetsrv/telnetsrv.h
index 2d3ef531aee8494ad080f00f42c9b42c1934eb50..89f6a8dda11bd3180790359ae666a9b638e2269f 100644
--- a/common/utils/telnetsrv/telnetsrv.h
+++ b/common/utils/telnetsrv/telnetsrv.h
@@ -69,7 +69,8 @@ typedef struct cmddef {
 #define TELNET_VARTYPE_INT64  3
 #define TELNET_VARTYPE_STRING 4
 #define TELNET_VARTYPE_DOUBLE 5
-//#define TELNET_VARTYPE_PTR    6
+#define TELNET_VARTYPE_INT8   6
+#define TELNET_VARTYPE_UINT   7
 typedef struct variabledef {
     char varname[TELNET_CMD_MAXSIZE];
     char vartype;
diff --git a/common/utils/telnetsrv/telnetsrv_CMakeLists.txt b/common/utils/telnetsrv/telnetsrv_CMakeLists.txt
index 5dee7db4c41fef1d5c3f96b18eb770d64e044054..3a07632bfecf36a7306be40fcdd040397962a530 100644
--- a/common/utils/telnetsrv/telnetsrv_CMakeLists.txt
+++ b/common/utils/telnetsrv/telnetsrv_CMakeLists.txt
@@ -9,6 +9,7 @@ set(TELNETSRV_SOURCE
     ${TELNETROOT}/telnetsrv_phycmd.c
     ${TELNETROOT}/telnetsrv_proccmd.c
     ${TELNETROOT}/telnetsrv_loader.c
+    ${TELNETROOT}/telnetsrv_measurements.c
     )
 
 #set(TELNETSRV_ETHDEVCMD_SOURCE
diff --git a/common/utils/telnetsrv/telnetsrv_measurements.c b/common/utils/telnetsrv/telnetsrv_measurements.c
new file mode 100644
index 0000000000000000000000000000000000000000..0fe672f02e38161c641b68effbf0547d8a404201
--- /dev/null
+++ b/common/utils/telnetsrv/telnetsrv_measurements.c
@@ -0,0 +1,200 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+/*! \file common/utils/telnetsrv/telnetsrv_proccmd.c
+ * \brief: implementation of telnet commands related to this linux process
+ * \author Francois TABURET
+ * \date 2017
+ * \version 0.1
+ * \company NOKIA BellLabs France
+ * \email: francois.taburet@nokia-bell-labs.com
+ * \note
+ * \warning
+ */
+#define _GNU_SOURCE
+#include <sys/types.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+
+
+
+
+#define TELNETSERVERCODE
+#include "telnetsrv.h"
+#define TELNETSRV_MEASURMENTS_MAIN
+#include "common/utils/LOG/log.h"
+#include "common/config/config_userapi.h"
+#include "telnetsrv_measurments.h"
+#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;
+static int                     eNB_id =0;
+static char                    *grouptypes[] = {"ltemac","cpustats"};
+
+#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);
+} /* measurcmd_display_groups */
+
+uint64_t measurcmd_getstatvalue(telnet_ltemeasurdef_t *measur,telnet_printfunc_t prnt) {
+uint64_t val;
+  switch(measur->vtyp) {
+    case TELNET_VARTYPE_INT64:
+       val = (uint64_t)(*((uint64_t *)(measur->vptr)));
+       break;
+    case TELNET_VARTYPE_INT32:
+       val = (uint64_t)(*((uint32_t *)(measur->vptr)));
+       break;
+    case TELNET_VARTYPE_INT16:
+       val = (uint64_t)(*((uint16_t *)(measur->vptr)));
+       break;
+    case TELNET_VARTYPE_INT8:
+       val = (uint64_t)(*((uint8_t *)(measur->vptr)));
+       break;
+    case TELNET_VARTYPE_UINT:
+       val = (uint64_t)(*((unsigned int *)(measur->vptr)));
+       break;
+    default:
+       prnt("%s %i: unknown type \n",measur->statname,measur->vtyp);
+       val = (uint64_t)(*((uint64_t *)(measur->vptr)));
+       break;
+  }
+  return val;
+} /* measurcmd_getstatvalue */
+
+void measurcmd_display_measures(telnet_printfunc_t prnt, telnet_ltemeasurdef_t  *statsptr, int stats_size) {
+  for (int i=0; i<stats_size; i++) {
+    prnt("%*s = %15llu%s",TELNET_MAXMEASURNAME_LEN-1,statsptr[i].statname,
+ 	 measurcmd_getstatvalue(&(statsptr[i]),prnt), ((i%3)==2)?"\n":"   ");	 
+  }
+  prnt("\n\n");
+} /* measurcmd_display_measures */
+
+void measurcmd_display_macstats_ue(telnet_printfunc_t prnt) {
+  UE_list_t *UE_list = &(RC.mac[eNB_id]->UE_list);
+
+  for (int UE_id=UE_list->head; UE_id>=0; UE_id=UE_list->next[UE_id]) { 
+    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]);
+      telnet_ltemeasurdef_t  statsptr[]=LTEMAC_UEMEASURE;
+      measurcmd_display_measures(prnt, statsptr, sizeof(statsptr)/sizeof(telnet_ltemeasurdef_t));
+    }
+  }
+} /* measurcmd_display_macstats_ue */
+
+void measurcmd_display_macstats(telnet_printfunc_t prnt) {
+
+  for (int CC_id=0 ; CC_id < MAX_NUM_CCs; CC_id++) {
+    eNB_STATS *macstatptr=&(RC.mac[eNB_id]->eNB_stats[CC_id]);
+    telnet_ltemeasurdef_t  statsptr[]=LTEMAC_MEASURE;
+    prnt("%s eNB %i mac stats CC %i frame %u %s\n",
+         HDR, eNB_id, CC_id, RC.mac[eNB_id]->frame,HDR);
+    measurcmd_display_measures(prnt,statsptr,sizeof(statsptr)/sizeof(telnet_ltemeasurdef_t));
+  }
+
+} /* measurcmd_display_macstats */
+
+
+void measurcmd_display_one_rlcstat(telnet_printfunc_t prnt, int UE_id, telnet_ltemeasurdef_t *statsptr, int num_rlcmeasure, unsigned int *rlcstats, 
+                                   char * rbid_str, protocol_ctxt_t *ctxt, const srb_flag_t srb_flagP, const rb_id_t rb_idP)
+                                   
+{
+    int rlc_status = rlc_stat_req(ctxt,srb_flagP,rb_idP,
+				  rlcstats,   rlcstats+1, rlcstats+2, rlcstats+3, rlcstats+4, rlcstats+5,
+				  rlcstats+6, rlcstats+7, rlcstats+8, rlcstats+9, rlcstats+10, rlcstats+11,
+				  rlcstats+12, rlcstats+13, rlcstats+14, rlcstats+15, rlcstats+16, rlcstats+17,
+				  rlcstats+18, rlcstats+19, rlcstats+20, rlcstats+21, rlcstats+22, rlcstats+23,
+				  rlcstats+24, rlcstats+25, rlcstats+26, rlcstats+27);
+      
+    if (rlc_status == RLC_OP_STATUS_OK) {
+      prnt("%s UE %i RLC %s mode %s %s\n",HDR,UE_id, rbid_str,
+           (rlcstats[0]==RLC_MODE_AM)? "AM": (rlcstats[0]==RLC_MODE_UM)?"UM":"NONE",HDR); 
+      measurcmd_display_measures(prnt, statsptr, num_rlcmeasure);
+    }
+} /* status measurcmd_rlc_stat_req */
+
+
+void measurcmd_display_rlcstats(telnet_printfunc_t prnt) {
+  protocol_ctxt_t      ctxt;
+  UE_list_t *UE_list = &(RC.mac[eNB_id]->UE_list);
+  telnet_ltemeasurdef_t  statsptr[]=LTE_RLCMEASURE;
+  int num_rlcmeasure = sizeof(statsptr)/sizeof(telnet_ltemeasurdef_t );
+  unsigned int *rlcstats = malloc(num_rlcmeasure*sizeof(unsigned int)); 
+  eNB_MAC_INST *eNB = RC.mac[eNB_id];
+
+  for(int i=0; i <num_rlcmeasure ;i++) {
+    statsptr[i].vptr = rlcstats + i;
+  }   
+  for (int UE_id=UE_list->head; UE_id>=0; UE_id=UE_list->next[UE_id]) {
+    #define NB_eNB_INST 1
+    PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt,eNB_id, ENB_FLAG_YES,UE_list->eNB_UE_stats[0][UE_id].crnti, 
+			  	   eNB->frame,eNB->subframe,eNB_id);
+    measurcmd_display_one_rlcstat(prnt, UE_id, statsptr, num_rlcmeasure, rlcstats, "DCCH", &ctxt, SRB_FLAG_YES, DCCH);
+    measurcmd_display_one_rlcstat(prnt, UE_id, statsptr, num_rlcmeasure, rlcstats, "DTCH", &ctxt, SRB_FLAG_NO,  DTCH-2);
+  }
+} /* measurcmd_display_macstats_ue */
+
+int measurcmd_show(char *buf, int debug, telnet_printfunc_t prnt)
+{
+char *subcmd=NULL;
+int idx1, idx2;
+
+  if (debug > 0)
+       prnt(" measurcmd_show received %s\n",buf);
+//   char tmp[20480];
+//   dump_eNB_l2_stats(tmp, 0);
+//   prnt("%s\n",tmp);
+ int s = sscanf(buf,"%ms %i-%i\n",&subcmd, &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
+       prnt("%s: Unknown command\n",buf);
+    free(subcmd);
+    } 
+  return 0;
+} 
+
+
+/*-------------------------------------------------------------------------------------*/
+
+void add_measur_cmds(void)
+{
+   add_telnetcmd("measur",measur_vardef,measur_cmdarray);
+
+}
diff --git a/common/utils/telnetsrv/telnetsrv_measurments.h b/common/utils/telnetsrv/telnetsrv_measurments.h
new file mode 100644
index 0000000000000000000000000000000000000000..9b21378bd3691a7e0c6db675537d8a7be9d364c0
--- /dev/null
+++ b/common/utils/telnetsrv/telnetsrv_measurments.h
@@ -0,0 +1,178 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+
+/*! \file common/utils/telnetsrv/telnetsrv_proccmd.h
+ * \brief: Include file defining telnet commands related to this linux process
+ * \author Francois TABURET
+ * \date 2017
+ * \version 0.1
+ * \company NOKIA BellLabs France
+ * \email: francois.taburet@nokia-bell-labs.com
+ * \note
+ * \warning
+ */
+#include <dlfcn.h>
+#include "telnetsrv.h"
+#include "openair1/PHY/defs_eNB.h"
+#ifdef TELNETSRV_MEASURMENTS_MAIN
+
+
+#define TELNET_MAXMEASURNAME_LEN 30
+#define TELNET_MAXMEASURGROUPS 10
+
+telnetshell_vardef_t measur_vardef[] = {
+{"",0,NULL}
+};
+
+typedef struct cpumeasurdef {
+    char statname[TELNET_MAXMEASURNAME_LEN];
+    time_stats_t *astatptr;
+    unsigned int statemask;
+} telnet_cpumeasurdef_t; 
+
+typedef struct ltemeasurdef {
+    char statname[TELNET_MAXMEASURNAME_LEN];
+    void     *vptr;
+    char     vtyp;
+    unsigned int statemask;
+} telnet_ltemeasurdef_t;
+
+#define GROUP_LTEMACSTATS 0
+#define GROUP_CPUSTATS    1
+typedef struct mesurgroupdef {
+    char groupname[TELNET_MAXMEASURNAME_LEN];
+    unsigned char type;
+    unsigned char size;
+    union {
+       telnet_cpumeasurdef_t *cpustats;
+       telnet_ltemeasurdef_t *ltestats;
+    };
+}telnet_measurgroupdef_t;
+
+
+
+#define LTEMAC_MEASURE \
+{ \
+  {"total_num_bcch_pdu",   &(macstatptr->total_num_bcch_pdu),TELNET_VARTYPE_INT32,0},\
+  {"bcch_buffer",	   &(macstatptr->bcch_buffer),TELNET_VARTYPE_INT32,0},\
+  {"total_bcch_buffer",	   &(macstatptr->total_bcch_buffer),TELNET_VARTYPE_INT32,0},\
+  {"bcch_mcs",	           &(macstatptr->bcch_mcs),TELNET_VARTYPE_INT32,0},\
+  {"total_num_ccch_pdu",   &(macstatptr->total_num_ccch_pdu),TELNET_VARTYPE_INT32,0},\
+  {"ccch_buffer",	   &(macstatptr->ccch_buffer),TELNET_VARTYPE_INT32,0},\
+  {"total_ccch_buffer",	   &(macstatptr->total_ccch_buffer),TELNET_VARTYPE_INT32,0},\
+  {"ccch_mcs",	           &(macstatptr->ccch_mcs),TELNET_VARTYPE_INT32,0},\
+  {"total_num_pcch_pdu",   &(macstatptr->total_num_pcch_pdu),TELNET_VARTYPE_INT32,0},\
+  {"pcch_buffer",	   &(macstatptr->pcch_buffer),TELNET_VARTYPE_INT32,0},\
+  {"total_pcch_buffer",	   &(macstatptr->total_pcch_buffer),TELNET_VARTYPE_INT32,0},\
+  {"pcch_mcs",	           &(macstatptr->pcch_mcs),TELNET_VARTYPE_INT32,0},\
+  {"num_dlactive_UEs",	   &(macstatptr->num_dlactive_UEs),TELNET_VARTYPE_INT16,0},\
+  {"available_prbs",	   &(macstatptr->available_prbs),TELNET_VARTYPE_INT16,0},\
+  {"total_available_prbs", &(macstatptr->total_available_prbs),TELNET_VARTYPE_INT32,0},\
+  {"available_ncces",	   &(macstatptr->available_ncces),TELNET_VARTYPE_INT16,0},\
+  {"dlsch_bitrate",	   &(macstatptr->dlsch_bitrate),TELNET_VARTYPE_INT32,0},\
+  {"dlsch_bytes_tx",	   &(macstatptr->dlsch_bytes_tx),TELNET_VARTYPE_INT32,0},\
+  {"dlsch_pdus_tx",	   &(macstatptr->dlsch_pdus_tx),TELNET_VARTYPE_INT32,0},\
+  {"total_dlsch_bitrate",  &(macstatptr->total_dlsch_bitrate),TELNET_VARTYPE_INT32,0},\
+  {"total_dlsch_bytes_tx", &(macstatptr->total_dlsch_bytes_tx),TELNET_VARTYPE_INT32,0},\
+  {"total_dlsch_pdus_tx",  &(macstatptr->total_dlsch_pdus_tx),TELNET_VARTYPE_INT32,0},\
+  {"ulsch_bitrate",	   &(macstatptr->ulsch_bitrate),TELNET_VARTYPE_INT32,0},\
+  {"ulsch_bytes_rx",	   &(macstatptr->ulsch_bytes_rx),TELNET_VARTYPE_INT32,0},\
+  {"ulsch_pdus_rx",	   &(macstatptr->ulsch_pdus_rx),TELNET_VARTYPE_INT32,0},\
+  {"total_ulsch_bitrate",  &(macstatptr->total_ulsch_bitrate),TELNET_VARTYPE_INT32,0},\
+  {"total_ulsch_bytes_rx", &(macstatptr->total_ulsch_bytes_rx),TELNET_VARTYPE_INT32,0},\
+  {"total_ulsch_pdus_rx",  &(macstatptr->total_ulsch_pdus_rx),TELNET_VARTYPE_INT32,0},\
+  {"sched_decisions",	   &(macstatptr->sched_decisions),TELNET_VARTYPE_INT32,0},\
+  {"missed_deadlines",	   &(macstatptr->missed_deadlines),TELNET_VARTYPE_INT32,0},\
+}
+
+#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},\
+}
+
+#define LTE_RLCMEASURE \
+{ \
+  {"rlc_mode",                        NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_pdcp_sdu",                     NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_pdcp_bytes",                   NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_pdcp_sdu_discarded",           NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_pdcp_bytes_discarded",         NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_data_pdu",                     NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_data_bytes",                   NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_retransmit_pdu_by_status",     NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_retransmit_bytes_by_status",   NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_retransmit_pdu",               NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_retransmit_bytes",             NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_control_pdu",                  NULL, TELNET_VARTYPE_UINT, 0},\
+  {"tx_control_bytes",                NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_pdcp_sdu",                     NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_pdcp_bytes",                   NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_data_pdus_duplicate",          NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_data_bytes_duplicate",         NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_data_pdu",                     NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_data_bytes",                   NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_data_pdu_dropped",             NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_data_bytes_dropped",           NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_data_pdu_out_of_window",       NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_data_bytes_out_of_window",     NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_control_pdu",                  NULL, TELNET_VARTYPE_UINT, 0},\
+  {"rx_control_bytes",                NULL, TELNET_VARTYPE_UINT, 0},\
+  {"timer_reorder_tout",              NULL, TELNET_VARTYPE_UINT, 0},\
+  {"timer_poll_retrans_tout",         NULL, TELNET_VARTYPE_UINT, 0},\
+  {"timer_status_prohibit_tout",      NULL, TELNET_VARTYPE_UINT, 0},\
+}
+
+#define MACSTATS_NAME(valptr) #valptr
+#define LTEMAC_MEASURGROUP_NAME  "ltemac"
+#define PHYCPU_MEASURGROUP_NAME  "phycpu"
+
+int measurcmd_show(char *buf, int debug, telnet_printfunc_t prnt);
+telnetshell_cmddef_t measur_cmdarray[] = {
+   {"show", LTEMAC_MEASURGROUP_NAME "|" PHYCPU_MEASURGROUP_NAME , measurcmd_show},
+   {"","",NULL},
+};
+
+#else
+extern void add_measur_cmds(void);
+#endif  /* TELNETSRV_MEASURCMD_MAIN */