summaryrefslogtreecommitdiffstats
path: root/data/mnet/GP10/Host/cli
diff options
context:
space:
mode:
Diffstat (limited to 'data/mnet/GP10/Host/cli')
-rw-r--r--data/mnet/GP10/Host/cli/Makefile16
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_adjcell.h197
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_adjcell_exit.h12
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_bts_basic.h225
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_bts_exit.h11
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_bts_options.h169
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_ccch.h189
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_ccch_exit.h11
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_cell_exit.h11
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_mspwr_ctrl.h229
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_proto_exit.h11
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_sys_feat.h86
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_sys_info.h297
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_timers.h190
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_trx.h144
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_trx_exit.h11
-rw-r--r--data/mnet/GP10/Host/cli/include/cfg_voip.h88
-rw-r--r--data/mnet/GP10/Host/cli/include/exec_debug_gp10.h212
-rw-r--r--data/mnet/GP10/Host/cli/include/exec_diag_cmd.h363
-rw-r--r--data/mnet/GP10/Host/cli/include/exec_module.h192
-rw-r--r--data/mnet/GP10/Host/cli/include/exec_show_conf.h10
-rw-r--r--data/mnet/GP10/Host/cli/include/exec_show_mod.h119
-rw-r--r--data/mnet/GP10/Host/cli/src/Makefile52
-rw-r--r--data/mnet/GP10/Host/cli/src/adjcell_chain.c215
-rw-r--r--data/mnet/GP10/Host/cli/src/bts_basic_chain.c230
-rw-r--r--data/mnet/GP10/Host/cli/src/ccch_chain.c137
-rw-r--r--data/mnet/GP10/Host/cli/src/diag_chain.c336
-rw-r--r--data/mnet/GP10/Host/cli/src/proto_chain.c150
-rw-r--r--data/mnet/GP10/Host/cli/src/sys_info_chain.c871
-rw-r--r--data/mnet/GP10/Host/cli/src/trx_chain.c167
30 files changed, 4951 insertions, 0 deletions
diff --git a/data/mnet/GP10/Host/cli/Makefile b/data/mnet/GP10/Host/cli/Makefile
new file mode 100644
index 0000000..38c754b
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/Makefile
@@ -0,0 +1,16 @@
+##########################################################
+#
+# (c) Copyright Cisco 2000
+# All Rights Reserved
+#
+##########################################################
+
+SUBDIRS= src
+
+# TOP_OF_VOB must be defined before including l3defs.mk
+TOP_OF_VOB = ..\..
+
+include $(TOP_OF_VOB)\l3defs.mk
+
+copyall:
+ $(CP) bin\*.out $(TOP_OF_VOB)\bin\*.out \ No newline at end of file
diff --git a/data/mnet/GP10/Host/cli/include/cfg_adjcell.h b/data/mnet/GP10/Host/cli/include/cfg_adjcell.h
new file mode 100644
index 0000000..63c707b
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_adjcell.h
@@ -0,0 +1,197 @@
+
+#define CELL_SELECTED 1
+#define CELL_SYNCHRONISED 2
+
+#define BSIC_NCC 0
+#define BSIC_BCC 1
+
+
+/*
+ * enum to identify adjacent cell commands
+ */
+
+enum {
+ ADJ_CELL_RES_BCCH,
+ ADJ_CELL_RES,
+ ADJ_CELL_CC_VALUE,
+ ADJ_CELL_GI_VALUE,
+ ADJ_CELL_BCCH,
+ ADJ_CELL_SELECTION
+};
+
+/*
+ * codes to identify a cell
+ */
+enum {
+ GI_MCC,
+ GI_MNC,
+ GI_LAC,
+ GI_CI
+};
+
+/*
+ * bsic options
+ */
+static keyword_options bsic_options[] = {
+ { "ncc", "Network color code for PLMN",BSIC_NCC},
+ { "bcc", "Base station color code",BSIC_BCC},
+ {NULL,NULL,0}
+};
+
+/*
+ * selection options
+ */
+static keyword_options selection_options[] = {
+ { "selected", "Adjacent cell is active", CELL_SELECTED},
+ { "synchronised", "Origin cell is synchronised with the adjacent cell",CELL_SYNCHRONISED},
+ {NULL,NULL,0}
+};
+
+/*
+ * global identity options
+ */
+static keyword_options gi_options[] = {
+ /* { "mcc", "Mobile country code",GI_MCC},
+ { "mnc", "Mobile network code",GI_MNC},*/
+ { "lac", "Location area code", GI_LAC},
+ { "ci", "Cell identifier", GI_CI},
+ {NULL,NULL,0}
+};
+
+/*
+ * reselection bcch-frequency <0-1023>
+ */
+
+
+EOLS (bcch_freq_val_eol,adj_cell_parameters,ADJ_CELL_RES_BCCH);
+
+NUMBER (bcch_freq_value,bcch_freq_val_eol,no_alt,OBJ(int,1),0,1023,
+ "Frequncy value");
+NVGENS (bcch_freq_value_nv,bcch_freq_value,adj_cell_parameters,ADJ_CELL_RES_BCCH);
+
+NOPREFIX (bcch_freq_value_no,bcch_freq_value_nv,bcch_freq_val_eol);
+
+KEYWORD (res_bcch_freq,bcch_freq_value_no,no_alt,"bcch-frequency",
+ "The ARFCN of the BCCH for the adjacent cell",PRIV_CONF);
+
+
+/*
+ * reselection selected
+ */
+
+EOLS (res_index_eol,adj_cell_parameters,ADJ_CELL_RES);
+
+KEYWORD (res_index_sel,res_index_eol,res_bcch_freq,"selected",
+ "Select the adjacent cell to identify an active adjacent cell",PRIV_CONF);
+
+KEYWORD (cfg_reselection,res_index_sel,no_alt,"reselection",
+ "Parameters to identify the adjacent cells used for cell reselection",PRIV_CONF);
+
+/*
+ * handover bsic {NCC | BCC} <0-7>
+ */
+
+EOLS (cc_eol,adj_cell_parameters,ADJ_CELL_CC_VALUE);
+
+NUMBER (cc_value,cc_eol,no_alt,OBJ(int,2),0,7,
+ "Value of color code");
+
+NOPREFIX (cc_value_no,cc_value,cc_eol);
+
+KEYWORD_OPTIONS (cfg_cc,cc_value_no,no_alt,bsic_options,
+ OBJ(int,1),PRIV_CONF,0);
+
+NVGENS (cc_value_nv,cfg_cc,adj_cell_parameters,ADJ_CELL_CC_VALUE);
+
+KEYWORD (cell_bsic,cc_value_nv,no_alt,"bsic",
+ "Configure base station identity code elements",PRIV_CONF);
+
+
+/*
+ * handover cell-global-identity {mcc | mnc | lac | ci}<0-65535>
+ */
+
+EOLS (gi_cc_eol,adj_cell_parameters,ADJ_CELL_GI_VALUE);
+
+NUMBER (gi_cc_value,gi_cc_eol,no_alt,OBJ(int,2),0,65535,
+ "Value of code");
+
+NVGENS(gi_cc_value_nv,gi_cc_value,adj_cell_parameters,ADJ_CELL_GI_VALUE);
+
+NOPREFIX(cfg_gi_cc_no,gi_cc_value_nv,gi_cc_eol);
+
+ /****mnc*****/
+NUMBER(cfg_mnc_value,gi_cc_eol,no_alt,OBJ(int,2),1,99,"Mobile network code");
+NVGENS(cfg_mnc_value_nv,cfg_mnc_value,adj_cell_parameters,ADJ_CELL_GI_VALUE);
+NOPREFIX(cfg_mnc_no,cfg_mnc_value_nv,gi_cc_eol);
+KEYWORD(cell_gi_mnc,cfg_mnc_no,no_alt,
+ "mnc","Mobile network code",PRIV_CONF);
+ /***mcc***/
+NUMBER(cfg_mcc_value,gi_cc_eol,no_alt,OBJ(int,2),1,999,"Mobile country code");
+NVGENS(cfg_mcc_value_nv,cfg_mcc_value,adj_cell_parameters,ADJ_CELL_GI_VALUE);
+NOPREFIX(cfg_mcc_no,cfg_mcc_value_nv,gi_cc_eol);
+KEYWORD(cell_gi_mcc,cfg_mcc_no,cell_gi_mnc,
+ "mcc","Mobile country code",PRIV_CONF);
+ /*************/
+
+KEYWORD_OPTIONS (cfg_gi_cc,cfg_gi_cc_no,cell_gi_mcc,gi_options,
+ OBJ(int,1),PRIV_CONF,0);
+
+KEYWORD (cell_gi,cfg_gi_cc,cell_bsic,"cell-global-identity",
+ "Configure parameters to identify GP10s adjacent cell",PRIV_CONF);
+
+/*
+ * handover bcch-frequency <0-1023> handover-margin <0-24>
+ * max-tx-power <0-33> min-rx-level <0-63>
+ */
+
+
+EOLS (bcch_freq_eol,adj_cell_parameters,ADJ_CELL_BCCH);
+
+NUMBER (rx_level_value,bcch_freq_eol,no_alt,OBJ(int,4),0,63,
+ "Minimum signal level");
+
+KEYWORD (rx_level,rx_level_value,no_alt,"min-rx-level",
+ "Min received signal level from adjacent cell to consider handover for MS",PRIV_CONF);
+
+
+NUMBER (tx_power_value,rx_level,no_alt,OBJ(int,3),0,33,
+ "For PCS 1800 radio max is 30 and for PCS 1900 radio max is 33");
+
+KEYWORD (tx_power,tx_power_value,no_alt,"max-tx-power",
+ "Max transmit power a MS may use in adjacent cell",PRIV_CONF);
+
+NUMBER (margin_value,tx_power,no_alt,OBJ(int,2),0,24,
+ "Enter the handover margin value");
+
+KEYWORD (margin,margin_value,no_alt,"handover-margin",
+ "Threshold value used to prevent repetitive handovers between adjacent cells",PRIV_CONF);
+
+
+NUMBER (freq_value,margin,no_alt,OBJ(int,1),0,1023,
+ "Enter the Absolute Radio Frequency Channel Number value");
+
+NVGENS(freq_value_nv,freq_value,adj_cell_parameters,ADJ_CELL_BCCH);
+
+KEYWORD (bcch_freq,freq_value_nv,cell_gi,"bcch-frequency",
+ "The ARFCN of the BCCH for the adjacent cell",PRIV_CONF);
+
+
+/*
+ * handover {selected | synchronised}
+ */
+
+
+EOLS (index_eol,adj_cell_parameters,ADJ_CELL_SELECTION);
+
+
+KEYWORD_OPTIONS(index_sel,index_eol,bcch_freq,selection_options,OBJ(int,1),
+ PRIV_CONF,0);
+NVGENS (index_sel_nv,index_sel,adj_cell_parameters,ADJ_CELL_SELECTION);
+
+KEYWORD(cfg_handover,index_sel_nv,cfg_reselection,"handover",
+ "Configure parameters to identify cells around the cell created by GP10",PRIV_CONF);
+
+
+#undef ALTERNATE
+#define ALTERNATE cfg_handover
diff --git a/data/mnet/GP10/Host/cli/include/cfg_adjcell_exit.h b/data/mnet/GP10/Host/cli/include/cfg_adjcell_exit.h
new file mode 100644
index 0000000..3326347
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_adjcell_exit.h
@@ -0,0 +1,12 @@
+
+EOLS (gp10_adjcell_end_eol,exit_config_command,CMD_END);
+
+KEYWORD (gp10_adjcell_end,gp10_adjcell_end_eol,no_alt,"end",
+ "Exit gp10 config-adjcell mode to exec mode",PRIV_CONF);
+
+EOLNS (gp10_adjcell_exit_eol,gp10_sub_config_exit);
+KEYWORD (gp10_adjcell_exit, gp10_adjcell_exit_eol,gp10_adjcell_end, "exit",
+ "Exit gp10 config-adjcell mode", PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE gp10_adjcell_exit
diff --git a/data/mnet/GP10/Host/cli/include/cfg_bts_basic.h b/data/mnet/GP10/Host/cli/include/cfg_bts_basic.h
new file mode 100644
index 0000000..fe9cb1f
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_bts_basic.h
@@ -0,0 +1,225 @@
+
+#define BSIC_NCC 0
+#define BSIC_BCC 1
+
+/*
+ * enums for command identification
+ */
+
+enum {
+ BTS_RECV_LEVEL,
+ BTS_LINK_TIMEOUT,
+ BTS_PER_NCC_ALL,
+ BTS_PER_NCC,
+ BTS_PHY_VALUE,
+ BTS_RES_VALUE,
+ BTS_GI_VALUE,
+ BTS_CC_VALUE,
+ BTS_ADMIN_STATE
+};
+
+
+/*
+ * enums for options
+ */
+
+enum {
+ STATE_LOCKED,
+ STATE_UNLOCKED,
+ STATE_SHUTDOWN
+};
+
+enum {
+ GI_MCC,
+ GI_MNC,
+ GI_LAC,
+ GI_CI
+};
+
+/*
+ * administrative state options
+ */
+
+static keyword_options admin_state_options[] = {
+ { "locked", "Cannot be accessed by mobile stations", STATE_LOCKED},
+ { "unlocked", "Can be accessed by mobile stations",STATE_UNLOCKED},
+ { "shutting-down","GP10 is in the process of becoming locked",STATE_SHUTDOWN},
+ {NULL,NULL,0}
+};
+
+/*
+ * bsic options
+ */
+static keyword_options bsic_options[] = {
+ { "ncc", "Network color code for PLMN",BSIC_NCC},
+ { "bcc", "Base station color code",BSIC_BCC},
+ {NULL,NULL,0}
+};
+
+/*
+ * options for global identity
+ */
+
+static keyword_options gi_options[] = {
+ /* { "mcc", "Mobile country code",GI_MCC},
+ { "mnc", "Mobile network code",GI_MNC},*/
+ { "lac", "Location area code", GI_LAC},
+ { "ci", "Cell identifier", GI_CI},
+ {NULL,NULL,0}
+};
+
+
+/*
+ *receive-level-access <0-63>
+ */
+
+EOLS (recv_level_eol,bts_basic_parameters,BTS_RECV_LEVEL);
+
+NUMBER (recv_level,recv_level_eol,no_alt,OBJ(int,1),0,63,
+ "Enter access level value");
+
+NVGENS (recv_level_nv,recv_level,bts_basic_parameters,BTS_RECV_LEVEL);
+
+NOPREFIX (recv_level_no,recv_level_nv,recv_level_eol);
+
+KEYWORD (cfg_recv_level_access,recv_level_no,no_alt,"receive-level-access",
+ "Min receive level at which a MS can access the system",PRIV_CONF);
+
+/*
+ * radio-link-timeout <0-15>
+ */
+
+EOLS (timeout_value_eol,bts_basic_parameters,BTS_LINK_TIMEOUT);
+
+NUMBER (timeout_value,timeout_value_eol,no_alt,OBJ(int,1),0,15,
+ "Enter timeout value");
+
+NVGENS (timeout_value_nv,timeout_value,bts_basic_parameters,BTS_LINK_TIMEOUT);
+
+NOPREFIX (timeout_value_no,timeout_value_nv,timeout_value_eol);
+
+KEYWORD (cfg_link_timeout,timeout_value_no,cfg_recv_level_access,"radio-link-timeout",
+ "Max value of radio link counter need to detect radio link failure",PRIV_CONF);
+
+
+/*
+ * plmn-permitted-ncc {all | 0-7}
+ */
+
+EOLS (ncc_all_eol,bts_basic_parameters,BTS_PER_NCC_ALL);
+
+KEYWORD (ncc_all,ncc_all_eol,no_alt,"all",
+ "Select all the ncc to use",PRIV_CONF);
+
+
+EOLS (ncc_eol,bts_basic_parameters,BTS_PER_NCC);
+
+NUMBER (per_ncc_value,ncc_eol,ncc_all,OBJ(int,1),0,7,
+ "Enter the ncc MS will use");
+
+NVGENS (per_ncc_value_nv,per_ncc_value,bts_basic_parameters,BTS_PER_NCC);
+
+KEYWORD (cfg_per_ncc,per_ncc_value_nv,cfg_link_timeout,"plmn-permitted-ncc",
+ "Network color codes used by the network",PRIV_CONF);
+
+/*
+ * physical-repetition <0-7>
+ */
+
+EOLS (phy_eol,bts_basic_parameters,BTS_PHY_VALUE);
+
+NUMBER (phy_value,phy_eol,no_alt,OBJ(int,1),0,7,
+ "Number of repetitions");
+NVGENS (phy_value_nv,phy_value,bts_basic_parameters,BTS_PHY_VALUE);
+
+NOPREFIX (phy_value_no,phy_value_nv,phy_eol);
+
+KEYWORD (cfg_phy_rep,phy_value_no,cfg_per_ncc,"physical-repetition",
+ "Max number of times GP10 should send the physical information to MSs",PRIV_CONF);
+
+/*
+ * cell-reselect-hysteresis <0-7>
+ */
+
+EOLS (res_eol,bts_basic_parameters,BTS_RES_VALUE);
+
+NUMBER (res_value,res_eol,no_alt,OBJ(int,1),0,7,
+ "Value of radio frequency power level");
+
+NVGENS (res_value_nv,res_value,bts_basic_parameters,BTS_RES_VALUE);
+
+NOPREFIX (res_value_no,res_value_nv,res_eol);
+
+KEYWORD (cfg_cell_res,res_value_no,cfg_phy_rep,"cell-reselect-hysteresis",
+ "Power level hysteresis required for cell reselction",PRIV_CONF);
+
+
+
+/*
+ * cell-global-identity {mcc | mnc | lac | ci} <0-65535>
+ */
+
+EOLS (gi_cc_eol,bts_basic_parameters,BTS_GI_VALUE);
+
+NUMBER (gi_cc_value,gi_cc_eol,no_alt,OBJ(int,2),0,65535,
+ "Value of code");
+
+NOPREFIX (gi_cc_value_no,gi_cc_value,gi_cc_eol);
+
+ /****mnc*****/
+NUMBER(cfg_mnc_value,gi_cc_eol,no_alt,OBJ(int,2),1,99,"Mobile network code");
+NOPREFIX(cfg_mnc_no,cfg_mnc_value,gi_cc_eol);
+KEYWORD(cell_gi_mnc,cfg_mnc_no,no_alt,
+ "mnc","Mobile network code",PRIV_CONF);
+ /***mcc***/
+NUMBER(cfg_mcc_value,gi_cc_eol,no_alt,OBJ(int,2),1,999,"Mobile country code");
+NOPREFIX(cfg_mcc_no,cfg_mcc_value,gi_cc_eol);
+KEYWORD(cell_gi_mcc,cfg_mcc_no,cell_gi_mnc,
+ "mcc","Mobile country code",PRIV_CONF);
+ /********/
+KEYWORD_OPTIONS (cfg_gi_cc,gi_cc_value_no,cell_gi_mcc,gi_options,
+ OBJ(int,1),PRIV_CONF,0);
+
+NVGENS (gi_cc_value_nv,cfg_gi_cc,bts_basic_parameters,BTS_GI_VALUE);
+
+KEYWORD (cfg_gi,gi_cc_value_nv,cfg_cell_res,"cell-global-identity",
+ "Configure parameters to identify GP10s cell",PRIV_CONF);
+
+
+/*
+ * bsic {ncc | bcc} <value>
+ */
+
+EOLS (cc_eol,bts_basic_parameters,BTS_CC_VALUE);
+
+NUMBER (cc_value,cc_eol,no_alt,OBJ(int,2),0,7,
+ "Value of color code");
+
+NOPREFIX (cc_value_no,cc_value,cc_eol);
+
+KEYWORD_OPTIONS (cfg_cc,cc_value_no,no_alt,bsic_options,
+ OBJ(int,1),PRIV_CONF,0);
+
+NVGENS (cc_value_nv,cfg_cc,bts_basic_parameters,BTS_CC_VALUE);
+
+KEYWORD (cfg_bsic,cc_value_nv,cfg_gi,"bsic",
+ "Configure base station identity code elements",PRIV_CONF);
+
+
+/*
+ * administrative-state [{locked | unlocked | shutdown}]
+ */
+
+EOLS (admin_state_eol,bts_basic_parameters,BTS_ADMIN_STATE);
+
+KEYWORD_OPTIONS (admin_state,admin_state_eol,no_alt,admin_state_options,
+ OBJ(int,1),PRIV_CONF,0);
+NVGENS (admin_state_nv,admin_state,bts_basic_parameters,BTS_ADMIN_STATE);
+
+NOPREFIX (admin_state_no,admin_state_nv,admin_state_eol);
+
+KEYWORD (cfg_bts_basic,admin_state_no,cfg_bsic,"administrative-state",
+ "State in which to place GP10",PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE cfg_bts_basic
diff --git a/data/mnet/GP10/Host/cli/include/cfg_bts_exit.h b/data/mnet/GP10/Host/cli/include/cfg_bts_exit.h
new file mode 100644
index 0000000..d502054
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_bts_exit.h
@@ -0,0 +1,11 @@
+EOLS (gp10_cell_bts_end_eol,exit_config_command,CMD_END);
+
+KEYWORD (gp10_cell_bts_end,gp10_cell_bts_end_eol,no_alt,"end",
+ "Exit gp10 bts-basic mode to exec mode",PRIV_CONF);
+
+EOLNS (gp10_cell_bts_exit_eol,gp10_cell_sub_config_exit);
+KEYWORD (gp10_cell_bts_exit, gp10_cell_bts_exit_eol, gp10_cell_bts_end, "exit",
+ "Exit gp10 bts-basic mode", PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE gp10_cell_bts_exit
diff --git a/data/mnet/GP10/Host/cli/include/cfg_bts_options.h b/data/mnet/GP10/Host/cli/include/cfg_bts_options.h
new file mode 100644
index 0000000..89b1da2
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_bts_options.h
@@ -0,0 +1,169 @@
+/*
+ * enums for command identification
+ */
+
+enum {
+ IMSI_ATTACH,
+ CELL_BARRED,
+ DOWNLINK_DTX,
+ IMSI_FOR_EMER,
+ RESTRICTED_EMER_CALL
+};
+
+enum {
+ UPDATE_INTERVAL,
+ ACCESS_CLASS,
+ DTX_MODE_OPTIONS,
+ ENABLE_OPTIONS
+};
+
+
+enum {
+ MAY_USE_DTX,
+ SHALL_USE_DTX,
+ SHALL_NOT_USE_DTX,
+};
+
+
+enum {
+ CFG_CELL_CCCH,
+ CFG_CELL_TRX,
+ CFG_CELL_BTS
+};
+/*
+ *bts enable options
+ */
+
+static keyword_options bts_enable_options[] = {
+ { "imsi-attach", "Enable IMSI attach/detach procedure in the cell",IMSI_ATTACH},
+ { "cell-barred", "Enable barring of MS camping on a cell",CELL_BARRED},
+ {"downlink-dtx","Enable availability of downlink discontinuous transmission",DOWNLINK_DTX},
+ {"imsi-for-emergency","Enable requirement of IMSI for MS to make emergency call",
+ IMSI_FOR_EMER},
+ {"restricted-emergency-call","Enable emergency calls restricted to MS from IMSI"
+ "class 11 to 15",RESTRICTED_EMER_CALL},
+ {NULL,NULL,0}
+};
+
+
+/*
+ * dtx mode options
+ */
+
+static keyword_options dtx_mode_options[] = {
+ { "ms-shall-use-dtx","MS shall use dtx for the uplink",SHALL_USE_DTX},
+ { "ms-may-use-dtx","MS may use dtx for the uplink",MAY_USE_DTX},
+ { "ms-shall-not-use-dtx","MS shall not use dtx for the uplink",SHALL_NOT_USE_DTX},
+ {NULL,NULL,0}
+};
+
+
+
+/*
+ * ccch-config
+ */
+
+EOLS (cfg_ccch_sub_eol,gp10_cell_subconfig_cmds,CFG_CELL_CCCH);
+
+NVGENS (cfg_ccch_sub_nv,cfg_ccch_sub_eol,gp10_cell_subconfig_cmds,CFG_CELL_CCCH);
+
+KEYWORD (cfg_bts_ccch,cfg_ccch_sub_nv,no_alt,"ccch-config",
+ "Configure bts ccch parameters",PRIV_CONF);
+
+/*
+ * bts-basic
+ */
+
+EOLS (cfg_bts_sub_eol,gp10_cell_subconfig_cmds,CFG_CELL_BTS);
+
+NVGENS (cfg_bts_sub_nv,cfg_bts_sub_eol,gp10_cell_subconfig_cmds,CFG_CELL_BTS);
+
+KEYWORD (cfg_bts_sub,cfg_bts_sub_nv,cfg_bts_ccch,"bts-basic",
+ "Configure bts basic parameters",PRIV_CONF);
+
+
+/*
+ * transceiver
+ */
+
+EOLS (cfg_sub_trx_num_eol,gp10_cell_subconfig_cmds,CFG_CELL_TRX);
+
+NUMBER (cfg_sub_trx_num,cfg_sub_trx_num_eol,no_alt,OBJ(int,1),
+ 0,1,"Enter transceiver number");
+
+NVGENS (cfg_sub_trx_nv,cfg_sub_trx_num,gp10_cell_subconfig_cmds,CFG_CELL_TRX);
+
+KEYWORD (cfg_trx_sub,cfg_sub_trx_nv,cfg_bts_sub,"transceiver",
+ "Configure transceiver parameters",PRIV_CONF);
+
+
+/*
+ *bts-options location-update-interval <0-255>
+ */
+
+EOLS (upd_ivl_eol,bts_options,UPDATE_INTERVAL);
+
+NUMBER (upd_ivl_val,upd_ivl_eol,no_alt,OBJ(int,1),0,255,
+ "Enter the interval");
+
+NVGENS (upd_ivl_val_nv,upd_ivl_val,bts_options,UPDATE_INTERVAL);
+
+NOPREFIX (upd_ivl_val_no,upd_ivl_val_nv,upd_ivl_eol);
+
+KEYWORD (loc_upd_ivl,upd_ivl_val_no,no_alt,"location-update-interval",
+ "Interval for periodic location updates from the MS in decihours",PRIV_CONF);
+
+
+
+/*
+ *bts-options ms-access-class-not-allowed <0-15>
+ */
+
+EOLS (access_class_eol,bts_options,ACCESS_CLASS);
+
+NUMBER (access_class_val,access_class_eol,no_alt,OBJ(int,1),0,15,
+ "Enter the access class not allowed");
+
+KEYWORD (bts_access_class,access_class_val,loc_upd_ivl,"ms-access-class-not-allowed",
+ "MS access classes not allowed to connect to the cell",PRIV_CONF);
+
+
+/*
+ * bts-options dtx-mode {ms-shall-use-dtx |
+ * ms-may-use-dtx | ms-shall-not-use-dtx}
+ */
+
+
+EOLS (dtx_mode_eol,bts_options,DTX_MODE_OPTIONS);
+
+KEYWORD_OPTIONS (dtx_mode_opt,dtx_mode_eol,no_alt,dtx_mode_options,OBJ(int,1),
+ PRIV_CONF,0);
+
+NOPREFIX (dtx_mode_opt_no,dtx_mode_opt,dtx_mode_eol);
+
+KEYWORD(dtx_mode,dtx_mode_opt_no,bts_access_class,"dtx-mode",
+ "Downlink discontinuous transmission mode options",PRIV_CONF);
+
+/*
+ * bts-options {imsi-attach | cell-barred | downlink-dtx | imsi-for-emergency |
+ * restricted-emergency-call} enable
+ */
+
+
+EOLS (bts_en_options_eol,bts_options,ENABLE_OPTIONS);
+
+KEYWORD (bts_opt_enable,bts_en_options_eol,no_alt,"enable",
+ "Enable the option",PRIV_CONF);
+
+KEYWORD_OPTIONS(bts_enable_options,bts_opt_enable,dtx_mode,bts_enable_options,OBJ(int,1),
+ PRIV_CONF,0);
+
+/*
+ * bts-options
+ */
+
+KEYWORD (cfg_bts_opt,bts_enable_options,cfg_trx_sub,"bts-options",
+ "Configure bts options",PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE cfg_bts_opt
diff --git a/data/mnet/GP10/Host/cli/include/cfg_ccch.h b/data/mnet/GP10/Host/cli/include/cfg_ccch.h
new file mode 100644
index 0000000..e5a17ee
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_ccch.h
@@ -0,0 +1,189 @@
+
+#define ONE_RETR_RACH 1
+#define TWO_RETR_RACH 2
+#define FOUR_RETR_RACH 4
+#define SEVEN_RETR_RACH 7
+
+/*
+ * enum to identify ccch commands
+ */
+enum {
+ CCCH_CELL_BAR,
+ CCCH_OFFSET_PENALTY,
+ CCCH_OFFSET_TEMP,
+ CCCH_CELL_RESELECT,
+ CCCH_SPREAD_SLOT,
+ CCCH_MULT_FRAME,
+ CCCH_ACCESS_GRANT,
+ CCCH_MAX_TX_POWER,
+ CCCH_MAX_RETR
+};
+
+/*
+ * retransmission options
+ */
+static keyword_options ccch_ret_options[] = {
+ {"1","Retransmit one time on the random access channel",ONE_RETR_RACH},
+ {"2","Retransmit two time on the random access channel",TWO_RETR_RACH},
+ {"4","Retransmit four time on the random access channel",FOUR_RETR_RACH},
+ {"7","Retransmit seven time on the random access channel",SEVEN_RETR_RACH},
+ {NULL,NULL,0}
+};
+
+/*
+ * cell-bar-qualify enable
+ */
+
+EOLS (bar_qfy_eol,ccch_configuration,CCCH_CELL_BAR);
+
+KEYWORD (bar_qfy_enable,bar_qfy_eol,no_alt,"enable",
+ "Enable the option",PRIV_CONF);
+
+NVGENS (bar_qfy_nv,bar_qfy_enable,ccch_configuration,CCCH_CELL_BAR);
+
+KEYWORD (cell_bar_qfy,bar_qfy_nv,no_alt,"cell-bar-qualify",
+ "Enable to consider cell low priority by MS",PRIV_CONF);
+
+/*
+ * offset penalty <0-31>
+ */
+
+EOLS (ccch_penalty_eol,ccch_configuration,CCCH_OFFSET_PENALTY);
+
+NUMBER (ccch_penalty_val,ccch_penalty_eol,no_alt,OBJ(int,1),0,31,
+ "Enter the penalty time");
+
+NVGENS (ccch_penalty_val_nv,ccch_penalty_val,ccch_configuration,CCCH_OFFSET_PENALTY);
+
+NOPREFIX (ccch_penalty_val_no,ccch_penalty_val_nv,ccch_penalty_eol);
+
+KEYWORD (ccch_penalty,ccch_penalty_val_no,no_alt,"penalty",
+ "Penalty time during which the temporary offset is subracted from"
+ "reselection criterion",PRIV_CONF);
+
+/*
+ * offset temporary <0-7>
+ */
+
+EOLS (ccch_temp_eol,ccch_configuration,CCCH_OFFSET_TEMP);
+
+NUMBER (ccch_temp_val,ccch_temp_eol,no_alt,OBJ(int,1),0,7,
+ "Enter the reselect offset value");
+NVGENS (ccch_temp_val_nv,ccch_temp_val,ccch_configuration,CCCH_OFFSET_TEMP);
+
+NOPREFIX (ccch_temp_val_no,ccch_temp_val_nv,ccch_temp_eol);
+
+KEYWORD (ccch_temp,ccch_temp_val_no,ccch_penalty,"temporary",
+ "Offset subtracted from C2 reselection criterion",PRIV_CONF);
+
+
+/*
+ * offset cell-reselect <0-63>
+ */
+
+EOLS (cell_reselect_eol,ccch_configuration,CCCH_CELL_RESELECT);
+
+NUMBER (cell_reselect_val,cell_reselect_eol,no_alt,OBJ(int,1),0,63,
+ "Enter the reselect offset value");
+NVGENS (cell_reselect_val_nv,cell_reselect_val,ccch_configuration,CCCH_CELL_RESELECT);
+
+NOPREFIX (cell_reselect_val_no,cell_reselect_val_nv,cell_reselect_eol);
+
+KEYWORD(ccch_cell_reselect,cell_reselect_val_no,ccch_temp,"cell-reselect",
+ "Offset added to C2 reselection criterion",PRIV_CONF);
+
+/*
+ * offset
+ */
+
+KEYWORD (ccch_offset,ccch_cell_reselect,cell_bar_qfy,"offset",
+ "Offset added to the C2 reselection criterion",PRIV_CONF);
+
+
+/*
+ * spread-slot-trans <0-15>
+ */
+
+
+EOLS (spread_slot_eol,ccch_configuration,CCCH_SPREAD_SLOT);
+
+NUMBER (spread_slot_val,spread_slot_eol,no_alt,OBJ(int,1),0,15,
+ "Enter the number of slots");
+
+NVGENS (spread_slot_val_nv,spread_slot_val,ccch_configuration,CCCH_SPREAD_SLOT);
+
+NOPREFIX (spread_slot_val_no,spread_slot_val_nv,spread_slot_eol);
+
+KEYWORD (spread_slot,spread_slot_val_no,ccch_offset,"spread-slot-trans",
+ "Max number of random channel slots a MS must wait",PRIV_CONF);
+
+/*
+ * multi-frames <2-9>
+ */
+
+
+EOLS (mult_frame_eol,ccch_configuration,CCCH_MULT_FRAME);
+
+NUMBER (mult_frame_val,mult_frame_eol,no_alt,OBJ(int,1),2,9,
+ "Enter the number of frames");
+
+NVGENS (mult_frame_val_nv,mult_frame_val,ccch_configuration,CCCH_MULT_FRAME);
+
+NOPREFIX (mult_frame_val_no,mult_frame_val_nv,mult_frame_eol);
+
+KEYWORD (mult_frame,mult_frame_val_no,spread_slot,"multi-frames",
+ "Number of multiframes between two transmissions",PRIV_CONF);
+
+/*
+ * access-grant-blocks <0-7>
+ */
+
+
+EOLS (access_grant_eol,ccch_configuration,CCCH_ACCESS_GRANT);
+
+NUMBER (access_grant_val,access_grant_eol,no_alt,OBJ(int,1),0,7,
+ "Enter the number of frames");
+
+NVGENS (access_grant_val_nv,access_grant_val,ccch_configuration,CCCH_ACCESS_GRANT);
+
+NOPREFIX (access_grant_val_no,access_grant_val_nv,access_grant_eol);
+
+KEYWORD (ccch_access_grant,access_grant_val_no,mult_frame,"access-grant-blocks",
+ "Number of TDMA frames reserved for access grant channel",PRIV_CONF);
+
+/*
+ * ms-max-tx-power <0-33>
+ */
+
+
+EOLS (ccch_tx_pwr_eol,ccch_configuration,CCCH_MAX_TX_POWER);
+
+NUMBER (ccch_tx_pwr_val,ccch_tx_pwr_eol,no_alt,OBJ(int,1),0,33,
+ "For radiotype DCS1800 value is 0 to 30,for DCS1900 0 to 33");
+
+NVGENS (ccch_tx_pwr_val_nv,ccch_tx_pwr_val,ccch_configuration,CCCH_MAX_TX_POWER);
+
+NOPREFIX (ccch_tx_pwr_val_no,ccch_tx_pwr_val_nv,ccch_tx_pwr_eol);
+
+KEYWORD (ccch_tx_pwr,ccch_tx_pwr_val_no,ccch_access_grant,"ms-max-tx-power",
+ "Max transmit power level a MS can use on the cell",PRIV_CONF);
+
+
+/*
+ * max-retransmission
+ */
+
+EOLS (max_retrx_eol,ccch_configuration,CCCH_MAX_RETR);
+
+KEYWORD_OPTIONS(max_retrx_val,max_retrx_eol,no_alt,ccch_ret_options,OBJ(int,1),
+ PRIV_CONF,0);
+
+NVGENS (max_retrx_val_nv,max_retrx_val,ccch_configuration,CCCH_MAX_RETR);
+
+NOPREFIX (max_retrx_val_no,max_retrx_val_nv,max_retrx_eol);
+
+KEYWORD(cfg_ccch_options,max_retrx_val_no,ccch_tx_pwr,"max-retransmission",
+ "Max number of retransmission MS can attempt",PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE cfg_ccch_options
diff --git a/data/mnet/GP10/Host/cli/include/cfg_ccch_exit.h b/data/mnet/GP10/Host/cli/include/cfg_ccch_exit.h
new file mode 100644
index 0000000..f48ca27
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_ccch_exit.h
@@ -0,0 +1,11 @@
+EOLS (gp10_cell_ccch_end_eol,exit_config_command,CMD_END);
+
+KEYWORD (gp10_cell_ccch_end,gp10_cell_ccch_end_eol,no_alt,"end",
+ "Exit gp10 ccch-config mode to exec mode",PRIV_CONF);
+
+EOLNS (gp10_cell_ccch_exit_eol,gp10_cell_sub_config_exit);
+KEYWORD (gp10_cell_ccch_exit, gp10_cell_ccch_exit_eol,gp10_cell_ccch_end, "exit",
+ "Exit gp10 ccch-config mode", PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE gp10_cell_ccch_exit
diff --git a/data/mnet/GP10/Host/cli/include/cfg_cell_exit.h b/data/mnet/GP10/Host/cli/include/cfg_cell_exit.h
new file mode 100644
index 0000000..845eb90
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_cell_exit.h
@@ -0,0 +1,11 @@
+EOLS (gp10_cell_end_eol,exit_config_command,CMD_END);
+
+KEYWORD (gp10_cell_end,gp10_cell_end_eol,no_alt,"end",
+ "Exit gp10 config-cell mode to exec mode",PRIV_CONF);
+
+EOLNS (gp10_cell_exit_eol,gp10_sub_config_exit);
+KEYWORD (gp10_cell_exit, gp10_cell_exit_eol,gp10_cell_end, "exit",
+ "Exit gp10 config-cell mode", PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE gp10_cell_exit
diff --git a/data/mnet/GP10/Host/cli/include/cfg_mspwr_ctrl.h b/data/mnet/GP10/Host/cli/include/cfg_mspwr_ctrl.h
new file mode 100644
index 0000000..650041e
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_mspwr_ctrl.h
@@ -0,0 +1,229 @@
+
+/*
+ * enum to identify handover command
+ */
+
+enum {
+ HANDOVER_N5,
+ HANDOVER_N6,
+ HANDOVER_P5,
+ HANDOVER_P6,
+ UPLINK,
+ DOWNLINK,
+ HANDOVER_AVERAGE,
+ HANDOVER_QUALITY,
+ HANDOVER_STRENGTH,
+ LOG_CONSOLE,
+ LOG_HOST,
+ LOG_FILE
+};
+
+static keyword_options link_options[] = {
+ {"uplink","Uplink received power/quality level",UPLINK},
+ {"downlink","Downlink received power/quality level",DOWNLINK},
+ {NULL,NULL,0}
+};
+
+static keyword_options handover_averages[] = {
+ {"N5","Total number of averages of signal quality before handover",HANDOVER_N5},
+ {"N6","Total number of averages of signal strength before handover",HANDOVER_N6},
+ {"P5","Total number of averages of signal quality lower than threshold",HANDOVER_P5},
+ {"P6","Total number of averages of signal strength lower than threshold",HANDOVER_P6},
+ {NULL,NULL,0}
+};
+
+
+/*
+ * logging file
+ */
+EOLS (log_file_eol,logging_option,LOG_FILE);
+
+KEYWORD (log_file,log_file_eol,no_alt,"file",
+ "Log to the file viperlog.dat",PRIV_CONF);
+
+/*
+ * logging <ip-address> [port-number]
+ */
+
+EOLS (log_ip_eol,logging_option,LOG_HOST);
+
+NUMBER (log_port,log_ip_eol,log_ip_eol,OBJ(int,1),1025,65535,
+ "Enter the port number");
+
+IPADDR (log_ip_addr,log_port,log_file,OBJ(paddr,1),
+ "Ip address of the host to send the log messages");
+
+/*
+ * logging console
+ */
+
+EOLS (log_cons_eol,logging_option,LOG_CONSOLE);
+
+KEYWORD (log_cons,log_cons_eol,log_ip_addr,"console",
+ "Log to the console",PRIV_CONF);
+
+NVGENNS (log_nv,log_cons,logging_option);
+
+/*
+ * logging
+ */
+
+KEYWORD (cfg_logging,log_nv,no_alt,"logging",
+ "Configure the logging option",PRIV_CONF);
+
+
+/*
+ * handover-control average {N5 | N6 | P5 | P6} <0-31>
+ */
+
+EOLS (hand_avg_eol,handover_control_commands,HANDOVER_AVERAGE);
+
+NUMBER (hand_avg_val,hand_avg_eol,no_alt,OBJ(int,2),0,31,
+ "Enter average value");
+
+NOPREFIX (hand_avg_val_no,hand_avg_val,hand_avg_eol);
+
+KEYWORD_OPTIONS(hand_avg_opt,hand_avg_val_no,no_alt,handover_averages,
+ OBJ(int,1),PRIV_CONF,0);
+
+NVGENS (hand_avg_val_nv,hand_avg_opt,handover_control_commands,HANDOVER_AVERAGE);
+
+KEYWORD (hand_ctrl_avg,hand_avg_val_nv,no_alt,"average",
+ "Averages to make handover decision",PRIV_CONF);
+
+/*
+ * handover-control {uplink|downlink} quality <0-7>}
+ */
+
+EOLS (hand_qty_eol,handover_control_commands,HANDOVER_QUALITY);
+
+NUMBER (hand_qty_val,hand_qty_eol,no_alt,OBJ(int,2),0,7,
+ "Enter quality level");
+
+NOPREFIX (hand_qty_val_no,hand_qty_val,hand_qty_eol);
+
+KEYWORD (hand_qty,hand_qty_val_no,no_alt,"quality",
+ "Quality level",PRIV_CONF);
+
+/*
+ * handover-control {uplink|downlink} strength <0-63>
+ */
+
+EOLS (hand_strgth_eol,handover_control_commands,HANDOVER_STRENGTH);
+
+NUMBER (hand_strgth_val,hand_strgth_eol,no_alt,OBJ(int,2),0,63,
+ "Enter power level");
+
+NOPREFIX (hand_strgth_val_no,hand_strgth_val,hand_strgth_eol);
+
+KEYWORD (hand_ctrl_strgth,hand_strgth_val_no,hand_qty,"strength",
+ "Strenth of the power",PRIV_CONF);
+
+/*
+ * handover-control {uplink|downlink}
+ */
+
+KEYWORD_OPTIONS (hand_ctrl_choice,hand_ctrl_strgth,no_alt,link_options,OBJ(int,1),
+ PRIV_CONF,0);
+
+NVGENS (hand_ctrl_choice_nv,hand_ctrl_choice,handover_control_commands,HANDOVER_STRENGTH);
+
+KEYWORD (hand_ctrl_thr,hand_ctrl_choice_nv,hand_ctrl_avg,"threshold",
+ "Threshold to trigger the GP10 to handover MS",PRIV_CONF);
+
+
+/*
+ * handover-control
+ */
+
+KEYWORD (cfg_hand_ctrl,hand_ctrl_thr,cfg_logging,"handover-control",
+ "Configure handover control parameters",PRIV_CONF);
+
+
+/*
+ * enum for power control command identification
+ */
+
+enum {
+ MAX_POWER_LEVEL,
+ UPLINK_TARGET,
+ SIGNAL_QUALITY,
+ SIGNAL_STRENGTH
+};
+
+/*
+ * ms-power-control max-tx-power <power-level>
+ */
+
+
+EOLS (max_tr_pwr_eol,mspower_commands,MAX_POWER_LEVEL);
+
+NUMBER (max_tr_pwr_val,max_tr_pwr_eol,no_alt,OBJ(int,1),0,33,
+ "Power level");
+NVGENS (max_tr_pwr_val_nv,max_tr_pwr_val,mspower_commands,MAX_POWER_LEVEL);
+
+NOPREFIX (max_tr_pwr_val_no,max_tr_pwr_val_nv,max_tr_pwr_eol);
+
+KEYWORD (max_tr_pwr,max_tr_pwr_val_no,no_alt,"max-tx-power",
+ "Maximum transmit power level allowed for each MS",PRIV_CONF);
+
+
+/*
+ * ms-power-control uplink-target <power-level>
+ */
+
+
+EOLS (uplink_tgt_eol,mspower_commands,UPLINK_TARGET);
+
+NUMBER (uplink_tgt_val,uplink_tgt_eol,no_alt,OBJ(int,1),0,63,
+ "Power level");
+
+NVGENS (uplink_tgt_val_nv,uplink_tgt_val,mspower_commands,UPLINK_TARGET);
+
+NOPREFIX (uplink_tgt_val_no,uplink_tgt_val_nv,uplink_tgt_eol);
+
+KEYWORD (uplink_tgt,uplink_tgt_val_no,max_tr_pwr,"uplink-target",
+ "Received power level GP10 attempts to maintain from each MS",PRIV_CONF);
+
+/*
+ * ms-power-control signal-quality-avg-window <value>
+ */
+
+
+EOLS (sig_qty_eol,mspower_commands,SIGNAL_QUALITY);
+
+NUMBER (sig_qty_val,sig_qty_eol,no_alt,OBJ(int,1),0,31,
+ "Period of computation");
+NVGENS (sig_qty_val_nv,sig_qty_val,mspower_commands,SIGNAL_QUALITY);
+
+NOPREFIX (sig_qty_val_no,sig_qty_val_nv,sig_qty_eol);
+
+KEYWORD (sig_qty,sig_qty_val_no,uplink_tgt,"signal-quality-avg-window",
+ "Computation of average of uplink received quality",PRIV_CONF);
+
+/*
+ * ms-power-control signal-strength-avg-window <value>
+ */
+
+
+EOLS (sig_strgth_eol,mspower_commands,SIGNAL_STRENGTH);
+
+NUMBER (sig_strgth_val,sig_strgth_eol,no_alt,OBJ(int,1),0,31,
+ "Period of computation");
+NVGENS (sig_strgth_val_nv,sig_strgth_val,mspower_commands,SIGNAL_STRENGTH);
+
+NOPREFIX (sig_strgth_val_no,sig_strgth_val_nv,sig_strgth_eol);
+
+KEYWORD (sig_strgth,sig_strgth_val_no,sig_qty,"signal-strength-avg-window",
+ "Computation of average of uplink received levels",PRIV_CONF);
+
+
+/*
+ * ms-power-control
+ */
+
+KEYWORD (cfg_pwr_ctrl,sig_strgth,cfg_hand_ctrl,"ms-power-control",
+ "Configure MS power control parameters",PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE cfg_pwr_ctrl
diff --git a/data/mnet/GP10/Host/cli/include/cfg_proto_exit.h b/data/mnet/GP10/Host/cli/include/cfg_proto_exit.h
new file mode 100644
index 0000000..0d378ef
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_proto_exit.h
@@ -0,0 +1,11 @@
+EOLS (gp10_proto_end_eol,exit_config_command,CMD_END);
+
+KEYWORD (gp10_proto_end,gp10_proto_end_eol,no_alt,"end",
+ "Exit gp10 config-proto mode to exec mode",PRIV_CONF);
+
+EOLNS (gp10_proto_exit_eol,gp10_sub_config_exit);
+KEYWORD (gp10_proto_exit, gp10_proto_exit_eol,gp10_proto_end, "exit",
+ "Exit gp10 config-proto mode", PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE gp10_proto_exit
diff --git a/data/mnet/GP10/Host/cli/include/cfg_sys_feat.h b/data/mnet/GP10/Host/cli/include/cfg_sys_feat.h
new file mode 100644
index 0000000..3529e16
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_sys_feat.h
@@ -0,0 +1,86 @@
+
+#define CIPHERING_ENABLE 1
+
+/*
+ * enum for command identification
+ */
+enum {
+ CELL_BARR_ENABLE,
+ SMS_CB_ENABLE,
+ AUTH_FREQ_VAL,
+ AUTH_CIPH_ENABLE
+};
+
+
+/*
+ * sys-feature cell-barring enable
+ */
+
+EOLS (cell_barr_eol,sysfeature_commands,CELL_BARR_ENABLE);
+
+KEYWORD (cell_barr_en,cell_barr_eol,no_alt,"enable",
+ "Enable the cell barring",PRIV_CONF);
+
+NVGENS (cell_barr_nv,cell_barr_en,sysfeature_commands,CELL_BARR_ENABLE);
+
+KEYWORD (cell_barr,cell_barr_nv,no_alt,"cell-barring",
+ "Enable cell barring feature",PRIV_CONF);
+
+/*
+ * sys-feature sms-cb enable
+ */
+
+EOLS (sms_cb_eol,sysfeature_commands,SMS_CB_ENABLE);
+
+KEYWORD (sms_cb_en,sms_cb_eol,no_alt,"enable",
+ "Enable the cell broadcast",PRIV_CONF);
+
+NVGENS (sms_cb_nv,sms_cb_en,sysfeature_commands,SMS_CB_ENABLE);
+
+KEYWORD (sms_cb,sms_cb_nv,cell_barr,"sms-cb",
+ "Enable SMS cell broadcast system on the cell",PRIV_CONF);
+
+/*
+ * sys-feature authentication-frequency <value>
+ */
+
+EOLS (auth_freq_eol,sysfeature_commands,AUTH_FREQ_VAL);
+
+NUMBER (auth_freq_val,auth_freq_eol,no_alt,OBJ(int,1),0,5,
+ "Enter the frequency");
+
+NVGENS (auth_freq_val_nv,auth_freq_val,sysfeature_commands,AUTH_FREQ_VAL);
+
+NOPREFIX (auth_freq_val_no,auth_freq_val_nv,auth_freq_eol);
+
+KEYWORD (auth_freq,auth_freq_val_no,sms_cb,"authentication-frequency",
+ "Frequency of mobile authentication",PRIV_CONF);
+
+
+/*
+ * sys-feature authentication-feature [ciphering] enable
+ */
+
+EOLS (auci_enable_eol,sysfeature_commands,AUTH_CIPH_ENABLE);
+
+KEYWORD (auci_enable,auci_enable_eol,no_alt,"enable",
+ "Enable the method",PRIV_CONF);
+
+KEYWORD_ID(sys_cipher,auci_enable,auci_enable,OBJ(int,1),CIPHERING_ENABLE,
+ "ciphering","Enable ciphering",PRIV_CONF);
+
+NVGENS (sys_authen_nv,sys_cipher,sysfeature_commands,AUTH_CIPH_ENABLE);
+
+KEYWORD(sys_authen,sys_authen_nv,auth_freq,"authentication-feature",
+ "Enable authentication ",PRIV_CONF);
+
+
+/*
+ * sys-feature
+ */
+
+KEYWORD (cfg_sys_feature,sys_authen,no_alt,"sys-feature",
+ "Configure system feature control parameters",PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE cfg_sys_feature
diff --git a/data/mnet/GP10/Host/cli/include/cfg_sys_info.h b/data/mnet/GP10/Host/cli/include/cfg_sys_info.h
new file mode 100644
index 0000000..6ac560b
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_sys_info.h
@@ -0,0 +1,297 @@
+
+/*
+ * enum for command identification
+ */
+
+enum {
+ CONFIG_CDR_PASSWORD,
+ CONFIG_CDR_CLIENT_SSL_ENABLE,
+ CONF_SNMP_COMM,
+ SUB_CONFIG_PROTO,
+ SUB_CONFIG_ADJCELL,
+ SUB_CONFIG_CELL,
+ CONF_CUSTADDR,
+ CONF_CUSTINFO,
+ CONF_CUSTEMAIL,
+ CONF_CUSTPHONE,
+ CONF_CUSTNAME,
+ CONF_ASSET,
+ CONF_LOCATION,
+ CONF_GW_IPADDR,
+ CONF_SYS_IPADDR,
+ CONF_SYS_NAME
+};
+
+
+
+/*
+ * cdr password <string>
+ * no cdr password
+ */
+
+EOLS(config_cdr_password_eols, gp10_config_cdr_data, CONFIG_CDR_PASSWORD);
+
+STRING(config_cdr_password_val, config_cdr_password_eols, no_alt,
+ OBJ(string, 2), "Password");
+
+NVGENS (config_cdr_password_nv, config_cdr_password_val, gp10_config_cdr_data, CONFIG_CDR_PASSWORD);
+
+NOPREFIX(config_cdr_password_no, config_cdr_password_nv, config_cdr_password_eols);
+
+KEYWORD(config_cdr_password, config_cdr_password_no, no_alt,
+ "password", "Configure CDR Client password", PRIV_CONF);
+
+
+/*
+ * cdr client ssl enable
+ * no cdr client ssl enable
+ */
+
+EOLS(config_cdr_client_ssl_enable_eols, gp10_config_cdr_data, CONFIG_CDR_CLIENT_SSL_ENABLE);
+
+KEYWORD(config_cdr_client_ssl_enable, config_cdr_client_ssl_enable_eols, no_alt,
+ "enable", "Enable/Disable encryption between CDR Client & Server :NOTE: use no command to disable", PRIV_CONF);
+
+NVGENS (config_cdr_client_ssl_nv, config_cdr_client_ssl_enable, gp10_config_cdr_data, CONFIG_CDR_CLIENT_SSL_ENABLE);
+
+KEYWORD(config_cdr_client_ssl, config_cdr_client_ssl_nv, no_alt,
+ "ssl", "Configure CDR Client SSL data", PRIV_CONF);
+
+KEYWORD(config_cdr_client, config_cdr_client_ssl, config_cdr_password,
+ "client", "Configure CDR Client data", PRIV_CONF);
+
+
+/*
+ * cdr
+ */
+
+KEYWORD(config_cdr_data, config_cdr_client, no_alt,
+ "cdr", "Commands related to CDR Client configuration", PRIV_CONF);
+
+/**********************************************************/
+/* CDR Command Line Interface */
+/* END */
+/**********************************************************/
+
+
+/*
+ *[no] snmp community <read community> <write community>
+ */
+
+EOLS (cfg_snmp_comm_eol,system_configuration,CONF_SNMP_COMM);
+
+STRING (cfg_snmp_write,cfg_snmp_comm_eol,no_alt,OBJ(string,2),
+ "Enter the write community string");
+
+STRING (cfg_snmp_read,cfg_snmp_write,no_alt,OBJ(string,1),
+ "Enter the read community string");
+
+NOPREFIX (cfg_snmp_comm_no,cfg_snmp_read,cfg_snmp_comm_eol);
+
+NVGENS (cfg_snmp_comm_nv,cfg_snmp_comm_no,system_configuration,CONF_SNMP_COMM);
+
+KEYWORD (cfg_snmp_comm_key,cfg_snmp_comm_nv,no_alt,"community",
+ "Configure snmp community strings",PRIV_CONF);
+
+KEYWORD (cfg_snmp_comm,cfg_snmp_comm_key,config_cdr_data,"snmp",
+ "Configure snmp mibs",PRIV_CONF);
+
+
+
+/*
+ *config-proto
+ */
+
+EOLS (cfg_proto_param_eol,gp10_subconfig_cmds,SUB_CONFIG_PROTO);
+
+NVGENS (cfg_proto_param_nv,cfg_proto_param_eol,gp10_subconfig_cmds,SUB_CONFIG_PROTO);
+
+KEYWORD (cfg_proto_param,cfg_proto_param_nv,cfg_snmp_comm,"config-proto",
+ "Configure protocol management parameters",PRIV_CONF);
+
+/*
+ * config-adjcell
+ */
+
+EOLS (cfg_adjcell_param_eol,gp10_subconfig_cmds,SUB_CONFIG_ADJCELL);
+
+NUMBER (cfg_adjcell_num,cfg_adjcell_param_eol,no_alt,OBJ(int,1),1,16,
+ "Enter the adjacent cell number");
+
+NVGENS (cfg_adjcell_param_nv,cfg_adjcell_num,gp10_subconfig_cmds,SUB_CONFIG_ADJCELL);
+
+KEYWORD (cfg_adjcell_param,cfg_adjcell_param_nv,cfg_proto_param,"config-adjcell",
+ "Configure adjacent cell parameters",PRIV_CONF);
+
+/*
+ * config-cell
+ */
+
+EOLS (cfg_cell_param_eol,gp10_subconfig_cmds,SUB_CONFIG_CELL);
+
+NVGENS ( cfg_cell_param_nv,cfg_cell_param_eol,gp10_subconfig_cmds,SUB_CONFIG_CELL);
+
+KEYWORD (cfg_cell_param,cfg_cell_param_nv,cfg_adjcell_param,"config-cell",
+ "Configure cell parameters",PRIV_CONF);
+
+/*
+ * customer-address <address-string>
+ */
+
+EOLS (custaddr_eol,system_configuration,CONF_CUSTADDR);
+
+STRING (custaddr,custaddr_eol,no_alt,OBJ(string,1),
+ "GP10 customer address");
+NVGENS (custaddr_nv,custaddr,system_configuration,CONF_CUSTADDR);
+
+NOPREFIX (custaddr_no,custaddr_nv,custaddr_eol);
+
+KEYWORD (cfg_custaddr,custaddr_no,cfg_cell_param,"customer-address",
+ "Configure GP10 customer address.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+/*
+ * customer-info <info-string>
+ */
+
+EOLS (custinfo_eol,system_configuration,CONF_CUSTINFO);
+
+STRING (custinfo,custinfo_eol,no_alt,OBJ(string,1),
+ "GP10 customer information");
+NVGENS (custinfo_nv,custinfo,system_configuration,CONF_CUSTINFO);
+
+NOPREFIX (custinfo_no,custinfo_nv,custinfo_eol);
+
+KEYWORD (cfg_custinfo,custinfo_no,cfg_custaddr,"customer-info",
+ "Configure GP10 customer information.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+/*
+ * customer-email <email-id-string>
+ */
+
+EOLS (custemail_eol,system_configuration,CONF_CUSTEMAIL);
+
+STRING (custemail,custemail_eol,no_alt,OBJ(string,1),
+ "GP10 customer email id");
+NVGENS (custemail_nv,custemail,system_configuration,CONF_CUSTEMAIL);
+
+NOPREFIX (custemail_no,custemail_nv,custemail_eol);
+
+KEYWORD (cfg_custemail,custemail_no,cfg_custinfo,"customer-email",
+ "Configure GP10 customer email id.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+
+/*
+ * customer-phone <phone-number-string>
+ */
+
+EOLS (custphone_eol,system_configuration,CONF_CUSTPHONE);
+
+STRING (custphone,custphone_eol,no_alt,OBJ(string,1),
+ "Phone number of the GP10 customer");
+
+NVGENS (custphone_nv,custphone,system_configuration,CONF_CUSTPHONE);
+
+NOPREFIX (custphone_no,custphone_nv,custphone_eol);
+
+KEYWORD (cfg_custphone,custphone_no,cfg_custemail,"customer-phone",
+ "Configure GP10 customer phone number.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+
+/*
+ * customer-name <name-string>
+ */
+
+EOLS (custname_eol,system_configuration,CONF_CUSTNAME);
+
+STRING (custname,custname_eol,no_alt,OBJ(string,1),
+ "Customer name of the GP10 host");
+NVGENS (custname_nv,custname,system_configuration,CONF_CUSTNAME);
+
+NOPREFIX (custname_no,custname_nv,custname_eol);
+
+KEYWORD (cfg_custname,custname_no,cfg_custphone,"customer-name",
+ "Configure GP10 customer name.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+/*
+ * asset <asset-string>
+ */
+
+EOLS (asset_eol,system_configuration,CONF_ASSET);
+
+STRING (asset,asset_eol,no_alt,OBJ(string,1),
+ "Asset of the GP10 host");
+NVGENS (asset_nv,asset,system_configuration,CONF_ASSET);
+
+NOPREFIX (asset_no,asset_nv,asset_eol);
+
+KEYWORD (cfg_asset,asset_no,cfg_custname,"asset",
+ "Configure GP10 asset number.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+/*
+ *location <location-string>
+ */
+
+
+EOLS (location_eol,system_configuration,CONF_LOCATION);
+
+STRING (location,location_eol,no_alt,OBJ(string,1),
+ "Location of the GP10 host");
+NVGENS (location_nv,location,system_configuration,CONF_LOCATION);
+
+NOPREFIX (location_no,location_nv,location_eol);
+
+KEYWORD (cfg_location,location_no,cfg_asset,"location",
+ "Configure GP10 location.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+/*
+ * ip default-gateway <ip-address>
+ */
+
+EOLS (gw_ip_addr_eol,system_configuration,CONF_GW_IPADDR);
+
+IPADDR (gw_ip_addr,gw_ip_addr_eol,no_alt,OBJ(paddr,1),
+ "Ip address of the default gateway");
+
+NVGENS (gw_ip_addr_nv,gw_ip_addr,system_configuration,CONF_GW_IPADDR);
+
+NOPREFIX (gw_ip_addr_no,gw_ip_addr_nv,gw_ip_addr_eol);
+
+KEYWORD (default_gw,gw_ip_addr_no,no_alt,"default-gateway",
+ "Configure default IP gateway.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+/*
+ *ip address <ip-address> <subnet-mask>
+ */
+
+EOLS (ip_addr_eol,system_configuration,CONF_SYS_IPADDR);
+
+IPADDR_MASK(host_ip_addr,ip_addr_eol,no_alt,OBJ(paddr,1),OBJ(paddr,2),
+ "Enter IP Address and subnet mask of the GP10");
+NVGENS (host_ip_addr_nv,host_ip_addr,system_configuration,CONF_SYS_IPADDR);
+
+NOPREFIX (host_ip_addr_no,host_ip_addr_nv,ip_addr_eol);
+
+KEYWORD (cfg_ip_addr_key,host_ip_addr_no,default_gw,"address",
+ "Configure IP Address.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+KEYWORD (cfg_ip_addr,cfg_ip_addr_key,cfg_location,"ip",
+ "Configure IP Address.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+/*
+ * hostname <name>
+ */
+
+
+EOLS (sys_name_eol,system_configuration,CONF_SYS_NAME);
+
+STRING (sys_name,sys_name_eol,no_alt,OBJ(string,1),
+ "Name of the GP10 host");
+NVGENS (sys_name_nv,sys_name,system_configuration,CONF_SYS_NAME);
+
+NOPREFIX (sys_name_no,sys_name_nv,sys_name_eol);
+
+KEYWORD (cfg_sys_name,sys_name_no,cfg_ip_addr,"hostname",
+ "Configure GP10 host name.Changes will be effective only after GP10 reboot",PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE cfg_sys_name
diff --git a/data/mnet/GP10/Host/cli/include/cfg_timers.h b/data/mnet/GP10/Host/cli/include/cfg_timers.h
new file mode 100644
index 0000000..6e55c4c
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_timers.h
@@ -0,0 +1,190 @@
+/*
+ * enum for command identification
+ */
+
+enum {
+ CCM_TIMER,
+ RMM_TIMER,
+ FACCH_TIMER,
+ SACCH_TIMER ,
+ SDCCH_TIMER
+};
+
+/*
+ * enum for various timers
+ */
+enum {
+ SDCCH_SAPI0_TIMER,
+ SDCCH_SAPI3_TIMER,
+ SACCH_SDCCH_TIMER,
+ TCH_SAPI0_TIMER,
+ SDCCH_SDCCH_TIMER,
+ RMM_IMM_ASSIGN,
+ RMM_HANDOVER,
+ RMM_PHY_INFO,
+ RMM_ASSIGN,
+ RMM_LOW_LAYER,
+ RMM_CH_ACTIVATION,
+ RMM_PAGING_MSG,
+ CCM_ALERT,
+ CCM_SETUP_SENT,
+ CCM_CALL_CONFIRM,
+ CCM_CONNECT_SENT,
+ CCM_DISCONNECT_SENT,
+ CCM_RELEASE_SENT
+};
+
+/*
+ * layer2 sdcch timers
+ */
+
+static keyword_options sdcch_timers [] = {
+ { "sapi-0-timer", "Sdcch service access point indicator 0 layer 2 timer",SDCCH_SAPI0_TIMER},
+ { "sapi-3-timer","Sdcch service access point indicator 3 layer 2 timer",SDCCH_SAPI3_TIMER},
+ { "sdcch-tch-timer","Stand-alone dedicated control channel timer",SDCCH_SDCCH_TIMER},
+ {NULL,NULL,0}
+};
+
+/*
+ * layer 2 sacch timers
+ */
+
+static keyword_options sacch_timers [] = {
+ { "tch-0-timer", "Traffic channel service access point indicator 0 timer",TCH_SAPI0_TIMER},
+ { "sdcch-timer","Stand-alone dedicated control channel timer",SACCH_SDCCH_TIMER},
+ {NULL,NULL,0}
+};
+
+
+
+/*
+ * layer 3 rmm timers
+ */
+
+static keyword_options layer3_rmm_timers [] = {
+ {"immediate-assignment","Timer for immediate assignment commands",RMM_IMM_ASSIGN},
+ { "handover-command","Timer for handover commands",RMM_HANDOVER},
+ { "physical-information","Timer for physical information commands",RMM_PHY_INFO},
+ {"assignment-command","Timer for the assignment commands",RMM_ASSIGN},
+ {"lower-layer-failure","Timer for lower layer failures",RMM_LOW_LAYER},
+ {"channel-activation","Timer for channel activation delays",RMM_CH_ACTIVATION},
+ {"paging-messages","Timer for paging messages",RMM_PAGING_MSG},
+ {NULL,NULL,0}
+};
+
+/*
+ * layer 3 ccm timers
+ */
+static keyword_options layer3_ccm_timers []= {
+ {"alerting-received","Alerting received timer",CCM_ALERT},
+ {"setup-sent","Setup sent timer",CCM_SETUP_SENT},
+ {"call-confirmed","Call confirmed received timer",CCM_CALL_CONFIRM},
+ {"connect-sent","Connect sent timer",CCM_CONNECT_SENT},
+ {"disconnect-sent","Disconnect sent timer",CCM_DISCONNECT_SENT},
+ {"release-sent","Release sent timer",CCM_RELEASE_SENT},
+ {NULL,NULL,0}
+};
+
+/*
+ *laye3-ccm {alerting-received| setup-sent | call-confirmed |connect-sent |
+ *disconnect-sent |release-sent} <timer-value>
+ */
+
+EOLS (ccm_timer_eol,timer_configuration,CCM_TIMER);
+
+NUMBER (ccm_timer_val,ccm_timer_eol,no_alt,OBJ(int,2),0,65535,"Enter timer value in 10ms units");
+
+NOPREFIX (ccm_timer_val_no,ccm_timer_val,ccm_timer_eol);
+
+KEYWORD_OPTIONS(ccm_timers,ccm_timer_val_no,no_alt,layer3_ccm_timers,OBJ(int,1),PRIV_CONF,0);
+
+NVGENS (ccm_timers_nv,ccm_timers,timer_configuration,CCM_TIMER);
+
+KEYWORD (layer3_ccm_timer,ccm_timers_nv,no_alt,"layer3-ccm",
+ "Configure layer 3 ccm timers",PRIV_CONF);
+
+
+/*
+ * layer3-rrm { immediate-assignment | handover-command | physical-information |
+ * assignment-command | lower-layer-failiure | channel-activation | paging-messages }
+ * <timer-value>
+ */
+
+EOLS (rmm_timer_eol,timer_configuration,RMM_TIMER);
+
+NUMBER (rmm_timer_val,rmm_timer_eol,no_alt,OBJ(int,2),0,65535,"Enter timer value in 10ms units");
+
+NOPREFIX (rmm_timer_val_no,rmm_timer_val,rmm_timer_eol);
+
+KEYWORD_OPTIONS(rmm_timers,rmm_timer_val_no,no_alt,layer3_rmm_timers,OBJ(int,1),PRIV_CONF,0);
+
+NVGENS (rmm_timers_nv,rmm_timers,timer_configuration,RMM_TIMER);
+
+KEYWORD (layer3_rmm_timer,rmm_timers_nv,layer3_ccm_timer,"layer3-rrm",
+ "Configure layer 3 rrm timers",PRIV_CONF);
+
+
+/*
+ *layer2-lapdm facch <timer-value>
+ */
+
+EOLS (facch_timer_eol,timer_configuration,FACCH_TIMER);
+
+NUMBER (facch_timer_val,facch_timer_eol,no_alt,OBJ(int,1),0,65535,"Enter timer value in 5ms units");
+
+NOPREFIX (facch_timer_val_no,facch_timer_val,facch_timer_eol);
+
+NVGENS (facch_timer_val_nv,facch_timer_val_no,timer_configuration,FACCH_TIMER);
+
+KEYWORD (cfg_facch_timer,facch_timer_val_nv,no_alt,"facch",
+ "Configure full rate traffic channel timers",PRIV_CONF);
+
+
+
+/*
+ *layer2-lapdm sacch { tch-sapi-0-timer | tch-sapi-3-timer | sdcch-timer } <timer-value>
+ */
+
+
+EOLS (sacch_timer_eol,timer_configuration,SACCH_TIMER);
+
+NUMBER (sacch_timer_val,sacch_timer_eol,no_alt,OBJ(int,2),0,65535,"Enter timer value in 5ms units");
+
+NOPREFIX (sacch_timer_val_no,sacch_timer_val,sacch_timer_eol);
+
+KEYWORD_OPTIONS(sacch_timer,sacch_timer_val_no,no_alt,sacch_timers,OBJ(int,1),PRIV_CONF,0);
+
+NVGENS (sacch_timer_nv,sacch_timer,timer_configuration,SACCH_TIMER);
+
+KEYWORD (cfg_sacch_timer,sacch_timer_nv,cfg_facch_timer,"sacch",
+ "Configure saach timers",PRIV_CONF);
+
+
+/*
+ *layer2-lapdm sdcch { sapi-0-timer | sapi-3-timer | sdcch-timer}
+ *<timer-value>
+ */
+
+EOLS (sdcch_timer_eol,timer_configuration,SDCCH_TIMER);
+
+NUMBER (sdcch_timer_val,sdcch_timer_eol,no_alt,OBJ(int,2),0,65535,"Enter timer value in 5ms units");
+
+NOPREFIX (sdcch_timer_val_no,sdcch_timer_val,sdcch_timer_eol);
+
+KEYWORD_OPTIONS(sdcch_timer,sdcch_timer_val_no,no_alt,sdcch_timers,OBJ(int,1),PRIV_CONF,0);
+
+NVGENS (sdcch_timer_nv,sdcch_timer,timer_configuration,SDCCH_TIMER);
+
+KEYWORD (cfg_sdcch_timer,sdcch_timer_nv,cfg_sacch_timer,"sdcch",
+ "Configure stand-alone dedicated control channel timer",PRIV_CONF);
+
+
+/*
+ *layer2-lapdm
+ */
+
+KEYWORD (cfg_proto_options,cfg_sdcch_timer,layer3_rmm_timer,"layer2-lapdm",
+ "Configure layer 2 LAPDm timers",PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE cfg_proto_options
diff --git a/data/mnet/GP10/Host/cli/include/cfg_trx.h b/data/mnet/GP10/Host/cli/include/cfg_trx.h
new file mode 100644
index 0000000..80d1cef
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_trx.h
@@ -0,0 +1,144 @@
+/*
+ * enum for transceiver command identification
+ */
+enum {
+ TRX_RADIO_FREQUENCY,
+ TRX_POWER_REDUCTION,
+ TRX_CHANNEL_TABLE,
+ TRX_ADMIN_STATE,
+ TRX_ARFCN_NUMBER
+};
+
+/*
+ * enum for administrative state options
+ */
+enum {
+ STATE_LOCKED,
+ STATE_UNLOCKED,
+ STATE_SHUTDOWN
+};
+
+/*
+ * administrative state options
+ */
+
+static keyword_options admin_state_options[] = {
+ { "locked", "Cannot be accessed by mobile stations", STATE_LOCKED},
+ { "unlocked", "Can be accessed by mobile stations",STATE_UNLOCKED},
+ { "shutting-down","GP10 is in the process of becoming locked",STATE_SHUTDOWN},
+ {NULL,NULL,0}
+};
+
+/*
+ * radio-carrier radio-frequency <value>
+ */
+
+EOLS (rad_freq_eol,transceiver_parameters,TRX_RADIO_FREQUENCY);
+
+NUMBER (rad_freq_val,rad_freq_eol,no_alt,OBJ(int,1),0,65535,
+ "Enter the ARFCN number");
+
+NVGENS (rad_freq_val_nv,rad_freq_val,transceiver_parameters,TRX_RADIO_FREQUENCY);
+
+NOPREFIX (rad_freq_val_no,rad_freq_val_nv,rad_freq_eol);
+
+KEYWORD (trx_rad_freq,rad_freq_val_no,no_alt,"radio-frequency",
+ "ARFCN assigned to the transceiver",PRIV_CONF);
+
+/*
+ * radio-carrier transmit-power-reduction <value>
+ */
+
+EOLS (pwr_red_eol,transceiver_parameters,TRX_POWER_REDUCTION);
+
+NUMBER (pwr_red_val,pwr_red_eol,no_alt,OBJ(int,1),0,6,
+ "Enter the power value");
+NVGENS (pwr_red_val_nv,pwr_red_val,transceiver_parameters,TRX_POWER_REDUCTION);
+
+NOPREFIX (pwr_red_val_no,pwr_red_val_nv,pwr_red_eol);
+
+KEYWORD (trx_pwr_red,pwr_red_val_no,trx_rad_freq,"transmit-power-reduction",
+ "Max transmit power reduced from peak power",PRIV_CONF);
+
+/*
+ * radio-carrier
+ */
+KEYWORD (cfg_radio_carrier,trx_pwr_red,no_alt,"radio-carrier",
+ "Radio configuration parameters",PRIV_CONF);
+
+/*
+ * channel-table <time-slot> channel-combination TCH-FULL training-sequence USE-BCC
+ * administration-state {locked | unlocked | shutting-down}
+ */
+
+EOLS (trx_admin_state_eol,transceiver_parameters,TRX_CHANNEL_TABLE);
+
+KEYWORD_OPTIONS (admin_state_opt,trx_admin_state_eol,no_alt,admin_state_options,
+ OBJ(int,2),PRIV_CONF,0);
+
+KEYWORD (trx_admin_state,admin_state_opt,no_alt,"administrative-state",
+ "State in which to place channel",PRIV_CONF);
+
+NOPREFIX (trx_admin_state_no,trx_admin_state,trx_admin_state_eol);
+
+KEYWORD (seq_opt,trx_admin_state_no,no_alt,"USE-BCC",
+ "Use BTS color code",PRIV_CONF);
+
+KEYWORD (training_seq,seq_opt,no_alt,"training-sequence",
+ "Training sequence code (TSC) for the channel",PRIV_CONF);
+
+KEYWORD_ID(combn_opt_tch,training_seq,no_alt,OBJ(int,3),TCH_FULL,"TCH-FULL",
+ "Full rate traffic channel",PRIV_CONF);
+
+KEYWORD_ID(combn_opt_bcch,training_seq,no_alt,OBJ(int,3),BCCH_COMBINED,
+ "BCCH-COMBINED", "Common control channel",PRIV_CONF);
+
+IFELSE (chan_combn_chk,combn_opt_bcch,combn_opt_tch,
+ (((int) GETOBJ(udb,current1) == 0) && (GETOBJ(int,1) == 0)));
+
+KEYWORD (chan_combn,chan_combn_chk,no_alt,"channel-combination",
+ "Channel combination",PRIV_CONF);
+
+NUMBER (time_slot_trx,chan_combn,no_alt,OBJ(int,1),0,7,
+ "Enter the time slot");
+
+NVGENS (time_slot_trx_nv,time_slot_trx,transceiver_parameters,TRX_CHANNEL_TABLE);
+
+KEYWORD (channel_table,time_slot_trx_nv,cfg_radio_carrier,"channel-table",
+ "Channel configurations",PRIV_CONF);
+
+/*
+ *administrative-state {locked | unlocked | shutting-down}
+ */
+
+EOLS (admin_state_eol,transceiver_parameters,TRX_ADMIN_STATE);
+
+KEYWORD_OPTIONS (admin_state,admin_state_eol,no_alt,admin_state_options,
+ OBJ(int,1),PRIV_CONF,0);
+NVGENS (admin_state_nv,admin_state,transceiver_parameters,TRX_ADMIN_STATE);
+
+NOPREFIX (admin_state_no,admin_state_nv,admin_state_eol);
+
+KEYWORD (cfg_admin_state,admin_state_no,channel_table,"administrative-state",
+ "State in which to place GP10",PRIV_CONF);
+
+
+/*
+ * bts-cell-allocation <number>
+ */
+
+EOLS (arfcn_eol,transceiver_parameters,TRX_ARFCN_NUMBER);
+
+NUMBER (arfcn_val,arfcn_eol,no_alt,OBJ(int,1),0,1023,
+ "Enter the number");
+NVGENS (arfcn_val_nv,arfcn_val,transceiver_parameters,TRX_ARFCN_NUMBER);
+
+NOPREFIX (arfcn_val_no,arfcn_val_nv,arfcn_eol);
+
+KEYWORD (cfg_transceiver,arfcn_val_no,cfg_admin_state,"bts-cell-allocation",
+ "ARFCN allocated and assigned to the cell",PRIV_CONF);
+
+
+
+#undef ALTERNATE
+#define ALTERNATE cfg_transceiver
diff --git a/data/mnet/GP10/Host/cli/include/cfg_trx_exit.h b/data/mnet/GP10/Host/cli/include/cfg_trx_exit.h
new file mode 100644
index 0000000..7a83787
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_trx_exit.h
@@ -0,0 +1,11 @@
+EOLS (gp10_cell_trx_end_eol,exit_config_command,CMD_END);
+
+KEYWORD (gp10_cell_trx_end,gp10_cell_trx_end_eol,no_alt,"end",
+ "Exit gp10 config-trx mode to exec mode",PRIV_CONF);
+
+EOLNS (gp10_cell_trx_exit_eol,gp10_cell_sub_config_exit);
+KEYWORD (gp10_cell_trx_exit, gp10_cell_trx_exit_eol, gp10_cell_trx_end, "exit",
+ "Exit gp10 config-trx mode", PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE gp10_cell_trx_exit
diff --git a/data/mnet/GP10/Host/cli/include/cfg_voip.h b/data/mnet/GP10/Host/cli/include/cfg_voip.h
new file mode 100644
index 0000000..79b9a4d
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/cfg_voip.h
@@ -0,0 +1,88 @@
+
+/*
+ * enum for command identification
+ */
+
+enum {
+ COUNTRY_CODE,
+ CALL_SIG_PORT_NUM,
+ GMC_IP_ADDR,
+ GMC_PORT_NUM
+};
+
+
+/*
+ *voip t35-country-code <country-code>
+ */
+
+EOLS (country_code_eol,voip_parameters,COUNTRY_CODE);
+
+NUMBER (country_code,country_code_eol,no_alt,OBJ(int,1),1,999,
+ "Enter country code");
+
+NVGENS (country_code_nv,country_code,voip_parameters,COUNTRY_CODE);
+
+NOPREFIX (country_code_no,country_code_nv,country_code_eol);
+
+KEYWORD (t35_country_code,country_code_no,no_alt,"t35-country-code",
+ "H.323 country code in decimal.Changes will be effective after the reboot of GP10",PRIV_CONF);
+
+
+/*
+ *voip call-signalling-port <port-num>
+ */
+
+EOLS (call_sig_port_eol,voip_parameters,CALL_SIG_PORT_NUM);
+
+NUMBER (call_sig_port_num,call_sig_port_eol,no_alt,OBJ(int,1),1,65536,
+ "Port number");
+
+NVGENS (call_sig_port_num_nv,call_sig_port_num,voip_parameters,CALL_SIG_PORT_NUM);
+
+NOPREFIX (call_sig_port_num_no,call_sig_port_num_nv,call_sig_port_eol);
+
+KEYWORD (call_sig_port,call_sig_port_num_no,t35_country_code,"call-signalling-port",
+ "Configure port used for call setup and tear down.Changes will be effective after the reboot of GP10",PRIV_CONF);
+
+/*
+ * voip gmc-ip-address <ip-address>
+ */
+
+EOLS (gmc_ip_addr_eol,voip_parameters,GMC_IP_ADDR);
+
+IPADDR (gmc_ip_addr,gmc_ip_addr_eol,no_alt,OBJ(paddr,1),"IP address of GMC");
+
+NVGENS (gmc_ip_addr_nv,gmc_ip_addr,voip_parameters,GMC_IP_ADDR);
+
+NOPREFIX (gmc_ip_addr_no,gmc_ip_addr_nv,gmc_ip_addr_eol);
+
+KEYWORD (gmc_ip,gmc_ip_addr_no,call_sig_port,"gmc-ip-address",
+ "Configure IP address of GMC.Changes will be effective after the reboot of GP10",PRIV_CONF);
+
+
+/*
+ * voip gmc-port <port-num>
+ */
+
+EOLS (gmc_port_eol,voip_parameters,GMC_PORT_NUM);
+
+NUMBER (gmc_port_num,gmc_port_eol,no_alt,OBJ(int,1),1,65536,
+ "Port number");
+
+NVGENS (gmc_port_num_nv,gmc_port_num,voip_parameters,GMC_PORT_NUM);
+
+NOPREFIX (gmc_port_num_no,gmc_port_num_nv,gmc_port_eol);
+
+
+KEYWORD (gmc_port,gmc_port_num_no,gmc_ip,"gmc-port",
+ "Port number on which the GMC is listening for GP10 traffic.Changes will be effective after the reboot of GP10",PRIV_CONF);
+
+/*
+ * voip
+ */
+
+KEYWORD (cfg_voip_parm,gmc_port,no_alt,"voip",
+ "Configure Voice Over IP Parameters",PRIV_CONF);
+
+#undef ALTERNATE
+#define ALTERNATE cfg_voip_parm
diff --git a/data/mnet/GP10/Host/cli/include/exec_debug_gp10.h b/data/mnet/GP10/Host/cli/include/exec_debug_gp10.h
new file mode 100644
index 0000000..55f0eb6
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/exec_debug_gp10.h
@@ -0,0 +1,212 @@
+#define DBG_LOG_CONTROL_TRACE_MASK 0x0008
+#define DBG_LOG_CALL_TRACE_MASK 0x0010
+#define DBG_LOG_INFORMATIONAL_MASK 0x0020
+#define DBG_LOG_WARNINGS_MASK 0x0040
+#define DBG_LOG_ERRORS_MASK 0x0080
+#define DBG_LOG_TIMESTAMP_MASK 0x0100
+#define DBG_LOG_ALL_TRACE_MASK 0x00f8
+
+
+/*
+ * Inverse masks
+ */
+#define DBG_LOG_CONTROL_TRACE_INVERSE_MASK 0xfff7
+#define DBG_LOG_CALL_TRACE_INVERSE_MASK 0xffef
+#define DBG_LOG_INFORMATIONAL_INVERSE_MASK 0xffdf
+#define DBG_LOG_WARNINGS_INVERSE_MASK 0xffbf
+#define DBG_LOG_ERRORS_INVERSE_MASK 0xff7f
+#define DBG_LOG_ALL_TRACE_INVERSE_MASK 0xff07
+
+
+/*
+ * Enum for Module Identification.
+ * Imported from gp10/Host/Common_to_host/Logging/VcModules.h
+ */
+
+enum {
+
+ DBG_CC_LAYER = 0, /* Value for DBG_CC_LAYER are from 0 to 24 */
+ DBG_CC_SESSION_LAYER = 1, /* CC Session sub layer */
+ DBG_CC_CALLLEG_LAYER = 2, /* CC Call Leg sub layer */
+ DBG_CC_CISS_LAYER = 3, /* CC CISS sub layer */
+ DBG_CC_HALFCALL_LAYER = 4, /* CC Half Call sub layer */
+ DBG_CC_HANDOVER_LAYER = 5, /* CC Handover sub layer */
+ DBG_CC_SMS_LAYER = 6, /* CM SMS sublayer */
+
+
+ DBG_CSU_LAYER = 25, /* Value for CSU_LAYER are from 25 to 49 */
+ DBG_CSU_LAYER_SPEECH = 26,
+ DBG_CSU_LAYER_DEBUG = 27,
+
+ DBG_DSP_LAYER = 50, /* Value for DSP_LAYER are from 50 to 74 */
+
+ DBG_H323_LAYER = 75, /* Value for H323_LAYER are from 75 to 99 */
+ DBG_H323_PROTOCOL_LAYER = 76,
+ DBG_H323_RTP_LAYER = 77,
+ DBG_VBLINK_LAYER = 80,
+
+ DBG_LOGGING_LAYER = 99, /* Logging layer just needs one */
+
+ DBG_JCC_LAYER = 100, /* Value for JCC_LAYER are from 100 to 124 */
+
+ DBG_CDR_LAYER = 110,
+
+ DBG_L1PROXY_LAYER = 125, /* Value for L1PROXY_LAYER are from 125 to 149 */
+
+ DBG_LAPDM_LAYER = 150, /* Value for LAPDM_LAYER are from 150 to 174 */
+
+ DBG_MM_LAYER = 175, /* Value for DBG_MM_LAYER are from 175 to 199 */
+ DBG_MM_MSG_LAYER = 176,
+ DBG_MM_TABLE_LAYER = 177,
+ DBG_MM_GENERAL_LAYER = 178,
+ DBG_MM_DETAIL_LAYER = 179,
+
+ DBG_RIL3_LAYER = 200, /* Value for RIL3_LAYER are from 200 to 224 */
+
+ DBG_RM_LAYER = 225, /* Value for RM_LAYER are from 225 to 249 */
+
+ DBG_LUDB_LAYER = 250, /* Value for LUDB_LAYER are from 250 to 274 */
+ DBG_LUDB_MSG_LAYER = 251,
+ DBG_LUDB_TABLE_LAYER = 252,
+ DBG_LUDB_GENERAL_LAYER = 253,
+ DBG_LUDB_DETAIL_LAYER = 254,
+
+ DBG_MAINT_COMM_HDLR = 275, /* Value for MAINT_COMM_HDLR are from 275 to 299 */
+ DBG_DIAG_TEST = 276,
+ DBG_DSP_DIAGS = 277,
+
+ DBG_PM_LAYER = 299, /* PM_LAYER needs only one module */
+ DBG_ALARM_LAYER = 300, /* Alarm layer 300 to 310 */
+ DBG_L3_MS_TRACE = 325,
+
+
+ DBG_RLC_MAC = 350, /* RLC_MAC LAYER */
+ DBG_RLC_MAC_MSG = 351,
+ DBG_RLC_MAC_MSG_DETAIL = 352,
+#if 0
+ /*
+ * The following were commented because
+ * they have been added later into the development
+ * and not present in GP1_5_13_BLD
+ */
+ DBG_RLC_MAC_INTF = 353,
+ DBG_RLC_MAC_RLC_LINK = 354,
+
+ DBG_GRR_LAYER = 400,
+ DBG_GRR_LAYER_INIT = 401,
+ DBG_GRR_LAYER_OAM = 402,
+ DBG_GRR_LAYER_DSP = 403,
+ DBG_GRR_LAYER_ALARM = 404,
+ DBG_GRR_LAYER_INTF = 405,
+ DBG_GRR_LAYER_PROC = 406,
+
+
+ DBG_BSSGP_LAYER = 425,
+ DBG_BSSGP_ENCODER_LAYER = 426,
+ DBG_BSSGP_DECODER_LAYER = 427,
+ DBG_BSSGP_NET_LAYER = 428,
+ DBG_BSSGP_UNITDATA_LAYER = 429,
+#endif
+ DBG_SSH_MODULE = 460,
+
+ MAX_VIPERCELL_MODULES = 500,
+ GP10_DEBUG_ALL =1000
+
+
+};
+
+/*
+ * gp10 debug options
+ */
+
+static keyword_options gp10_debug [] = {
+ {"cc_session_layer","Debug cc sesseion sub layer",DBG_CC_SESSION_LAYER},
+ {"cc_callleg_layer","Debug cc call leg sub layer",DBG_CC_CALLLEG_LAYER},
+ {"cc_ciss_layer","Debug cc CISS sub layer",DBG_CC_CISS_LAYER},
+ {"cc_halfcall_layer","Debug cc Half call sub layer",DBG_CC_HALFCALL_LAYER },
+ {"cc_handover_layer","Debug cc handover sub layer",DBG_CC_HANDOVER_LAYER},
+ {"cc_sms_layer","Debug cc SMS sub layer",DBG_CC_SMS_LAYER},
+ {"csu_layer_speech","Debug CSU layer speech",DBG_CSU_LAYER_SPEECH},
+ {"csu_layer_debug","Debug CSU layer",DBG_CSU_LAYER_DEBUG},
+ {"h323_protocol_layer","Debug H323 protocol layer",DBG_H323_PROTOCOL_LAYER},
+ {"h323_rtp_layer","Debug H323 rtp layer",DBG_H323_RTP_LAYER},
+ {"vblink_layer","Debug vblink layer",DBG_VBLINK_LAYER},
+ {"mm_msg_layer","Debug MM message layer",DBG_MM_MSG_LAYER},
+ {"mm_table_layer","Debug MM table layer",DBG_MM_TABLE_LAYER},
+ {"mm_general_layer","Debug MM general layer",DBG_MM_GENERAL_LAYER},
+ {"mm_detail_layer","Debug MM detail layer",DBG_MM_DETAIL_LAYER},
+ {"rlc_mac_msg","Debug RLC MAC messages",DBG_RLC_MAC_MSG},
+ {"rlc_mac_msg_detail","Debug RLC MAC message detail",DBG_RLC_MAC_MSG_DETAIL},
+#if 0
+ {"rlc_mac_intf","Debug RLC MAC interface",DBG_RLC_MAC_INTF},
+ {"rlc_mac_rlc_link","Debug RLC MAC link",DBG_RLC_MAC_RLC_LINK},
+ {"grr_layer_init","Debug GRR initialisation layer",DBG_GRR_LAYER_INIT},
+ {"grr_layer_oam","Debug GRR OAM layer",DBG_GRR_LAYER_OAM},
+ {"grr_layer_dsp","Debug GRR DSP layer",DBG_GRR_LAYER_DSP},
+ {"grr_layer_alarm","Debug GRR alarm layer",DBG_GRR_LAYER_ALARM},
+ {"grr_layer_intf","Debug GRR interface layer",DBG_GRR_LAYER_INTF},
+ {"grr_layer_proc","Debug GRR process",DBG_GRR_LAYER_PROC},
+#endif
+ {"ludb_msg_layer","Debug LUDB messages layer",DBG_LUDB_MSG_LAYER},
+ {"ludb_table_layer","Debug LUDB table layer",DBG_LUDB_TABLE_LAYER },
+ {"ludb_general_layer","Debug LUDB general layer",DBG_LUDB_GENERAL_LAYER },
+ {"ludb_detail_layer","Debug LUDB detail layer",DBG_LUDB_DETAIL_LAYER},
+#if 0
+ {"bssgp_encoder_layer","Debug BSSGP encoder layer",DBG_BSSGP_ENCODER_LAYER},
+ {"bssgp_decoder_layer","Debug BSSGP decoder layer",DBG_BSSGP_DECODER_LAYER},
+ {"bssgp_net_layer","Debug BSSGP network layer",DBG_BSSGP_NET_LAYER},
+ {"bssgp_unitdata_layer","Debug BSSGP unitdata layer",DBG_BSSGP_UNITDATA_LAYER},
+#endif
+ {"logging_layer","Debug loggin layer",DBG_LOGGING_LAYER},
+ {"jcc_layer","Debug jcc layer",DBG_JCC_LAYER },
+ {"cdr_layer","Debug cdr layer",DBG_CDR_LAYER },
+ {"l1proxy_layer","Debug L1 Proxy layer",DBG_L1PROXY_LAYER},
+ {"lapdm_layer","Debug lapdm layer",DBG_LAPDM_LAYER},
+ {"ril3_layer","Debug RIL3 layer",DBG_RIL3_LAYER},
+ {"rm_layer","Debug RM Layer",DBG_RM_LAYER},
+ {"maint_cmd_handler","Debug maintenance command handler",DBG_MAINT_COMM_HDLR},
+ {"diagnostic_test","Debug diagnostic tests",DBG_DIAG_TEST},
+ {"dsp_diags","Debug DSP diagnostics",DBG_DSP_DIAGS},
+ {"pm_layer","Debug performance management (PM) layer",DBG_PM_LAYER},
+ {"alarm_layer","Debug ALARM layer",DBG_ALARM_LAYER},
+ {"l3_ms_trace","Debug layer3 messages",DBG_L3_MS_TRACE},
+ {"all","Enable debugging for all",GP10_DEBUG_ALL},
+ {NULL,NULL,0}
+};
+
+enum {
+ DBG_FUNC_LOG,
+ DBG_CALL_LOG,
+ DBG_MSG_LOG,
+ DBG_WARN_LOG,
+ DBG_ERR_LOG,
+ DBG_ALL_LOG,
+ DBG_TIMESTAMP_LOG
+};
+
+
+static keyword_options gp10_debug_options [] = {
+ {"function","Function tracing required",DBG_FUNC_LOG},
+ {"call","Call tracing required",DBG_CALL_LOG},
+ {"message","Message tracing required",DBG_MSG_LOG},
+ {"warning","Log only warings",DBG_WARN_LOG},
+ {"error","Log only errors",DBG_ERR_LOG},
+ {"timestamp","Log with Timestamp",DBG_TIMESTAMP_LOG},
+ {"all","Turn on all log messages",DBG_ALL_LOG},
+ {NULL,NULL,0}
+};
+
+EOLNS (gp10_debug_eol,gp10_debug_command);
+pdecl(gp10_debug_opt);
+
+FUNC(gp10_debug_flag_func,gp10_debug_opt,set_gp10_debug_flag);
+
+KEYWORD_OPTIONS(gp10_debug_opt,gp10_debug_flag_func,gp10_debug_eol,gp10_debug_options,OBJ(int,2),
+ PRIV_CONF,0);
+
+KEYWORD_OPTIONS(exec_debug_gp10,gp10_debug_opt,no_alt,gp10_debug,OBJ(int,1),
+ PRIV_CONF,0);
+
+
+#undef ALTERNATE
+#define ALTERNATE exec_debug_gp10
diff --git a/data/mnet/GP10/Host/cli/include/exec_diag_cmd.h b/data/mnet/GP10/Host/cli/include/exec_diag_cmd.h
new file mode 100644
index 0000000..195b32a
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/exec_diag_cmd.h
@@ -0,0 +1,363 @@
+
+#define VERBOSE 0
+#define NO_VERBOSE 1
+#define TYPE_TEST_ALLMEM 3
+#define TYPE_INCR_MEM 4
+#define TYPE_ALL_MEM 7
+#define HALT_ON_ERROR 10
+
+enum {
+ DIAG_CFTEST_CMD,
+ DIAG_STOPDIAG_CMD,
+ DIAG_I2CLOOPBACK_CMD,
+ DIAG_I2CTEST_CMD,
+ DIAG_IFREPORT_CMD,
+ DIAG_MSREPORT_CMD,
+ DIAG_HPIMEMACCESS_CMD,
+ DIAG_HPIECHOTEST_CMD,
+ DIAG_HOREPORT_CMD,
+ DIAG_FPGATEST_CMD,
+ DIAG_DSPMEMTEST_CMD,
+ DIAG_DSPLOOPBACK_CMD,
+ DIAG_DSPEXTMEMTEST_CMD,
+ DIAG_DSPBBLBTEST_CMD,
+ DIAG_DLREPORT_CMD
+};
+
+
+enum {
+ TYPE_TEST_ALL = 0,
+ TYPE_WALK_ZERO,
+ TYPE_WALK_ONES,
+ TYPE_INCREMENT,
+ TYPE_INCR_COMP,
+ TYPE_RANDOM_PATTERN
+};
+
+
+enum {
+ TYPE_LOCAL_LOOP = 1,
+ TYPE_BASE_LOOP,
+ TYPE_IQ_LOOP,
+ TYPE_TCH_LOOP,
+ TYPE_TCHTOH_LOOP
+};
+
+
+enum {
+ TEST_DSP_1 = 1,
+ TEST_DSP_0,
+ TEST_DSP_ALL
+};
+
+
+static keyword_options verbose_options[] = {
+ { "verbose", "Display all error messages", VERBOSE},
+ { "no-verbose", "Display only final result", NO_VERBOSE},
+ {NULL,NULL,0}
+};
+
+
+
+static keyword_options extmemtest_type_options[] = {
+ { "0", "All", TYPE_TEST_ALL},
+ { "1", "Walk Zeroes", TYPE_WALK_ZERO},
+ { "2", "Walk Ones", TYPE_WALK_ONES},
+ { "3", "Increment", TYPE_INCREMENT},
+ { "4", "Increment and Complement", TYPE_INCR_COMP},
+ { "5", "Random pattern", TYPE_RANDOM_PATTERN},
+ {NULL,NULL,0}
+};
+
+
+static keyword_options loopback_type_options[] = {
+ { "1", "Create a local loopback", TYPE_LOCAL_LOOP},
+ { "2", "Create a baseband loopback", TYPE_BASE_LOOP},
+ { "3", "Create an IQ loopback", TYPE_IQ_LOOP},
+ { "4", "Create a TCH loopback", TYPE_TCH_LOOP},
+ { "5", "Creae a TCH-to-host loopback", TYPE_TCHTOH_LOOP},
+ {NULL,NULL,0}
+};
+
+
+static keyword_options memtest_type_options[] = {
+ { "1", "Walk Zeroes", TYPE_WALK_ZERO},
+ { "2", "Walk Ones", TYPE_WALK_ONES},
+ { "3", "All", TYPE_TEST_ALLMEM},
+ {NULL,NULL,0}
+};
+
+static keyword_options echotest_type_options[] = {
+ { "10", "Test dsp 0 only", TEST_DSP_0},
+ { "01", "Test dsp 1 only", TEST_DSP_1},
+ { "11", "Test both dsp 0 and 1", TEST_DSP_ALL},
+ {NULL,NULL,0}
+};
+
+static keyword_options memaccess_type_options[] = {
+ { "1", "Walk Zeroes", TYPE_WALK_ZERO},
+ { "2", "Walk Ones", TYPE_WALK_ONES},
+ { "4", "Incrmenting memory locations", TYPE_INCR_MEM},
+ { "7", "All", TYPE_ALL_MEM},
+ {NULL,NULL,0}
+};
+
+static keyword_options halt_on_error[] = {
+ { "haltonerror", "To stop the diagnostic on error", HALT_ON_ERROR},
+ {NULL,NULL,0}
+};
+
+
+EOLS (stopdiag_eol,diagnostic_cmds,DIAG_STOPDIAG_CMD);
+
+STRING (stopdiag_name,stopdiag_eol,no_alt,OBJ(string,1),
+ "Name of the diagnostic to stop");
+
+KEYWORD (diag_stopdiag,stopdiag_name,no_alt,"stopdiag",
+ "Stop a diagnostic test",PRIV_ROOT);
+
+
+EOLS (diag_i2cloopback_eol,diagnostic_cmds,DIAG_I2CLOOPBACK_CMD);
+
+KEYWORD_OPTIONS (diag_i2cloopback_halt,diag_i2cloopback_eol,diag_i2cloopback_eol,
+ halt_on_error,OBJ(int,4),PRIV_ROOT,0);
+
+KEYWORD_OPTIONS(i2cloopback_verb,diag_i2cloopback_halt,diag_i2cloopback_eol,verbose_options,
+ OBJ(int,3),PRIV_ROOT,0);
+
+NUMBER (diag_i2cloopback_durnum,i2cloopback_verb,no_alt,OBJ(int,2),
+ 0,255,"Number of seconds");
+
+KEYWORD (diag_i2cloopback_dur,diag_i2cloopback_durnum,diag_i2cloopback_eol,
+ "duration","Number of seconds to run the test",PRIV_ROOT);
+
+NUMBER (diag_i2cloopback_num,diag_i2cloopback_dur,no_alt,OBJ(int,1),
+ 0,65535,"Number of bytes");
+
+KEYWORD (diag_i2cloopback_nob,diag_i2cloopback_num,diag_i2cloopback_eol,
+ "number-of-bytes","Number of bytes to send in loopback",PRIV_ROOT);
+
+KEYWORD (diag_i2cloopback,diag_i2cloopback_nob,no_alt,"i2cloopback",
+ "To run i2cloopback diagnostic",PRIV_ROOT | PRIV_HIDDEN);
+
+
+
+EOLS (i2ctest_eol,diagnostic_cmds,DIAG_I2CTEST_CMD);
+
+KEYWORD (diag_i2ctest,i2ctest_eol,diag_i2cloopback,"i2ctest",
+ "To run the i2ctest diagnostic",PRIV_ROOT | PRIV_HIDDEN);
+
+
+EOLS (msreport_eol,diagnostic_cmds,DIAG_MSREPORT_CMD);
+
+NUMBER (msreport_duration,msreport_eol,msreport_eol,OBJ(int,3),0,255,
+ "Number of seconds to run");
+
+NUMBER (msreport_trx1_mask,msreport_duration,no_alt,OBJ(int,2),0,255,
+ "Mask ot time slots on the first transceiver");
+
+NUMBER (msreport_trx0_mask,msreport_trx1_mask,no_alt,OBJ(int,1),0,255,
+ "Mask ot time slots on the first transceiver");
+
+KEYWORD (diag_msreport,msreport_trx0_mask,diag_i2ctest,"msreport",
+ "To run the MS Report diagnostic",PRIV_ROOT);
+
+
+EOLS (ifreport_eol,diagnostic_cmds,DIAG_IFREPORT_CMD);
+
+NUMBER (ifreport_duration,ifreport_eol,ifreport_eol,OBJ(int,3),0,255,
+ "Number of seconds to run");
+
+NUMBER (ifreport_trx1_mask,ifreport_duration,no_alt,OBJ(int,2),0,255,
+ "Mask ot time slots on the first transceiver");
+
+NUMBER (ifreport_trx0_mask,ifreport_trx1_mask,no_alt,OBJ(int,1),0,255,
+ "Mask ot time slots on the first transceiver");
+
+KEYWORD (diag_ifreport,ifreport_trx0_mask,diag_msreport,"ifreport",
+ "To run the IF report diagnostic ",PRIV_ROOT);
+
+
+
+EOLS (hpimemaccess_eol,diagnostic_cmds,DIAG_HPIMEMACCESS_CMD);
+
+KEYWORD_OPTIONS(hpimemaccess_verb,hpimemaccess_eol,hpimemaccess_eol,verbose_options,
+ OBJ(int,3),PRIV_ROOT,0);
+
+KEYWORD_OPTIONS(hpimemaccess_type,hpimemaccess_verb,no_alt,memaccess_type_options,
+ OBJ(int,2),PRIV_ROOT,0);
+
+NUMBER (hpimemaccess_dsp,hpimemaccess_type,no_alt,OBJ(int,1),0,1,
+ "Transceiver to test");
+
+KEYWORD (diag_hpimemaccess,hpimemaccess_dsp,diag_ifreport,"hpimemoryaccess",
+ "Run a diagnostic against the transmit and receive memory used for HPI transfers on the CDC",PRIV_ROOT | PRIV_HIDDEN);
+
+
+
+EOLS (hpiechotest_eol,diagnostic_cmds,DIAG_HPIECHOTEST_CMD);
+
+KEYWORD_OPTIONS(hpiechotest_verb,hpiechotest_eol,hpiechotest_eol,verbose_options,
+ OBJ(int,5),PRIV_ROOT,0);
+
+NUMBER (hpiechotest_switch,hpiechotest_verb,no_alt,OBJ(int,4),0,255,
+ "0-permit dsp task switching, 1 or higher - prohibit dsp task switching");
+
+NUMBER (hpiechotest_num_ticks,hpiechotest_switch,no_alt,OBJ(int,3),1,255,
+ "Number of clock ticks to between each group of messages");
+
+NUMBER (hpiechotest_num_msg,hpiechotest_num_ticks,no_alt,OBJ(int,2),1,10,
+ "Number of messages to send in each burst");
+
+KEYWORD_OPTIONS(hpiechotest_combo,hpiechotest_num_msg,no_alt,echotest_type_options,
+ OBJ(int,1),PRIV_ROOT,0);
+
+KEYWORD (diag_hpiechotest,hpiechotest_combo,diag_hpimemaccess,"hpiechotest",
+ "Command to send test messages to the DSPs",PRIV_ROOT | PRIV_HIDDEN);
+
+
+
+EOLS (horeport_eol,diagnostic_cmds,DIAG_HOREPORT_CMD);
+
+NUMBER (horeport_duration,horeport_eol,horeport_eol,OBJ(int,3),0,255,
+ "Number of seconds to run");
+
+NUMBER (horeport_trx1_mask,horeport_duration,no_alt,OBJ(int,2),0,255,
+ "Mask ot time slots on the first transceiver");
+
+NUMBER (horeport_trx0_mask,horeport_trx1_mask,no_alt,OBJ(int,1),0,255,
+ "Mask ot time slots on the first transceiver");
+
+KEYWORD (diag_horeport,horeport_trx0_mask,diag_hpiechotest,"horeport",
+ "Test to determine whether handoff is required",PRIV_ROOT);
+
+
+
+
+
+
+EOLS (fpgatest_eol,diagnostic_cmds,DIAG_FPGATEST_CMD);
+
+KEYWORD_OPTIONS(fpgatest_verb,fpgatest_eol,fpgatest_eol,verbose_options,
+ OBJ(int,1),PRIV_ROOT,0);
+
+KEYWORD (diag_fpgatest,fpgatest_verb,diag_horeport,"fpgatest",
+ "Command to check FPGA 0 and FPGA 1 ",PRIV_ROOT | PRIV_HIDDEN);
+
+
+
+
+EOLS (dspmemtest_eol,diagnostic_cmds,DIAG_DSPMEMTEST_CMD);
+
+KEYWORD_OPTIONS(dspmemtest_verb,dspmemtest_eol,dspmemtest_eol,verbose_options,
+ OBJ(int,4),PRIV_ROOT,0);
+
+NUMBER (dspmemtest_duration,dspmemtest_verb,dspmemtest_eol,OBJ(int,3),0,255,
+ "Time to run the test");
+
+KEYWORD_OPTIONS(dspmemtest_type,dspmemtest_duration,no_alt,memtest_type_options,
+ OBJ(int,2),PRIV_ROOT,0);
+
+NUMBER (dspmemtest_dsp,dspmemtest_type,no_alt,OBJ(int,1),0,1,
+ "Transceiver to test");
+
+KEYWORD (diag_dspmemtest,dspmemtest_dsp,diag_fpgatest,"dspmemtest",
+ "Test both the data and external RAM ",PRIV_ROOT | PRIV_HIDDEN);
+
+
+
+
+
+EOLS (dsploopback_eol,diagnostic_cmds,DIAG_DSPLOOPBACK_CMD);
+
+NUMBER (dsploopback_duration,dsploopback_eol,dsploopback_eol,OBJ(int,3),0,255,
+ "Time to run the test");
+
+KEYWORD_OPTIONS(dsploopback_type,dsploopback_duration,no_alt,loopback_type_options,
+ OBJ(int,2),PRIV_ROOT,0);
+
+NUMBER (dsploopback_dsp,dsploopback_type,no_alt,OBJ(int,1),0,1,
+ "Transceiver to test");
+
+
+KEYWORD (diag_dsploopback,dsploopback_dsp,diag_dspmemtest,"dsploopback",
+ "Set loopbacks in the dsp ",PRIV_ROOT | PRIV_HIDDEN);
+
+
+
+
+EOLS (dspextmemtest_eol,diagnostic_cmds,DIAG_DSPEXTMEMTEST_CMD);
+
+KEYWORD_OPTIONS(dspextmemtest_verb,dspextmemtest_eol,dspextmemtest_eol,verbose_options,
+ OBJ(int,3),PRIV_ROOT,0);
+
+KEYWORD_OPTIONS(dspextmemtest_type,dspextmemtest_verb,no_alt,extmemtest_type_options,
+ OBJ(int,2),PRIV_ROOT,0);
+
+NUMBER (dspextmemtest_dsp,dspextmemtest_type,no_alt,OBJ(int,1),0,1,
+ "Transceiver to test");
+
+KEYWORD (diag_dspextmemtest,dspextmemtest_dsp,diag_dsploopback,"dspextmemtest",
+ "Start the dsp external memory test",PRIV_ROOT | PRIV_HIDDEN);
+
+
+
+EOLS (dspbblbtest_eol,diagnostic_cmds,DIAG_DSPBBLBTEST_CMD);
+
+KEYWORD_OPTIONS(dspbblbtest_verb,dspbblbtest_eol,dspbblbtest_eol,verbose_options,
+ OBJ(int,5),PRIV_ROOT,0);
+
+NUMBER (dspbblbtest_gain,dspbblbtest_verb,no_alt,OBJ(int,4),0,7,
+ "The gain shift");
+
+NUMBER (dspbblbtest_frequency,dspbblbtest_gain,no_alt,OBJ(int,3),0,7,
+ "Index of the frequency to be tested");
+
+NUMBER (dspbblbtest_destination,dspbblbtest_frequency,no_alt,OBJ(int,2),0,1,
+ "Destination transceiver");
+
+NUMBER (dspbblbtest_source,dspbblbtest_destination,no_alt,OBJ(int,1),0,1,
+ "Source transceiver");
+
+KEYWORD (diag_dspbblbtest,dspbblbtest_source,diag_dspextmemtest,"dspbblbtest",
+ "Start the DSP baseband loopback test",PRIV_ROOT | PRIV_HIDDEN);
+
+
+
+EOLS (dlreport_eol,diagnostic_cmds,DIAG_DLREPORT_CMD);
+
+NUMBER (dlreport_duration,dlreport_eol,dlreport_eol,OBJ(int,3),0,255,
+ "Number of seconds to run");
+
+NUMBER (dlreport_trx1_mask,dlreport_duration,no_alt,OBJ(int,2),0,255,
+ "Mask ot time slots on the first transceiver");
+
+NUMBER (dlreport_trx0_mask,dlreport_trx1_mask,no_alt,OBJ(int,1),0,255,
+ "Mask ot time slots on the first transceiver");
+
+KEYWORD (diag_dlreport,dlreport_trx0_mask,diag_dspbblbtest,"dlreport",
+ "Display the downlink power level and quality",PRIV_ROOT);
+
+
+
+
+EOLS (cftest_eol,diagnostic_cmds,DIAG_CFTEST_CMD);
+
+NUMBER (cftest_repeat,cftest_eol,cftest_eol,OBJ(int,1),1,255,
+ "Number of times to repeat");
+
+KEYWORD (diag_cftest,cftest_repeat,diag_dlreport,"cftest",
+ "Test the compact flash interface",PRIV_ROOT | PRIV_HIDDEN);
+
+
+KEYWORD(exec_diag, diag_cftest,diag_stopdiag,
+ "startdiag", "Run a diagnostic test", PRIV_ROOT);
+
+#undef ALTERNATE
+#define ALTERNATE exec_diag
+
+
+
+
+
+
diff --git a/data/mnet/GP10/Host/cli/include/exec_module.h b/data/mnet/GP10/Host/cli/include/exec_module.h
new file mode 100644
index 0000000..58eae5f
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/exec_module.h
@@ -0,0 +1,192 @@
+/*
+ * enum for command identification
+ */
+
+enum {
+ MIB_FILE,
+ CDR_SWITCH,
+ CDR_STATUS,
+ CHECK_EEPROM,
+ WRITE_EEPROM,
+ READ_EEPROM,
+ MIB_IMPORT,
+ MIB_EXPORT,
+ SNMP_SET_MIB,
+ SNMP_GET_MIB,
+ MIB_TYPE_INT,
+ MIB_TYPE_STR,
+ SNMP_MIB_LKUP,
+};
+
+
+static keyword_options mib_options[] = {
+ {"import","Import a mib file.Enter the complete directory path",MIB_IMPORT},
+ {"export","Export a mib file.Enter the complete directory path",MIB_EXPORT},
+ {NULL,NULL,0}
+};
+
+static keyword_options mib_type[] = {
+ {"int","Integer type mib variable",MIB_TYPE_INT},
+ {"string","String type mib variable",MIB_TYPE_STR},
+ {NULL,NULL,0}
+};
+
+/*
+ * Clear voip call-stats
+ */
+EOLNS (exec_clear_eol,clearVoipCall);
+KEYWORD (exec_clear_voip_call_stats,exec_clear_eol,no_alt,
+ "call-stats","Clear voip call stats",PRIV_CONF);
+KEYWORD (exec_clear_chain_voip,exec_clear_voip_call_stats,no_alt,
+ "voip","Clear voip call stats",PRIV_CONF);
+
+/********/
+
+
+EOLS (snmp_lkup_eol,exec_module,SNMP_MIB_LKUP);
+
+STRING (snmp_mib_lkup_str,snmp_lkup_eol,no_alt,OBJ(string,1),
+ "Enter the mib tag");
+
+KEYWORD (snmp_mib_lkup,snmp_mib_lkup_str,no_alt,"lookup",
+ "Lookup a mib tag",PRIV_CONF);
+
+/*
+ *snmp mib set <tag> [<row>] { int | string }
+ */
+EOLS (mib_set_eol,exec_module,SNMP_SET_MIB);
+
+STRING (set_str_mib,mib_set_eol,no_alt,OBJ(string,2),
+ "Enter the string value of mib");
+
+NUMBER (set_int_mib,mib_set_eol,no_alt,OBJ(int,2),0,65535,
+ "Enter the integer value of mib");
+
+IFELSE (test_mib_type,set_int_mib,set_str_mib,(GETOBJ(int,1) == MIB_TYPE_INT));
+
+KEYWORD_OPTIONS (set_mib_type,test_mib_type,no_alt,mib_type,
+ OBJ(int,1),PRIV_CONF,0);
+
+NUMBER (set_mib_row,set_mib_type,set_mib_type,OBJ(int,3),0,255,
+ "Enter the index of the variable");
+
+STRING (set_mib_tag,set_mib_row,no_alt,OBJ(string,1),
+ "Enter the mib tag");
+
+KEYWORD (snmp_mib_set,set_mib_tag,snmp_mib_lkup,"set",
+ "Set value of a mib tag",PRIV_CONF);
+
+/*
+ *snmp mib get <tag> [<row>]
+ */
+EOLS (mib_get_eol,exec_module,SNMP_GET_MIB);
+
+NUMBER (get_mib_row,mib_get_eol,mib_get_eol,OBJ(int,2),0,255,
+ "Enter the index of the variable");
+
+STRING (get_mib_tag,get_mib_row,no_alt,OBJ(string,1),
+ "Enter the mib tag");
+
+KEYWORD (snmp_mib_get,get_mib_tag,snmp_mib_set,"get",
+ "Get value of a mib tag",PRIV_CONF);
+
+/*
+ * snmp mib {import | export} <filename>
+ */
+
+EOLS (mib_eol,exec_module,MIB_FILE);
+
+STRING (mib_file,mib_eol,no_alt,OBJ(string,1),
+ "Enter the mib file name with directory path");
+
+KEYWORD_OPTIONS (snmp_ex_or_im,mib_file,snmp_mib_get,mib_options,
+ OBJ(int,1),PRIV_CONF,0);
+
+/*
+ * snmp mib
+ */
+
+KEYWORD (snmp_mib,snmp_ex_or_im,no_alt,"mib",
+ "Mib Export/Import/Get/Set/Lookup operations",PRIV_CONF);
+
+/*
+ * snmp
+ */
+
+KEYWORD (snmp_mod,snmp_mib,no_alt,"snmp",
+ "Snmp module commands",PRIV_CONF);
+
+/*
+ *cdr switch-server <ip-address>
+ */
+
+EOLS (cdr_switch_eol,exec_module,CDR_SWITCH);
+
+IPADDR( cdr_ser_ip,cdr_switch_eol,no_alt,OBJ(paddr,1),
+ "Enter the ip address of cdr server");
+
+KEYWORD (cdr_switch,cdr_ser_ip,no_alt,"switch-server",
+ "Switch the CDR server",PRIV_CONF);
+
+
+/*
+ *cdr get-status
+ */
+
+EOLS (cdr_status_eol,exec_module,CDR_STATUS);
+
+KEYWORD (cdr_status,cdr_status_eol,cdr_switch,"get-status",
+ "Get status of cdr module",PRIV_CONF);
+
+
+
+/*
+ *cdr client
+ */
+
+KEYWORD (cdr_client_key,cdr_status,no_alt,"client",
+ "Cdr client exec commands",PRIV_CONF);
+
+KEYWORD (cdr_mod,cdr_client_key,snmp_mod,"cdr",
+ "Cdr module exec commands",PRIV_CONF);
+
+
+/*
+ * check-eeprom
+ */
+
+EOLS (check_eeprom_eol,exec_module,CHECK_EEPROM);
+
+KEYWORD (check_eeprom,check_eeprom_eol,snmp_mod,"check-eeprom",
+ "Read tx calibration tables from eeprom ",PRIV_CONF | PRIV_HIDDEN);
+
+
+/*
+ * write-eeprom
+ */
+
+EOLS (write_eeprom_eol,exec_module,WRITE_EEPROM);
+
+KEYWORD (write_eeprom,write_eeprom_eol,check_eeprom,"write-eeprom",
+ "Write tx calibration tables to eeprom on the RF board",PRIV_CONF | PRIV_HIDDEN);
+
+
+
+/*
+ * read-eeprom
+ */
+
+
+EOLS (read_eeprom,exec_module,READ_EEPROM);
+
+KEYWORD (exec_module,read_eeprom,write_eeprom,"read-eeprom",
+ "Read tx calibration tables from eeprom on the RF board",PRIV_CONF | PRIV_HIDDEN);
+
+#undef ALTERNATE
+#define ALTERNATE exec_module
+
+
+
+
+
+
diff --git a/data/mnet/GP10/Host/cli/include/exec_show_conf.h b/data/mnet/GP10/Host/cli/include/exec_show_conf.h
new file mode 100644
index 0000000..4356509
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/exec_show_conf.h
@@ -0,0 +1,10 @@
+/******************************************************************
+ * show configuration -- OBSOLETE
+ *
+ */
+EOLNS (show_config_eol, show_configuration);
+KEYWORD (show_config, show_config_eol, no_alt,
+ "running-configuration", "Contents of Non-Volatile memory", PRIV_ROOT);
+
+#undef ALTERNATE
+#define ALTERNATE show_config
diff --git a/data/mnet/GP10/Host/cli/include/exec_show_mod.h b/data/mnet/GP10/Host/cli/include/exec_show_mod.h
new file mode 100644
index 0000000..820359b
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/include/exec_show_mod.h
@@ -0,0 +1,119 @@
+
+enum {
+ VERSION_OPT,
+ DEBUG_OPT,
+ CDR_DATA,
+ ALARM_STATISTICS,
+ VOIP_CALL_STATS,
+ VOIP_CALL_CNT,
+ VOIP_CALL_SHOW,
+ VOIP_ALL_CALL,
+};
+
+/*
+ * show version
+ */
+
+EOLS (show_ver_eol,show_commands,VERSION_OPT);
+
+KEYWORD (show_ver_opt,show_ver_eol,ALTERNATE,"version",
+ "Show version of GP10 software",PRIV_CONF);
+
+/*
+ * show debugging
+ */
+EOLS (show_debug_opt_eol,show_commands,DEBUG_OPT);
+
+KEYWORD (show_debug_opt,show_debug_opt_eol,show_ver_opt,"debugging",
+ "show debug options",PRIV_CONF | PRIV_HIDDEN);
+
+/*
+ * show client cdr data
+ */
+
+EOLS (cdr_data_eol,show_commands,CDR_DATA);
+
+
+KEYWORD (cdr_data,cdr_data_eol,no_alt,"data",
+ "Show details of CDR data",PRIV_CONF);
+
+KEYWORD (cdr_cli_data,cdr_data,no_alt,"client",
+ "Show cdr client details",PRIV_CONF);
+
+KEYWORD (show_cdr,cdr_cli_data,show_debug_opt,"cdr",
+ "Show cdr details",PRIV_CONF | PRIV_HIDDEN);
+
+
+
+/*
+ * show alarm statistics
+ */
+
+EOLS (alarm_stat_eol,show_commands,ALARM_STATISTICS);
+
+
+KEYWORD (alarm_stat,alarm_stat_eol,no_alt,"statistics",
+ "Show the statistics of alarm module",PRIV_CONF);
+
+/*
+ * show alarm
+ */
+
+KEYWORD (show_alarm,alarm_stat,show_cdr,"alarm",
+ "Show alarm module statistics",PRIV_CONF);
+
+
+/*
+ * show voip call-stats
+ */
+
+EOLS (voip_call_stats_eol,show_commands,VOIP_CALL_STATS);
+
+KEYWORD (voip_call_stats,voip_call_stats_eol,no_alt,"call-stats",
+ "Show the voip call statistics",PRIV_CONF);
+
+
+/*
+ * show voip call-counters
+ */
+
+EOLS (voip_call_cnt_eol,show_commands,VOIP_CALL_CNT);
+
+KEYWORD (voip_call_cnt,voip_call_cnt_eol,voip_call_stats,"call-counters",
+ "Show the voip call counters",PRIV_CONF);
+
+/*
+ * show voip call <ccb-value>
+ */
+
+/*
+ * show voip call <ccb-value>
+ */
+
+EOLS (voip_call_eol,show_commands,VOIP_CALL_SHOW);
+
+HEXNUM (voip_call_ccb,voip_call_eol,no_alt,OBJ(int,1),
+ "Enter the correct address of ccb");
+
+KEYWORD (voip_call,voip_call_ccb,voip_call_cnt,"calls",
+ "Show call having the call control block",PRIV_CONF);
+
+/*
+ * show voip all-calls
+ */
+
+EOLS (voip_all_eol,show_commands,VOIP_ALL_CALL);
+
+KEYWORD (voip_all,voip_all_eol,voip_call,"all-calls",
+ "Show all calls currently active",PRIV_CONF);
+
+
+KEYWORD (exec_show_mod,voip_all,show_alarm,"voip",
+ "Show voice over ip information",PRIV_CONF | PRIV_HIDDEN);
+
+#undef ALTERNATE
+#define ALTERNATE exec_show_mod
+
+
+
+
diff --git a/data/mnet/GP10/Host/cli/src/Makefile b/data/mnet/GP10/Host/cli/src/Makefile
new file mode 100644
index 0000000..4ecc752
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/src/Makefile
@@ -0,0 +1,52 @@
+##########################################################
+#
+# (c) Copyright Cisco 2000
+# All Rights Reserved
+#
+##########################################################
+
+# TOP_OF_VOB must be defined before including l3defs.mk
+TOP_OF_VOB = ..\..\..
+
+# These Must be Properly Defined
+THIS_APP_DIR = cli
+THIS_DIRECTORY = src
+MY_OUTPUT = $(OBJDIR)\gp10cli.out
+
+# Name(s) of Common VOB directories to include
+COMMON_BLD_DIR =
+
+include $(TOP_OF_VOB)\l3defs.mk
+
+all: makeCommonObjs $(MY_OUTPUT)
+
+# Adds the .o file(s) list needed from the Common VOB
+makeCommonObjs:
+ifneq ($(COMMON_BLD_DIR),)
+ @for %f in ($(COMMON_BLD_DIR)) do \
+ make -C $(COMMON_VOB_APP_DIR)\%f \
+ all VOB=$(VOBNAME) APPDIR=Host\$(THIS_APP_DIR)\$(THIS_DIRECTORY)
+endif
+
+# If Common VOB directories to include get the .o files from bin
+$(MY_OUTPUT): $(MODULE_OBJS)
+ifneq ($(COMMON_BLD_DIR),)
+ $(LD) -r -o $@.tmp $() $(MODULE_OBJS) $(wildcard ./bin/*.o)
+else
+ $(LD) -r -o $@.tmp $() $(MODULE_OBJS)
+endif
+ $(NM) $@.tmp | munch > _ctdt.c
+ $(CC) -traditional $(CC_ARCH_SPEC) -c _ctdt.c
+ $(LD) -r -o $@ _ctdt.o $@.tmp
+ $(RM)$(subst /,$(DIRCHAR), _ctdt.c _ctdt.o $@.tmp)
+
+cleanall:
+ @for %f in ($(notdir $(MODULE_OBJS))) do \
+ $(RM) ..\bin\%f
+
+ $(RM) $(MY_OUTPUT)
+
+ifneq ($(COMMON_BLD_DIR),)
+ $(RM) bin\*.o
+ $(RM) bin\*.out
+endif \ No newline at end of file
diff --git a/data/mnet/GP10/Host/cli/src/adjcell_chain.c b/data/mnet/GP10/Host/cli/src/adjcell_chain.c
new file mode 100644
index 0000000..773bb35
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/src/adjcell_chain.c
@@ -0,0 +1,215 @@
+#include "parser_if.h"
+
+#include "oam_api.h"
+#include "mibtags.h"
+#include "MnetModuleId.h"
+
+/*
+ * Parse chains for adjacent cell configuration
+ */
+#define ALTERNATE NONE
+#include "../include/cfg_adjcell.h"
+LINK_POINT(cfg_adj_cell, ALTERNATE);
+#undef ALTERNATE
+
+
+static parser_extension_request cfg_bts_adjcell_init_table[] = {
+ { PARSE_ADD_CFG_GP10_ADJCELL, &pname(cfg_adj_cell) },
+ { PARSE_LIST_END, NULL }
+};
+
+/*
+ * Register the parser chain
+ */
+void cfg_bts_adjcell_parser_init (void)
+{
+
+ parser_add_command_list(cfg_bts_adjcell_init_table,"config");
+}
+
+
+void adjcell_nvgen (void)
+{
+ int cellnum;
+ AdjCell_ReselectionEntry res_entry;
+ AdjCell_HandoverEntry hand_entry;
+
+ for (cellnum = 0;cellnum < 16;cellnum ++) {
+ printf("\n\n config-adjcell %d",cellnum+1);
+ oam_getMibTblEntry(MIBT_adjCell_reselectionEntry,cellnum,&res_entry,
+ sizeof(AdjCell_ReselectionEntry));
+ oam_getMibTblEntry(MIBT_adjCell_handoverEntry,cellnum,&hand_entry,
+ sizeof(AdjCell_HandoverEntry));
+
+ if (hand_entry.adjCell_handoverCellID)
+ printf("\n\t handover selected");
+ else
+ printf("\n\t no handover selected");
+
+ if (hand_entry.adjCell_synchronized)
+ printf("\n\t handover synchronised");
+ else
+ printf("\n\t no handover synchronised");
+
+
+ printf("\n\t handover bcch-frequency %d handover-margin %d max-tx-power %d min-rx-level %d",
+ hand_entry.adjCell_bCCHFrequency,hand_entry.adjCell_hoMargin,
+ hand_entry.adjCell_msTxPwrMaxCell,hand_entry.adjCell_rxLevMinCell);
+
+ printf("\n\t handover cell-global-identity mcc %d",hand_entry.adjCell_mcc);
+ printf("\n\t handover cell-global-identity mnc %d",hand_entry.adjCell_mnc);
+ printf("\n\t handover cell-global-identity lac %d",hand_entry.adjCell_lac);
+ printf("\n\t handover cell-global-identity ci %d",hand_entry.adjCell_ci);
+
+ printf("\n\t handover bsic ncc %d",hand_entry.adjCell_ncc);
+ printf("\n\t handover bsic bcc %d",hand_entry.adjCell_cid);
+
+ printf("\n\t reselection bcch-frequency %d ",res_entry.adjCell_reselectionBCCHFrequency);
+ if (res_entry.adjCell_reselectionCellID)
+ printf("\n\t reselection selected");
+ else
+ printf("\n\t no reselection selected");
+ }
+}
+
+
+/*
+ * Configuration handler routine for adjacent cell parameters
+ */
+
+void adj_cell_parameters (parseinfo *csb)
+{
+ int cellnum;
+
+
+ cellnum = (int) GETOBJ(udb,current1);
+
+
+ switch (csb->which) {
+ case ADJ_CELL_RES_BCCH :
+ if (csb->sense) {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_reselectionBCCHFrequency,
+ cellnum - 1,GETOBJ(int,1));
+ } else {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_reselectionBCCHFrequency,
+ cellnum - 1,0);
+ }
+ break;
+
+ case ADJ_CELL_RES :
+ if (csb->sense) {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_reselectionCellID,
+ cellnum - 1,1);
+ } else {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_reselectionCellID,
+ cellnum - 1,0);
+ }
+ break;
+
+ case ADJ_CELL_CC_VALUE :
+ switch (GETOBJ(int,1)) {
+ case BSIC_NCC :
+ if (csb->sense) {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_ncc,
+ cellnum - 1,GETOBJ(int,2));
+ } else {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_ncc,
+ cellnum - 1,0);
+ }
+ break;
+ case BSIC_BCC :
+ if (csb->sense) {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_cid,
+ cellnum - 1,GETOBJ(int,2));
+ } else {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_cid,
+ cellnum - 1,0);
+ }
+ break;
+ }
+ break;
+ case ADJ_CELL_GI_VALUE :
+ if (csb->nvgen) {
+ return;
+ }
+ switch (GETOBJ(int,1)) {
+ case GI_MCC :
+ if (csb->sense) {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_mcc,
+ cellnum - 1,GETOBJ(int,2));
+ } else {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_mcc,
+ cellnum - 1,0);
+ }
+ break;
+ case GI_MNC :
+ if (csb->sense) {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_mnc,
+ cellnum - 1,GETOBJ(int,2));
+ } else {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_mnc,
+ cellnum - 1,0);
+ }
+ break;
+ case GI_LAC :
+ if (csb->sense) {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_lac,
+ cellnum - 1,GETOBJ(int,2));
+ } else {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_lac,
+ cellnum - 1,0);
+ }
+ break;
+ case GI_CI :
+ if (csb->sense) {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_ci,
+ cellnum - 1,GETOBJ(int,2));
+ } else {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_ci,
+ cellnum - 1,0);
+ }
+ break;
+ }
+ break;
+
+ case ADJ_CELL_BCCH :
+ if (csb->nvgen) {
+ return;
+ }
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_bCCHFrequency,
+ cellnum - 1,GETOBJ(int,1));
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_hoMargin,
+ cellnum - 1,GETOBJ(int,2));
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_msTxPwrMaxCell,
+ cellnum - 1,GETOBJ(int,3));
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_rxLevMinCell,
+ cellnum - 1,GETOBJ(int,4));
+ break;
+
+ case ADJ_CELL_SELECTION :
+ if (csb->nvgen) {
+ return;
+ }
+ switch (GETOBJ(int,1)) {
+ case CELL_SELECTED :
+ if (csb->sense) {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_handoverCellID,
+ cellnum - 1,GETOBJ(int,1));
+ } else {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_handoverCellID,
+ cellnum - 1,0);
+ }
+ break;
+ case CELL_SYNCHRONISED :
+ if (csb->sense) {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_synchronized,
+ cellnum - 1,GETOBJ(int,1));
+ } else {
+ oam_setTblEntryField(CLI_MODULE_ID,MIBT_adjCell_synchronized,
+ cellnum - 1,0);
+ }
+ break;
+ }
+ break;
+ }
+}
diff --git a/data/mnet/GP10/Host/cli/src/bts_basic_chain.c b/data/mnet/GP10/Host/cli/src/bts_basic_chain.c
new file mode 100644
index 0000000..46d00ad
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/src/bts_basic_chain.c
@@ -0,0 +1,230 @@
+#include "parser_if.h"
+
+#include "oam_api.h"
+#include "mibtags.h"
+#include "MnetModuleId.h"
+
+/*
+ * Parse chains for the cell subconfig mode
+ */
+
+#define ALTERNATE NONE
+#include "cfg_trx_exit.h"
+LINK_TRANS (configure_config_cell_trx_extend_here, ALTERNATE);
+NO_OR_DEFAULT (config_cell_trx_no, configure_config_cell_trx_extend_here,
+ PRIV_OPR | PRIV_NONVGEN);
+HELP (config_cell_trx, config_cell_trx_no,
+ "Configure cell transceiver configuration parameters:\n");
+#undef ALTERNATE
+
+/*
+ * Parse chains for the cell subconfig mode
+ */
+
+#define ALTERNATE NONE
+#include "cfg_bts_exit.h"
+LINK_TRANS (configure_config_cell_bts_extend_here, ALTERNATE);
+NO_OR_DEFAULT (config_cell_bts_no, configure_config_cell_bts_extend_here,
+ PRIV_OPR | PRIV_NONVGEN);
+HELP (config_cell_bts, config_cell_bts_no,
+ "Configure cell transceiver configuration parameters:\n");
+#undef ALTERNATE
+
+
+
+
+/*
+ * Parse chains for bts basic configuration
+ */
+#define ALTERNATE NONE
+#include "../include/cfg_bts_basic.h"
+LINK_POINT(cfg_bts_bas, ALTERNATE);
+#undef ALTERNATE
+
+
+static parser_extension_request cfg_bts_basic_init_table[] = {
+ { PARSE_ADD_CFG_GP10_CELL_BTS, &pname(cfg_bts_bas) },
+ { PARSE_LIST_END, NULL }
+};
+
+parser_mode *bts_basic;
+
+/*
+ * Register the parser chain
+ */
+void cfg_bts_basic_parser_init (void)
+{
+
+ parser_add_link_point(PARSE_ADD_CFG_GP10_CELL_TRX, "config-trx",
+ &pname(configure_config_cell_trx_extend_here));
+ parser_add_mode("config-trx", "config-trx",
+ "Configure Cell Transceiver Configuration Parameters", TRUE, TRUE, "configure",
+ NULL, NULL, &pname(config_cell_trx),NULL);
+
+ parser_add_link_point(PARSE_ADD_CFG_GP10_CELL_BTS, "bts-basic",
+ &pname(configure_config_cell_bts_extend_here));
+
+ bts_basic = parser_add_mode("bts-basic", "bts-basic",
+ "Configure Cell Bts Configuration Parameters", TRUE, TRUE, "configure",
+ NULL, NULL, &pname(config_cell_bts),NULL);
+ parser_add_command_list(cfg_bts_basic_init_table,"config");
+}
+
+/*
+ * Mib tags for global identity options
+ */
+static MibTag bts_bsic_tags[] = {MIB_bts_mcc,MIB_bts_mnc,MIB_bts_lac,MIB_bts_ci};
+
+static char *bts_gi_cli[] = {" mcc "," mnc "," lac "," ci "};
+
+/*
+ * failiure statements for global identity options
+ */
+
+static char *bsic_set_fail[] = {
+ "\n Configuration of bts mobile country code failed",
+ "\n Configuration of bts mobile network code failed",
+ "\n Configuration of bts location area code failed",
+ "\n Configuration of bts cell identifier failed"
+};
+
+static char *bts_admin_state[] = {
+ " locked ",
+ " unlocked ",
+ " shutdown "
+};
+
+
+void bts_gi_nvgen()
+{
+ long nvgen_int;
+ int i;
+
+ for (i=0;i<4;i++) {
+ oam_getMibIntVar(bts_bsic_tags[i],&nvgen_int);
+ printf("\n\t cell-global-identity %s %d",bts_gi_cli[i],nvgen_int);
+ }
+}
+
+
+/*
+ * bts basic command handler
+ */
+
+
+void bts_basic_parameters(parseinfo *csb)
+{
+ int i = 0; /* used for indexing permitted ncc */
+ long nvgen_int;
+ int intbuf[2] = {0,1};
+ int intnobuf[2] = {0,0};
+ PlmnPermittedEntry plmn_entry;
+
+ switch (csb->which) {
+ case BTS_RECV_LEVEL :
+ if (csb->nvgen) {
+ oam_getMibIntVar(MIB_rxLevAccessMin,&nvgen_int);
+ printf("\n\t %s %d",csb->nv_command,nvgen_int);
+ return;
+ }
+ SET_INT_MIB(MIB_rxLevAccessMin,GETOBJ(int,1),10,
+ "\nConfiguration of minimum receive level access failed");
+ break;
+ case BTS_LINK_TIMEOUT :
+ if (csb->nvgen) {
+ oam_getMibIntVar(MIB_radioLinkTimeout,&nvgen_int);
+ printf("\n\t %s %d",csb->nv_command,nvgen_int);
+ return;
+ }
+ SET_INT_MIB(MIB_radioLinkTimeout,GETOBJ(int,1),15,
+ "\nConfiguration of radio link timeout failed");
+ break;
+ case BTS_PER_NCC_ALL :
+ if (csb->nvgen) {
+ return;
+ }
+ if (csb->sense) {
+ for (i=0;i < 8;i++) {
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_plmnPermittedEntry,i,intbuf,
+ sizeof(int) *2);
+ }
+ } else {
+ for (i=0;i < 8;i++) {
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_plmnPermittedEntry,i,intnobuf,
+ sizeof(int) *2);
+ }
+ }
+ break;
+ case BTS_PER_NCC :
+ if (csb->nvgen) {
+ for (i=0;i < 8; i++) {
+ oam_getMibTblEntry(MIBT_plmnPermittedEntry,i,&plmn_entry,sizeof(PlmnPermittedEntry));
+ if (plmn_entry.plmnPermitted)
+ printf("\n\t plmn-permitted-ncc %d",i);
+ else
+ printf("\n\t no plmn-permitted-ncc %d",i);
+ }
+ return;
+ }
+ if (csb->sense) {
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_plmnPermittedEntry,GETOBJ(int,1),intbuf,
+ sizeof(int) *2);
+ } else {
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_plmnPermittedEntry,GETOBJ(int,1),intnobuf,
+ sizeof(int) *2);
+ }
+ break;
+ case BTS_PHY_VALUE :
+ if (csb->nvgen) {
+ oam_getMibIntVar(MIB_ny1,&nvgen_int);
+ printf("\n\t %s %d",csb->nv_command,nvgen_int);
+ return;
+ }
+ SET_INT_MIB(MIB_ny1,GETOBJ(int,1),3,
+ "\nConfiguration num of physical repetition failed");
+ break;
+ case BTS_RES_VALUE :
+ if (csb->nvgen) {
+ oam_getMibIntVar(MIB_cellReselectHysteresis,&nvgen_int);
+ printf("\n\t %s %d",csb->nv_command,nvgen_int);
+ return;
+ }
+ SET_INT_MIB(MIB_cellReselectHysteresis,GETOBJ(int,1),7,
+ "\nConfiguration cell reselect hysteresis failed");
+ break;
+ case BTS_CC_VALUE :
+ if (csb->nvgen) {
+ oam_getMibIntVar(MIB_bts_ncc,&nvgen_int);
+ printf("\n\t bsic ncc %d",nvgen_int);
+ oam_getMibIntVar(MIB_bts_cid,&nvgen_int);
+ printf("\n\t bsic bcc %d",nvgen_int);
+ return;
+ }
+ switch(GETOBJ(int,1)) {
+ case BSIC_NCC :
+ SET_INT_MIB(MIB_bts_ncc,GETOBJ(int,2),7,"\nConfiguration of network color code failed");
+ break;
+ case BSIC_BCC :
+ SET_INT_MIB(MIB_bts_cid,GETOBJ(int,2),7,
+ "\nConfiguration of base station color code failed");
+ break;
+ }
+ break;
+ case BTS_GI_VALUE :
+ if (csb->nvgen) {
+ bts_gi_nvgen ();
+ return;
+ }
+ SET_INT_MIB(bts_bsic_tags[GETOBJ(int,1)],GETOBJ(int,2),1,bsic_set_fail[GETOBJ(int,1)]);
+ break;
+ case BTS_ADMIN_STATE :
+ if (csb->nvgen) {
+ oam_getMibIntVar(MIB_bts_administrativeState,&nvgen_int);
+ printf("\n\t administrative-state %s",bts_admin_state[nvgen_int]);
+ return;
+ }
+ SET_INT_MIB(MIB_bts_administrativeState,GETOBJ(int,1),1,
+ "\nConfiguration of bts administrative state failed");
+ break;
+ }
+}
diff --git a/data/mnet/GP10/Host/cli/src/ccch_chain.c b/data/mnet/GP10/Host/cli/src/ccch_chain.c
new file mode 100644
index 0000000..3a27b0f
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/src/ccch_chain.c
@@ -0,0 +1,137 @@
+#include "parser_if.h"
+
+#include "oam_api.h"
+#include "mibtags.h"
+#include "MnetModuleId.h"
+
+
+/*
+ * Parse chains for system information configuration commands
+ */
+#define ALTERNATE NONE
+#include "../include/cfg_ccch.h"
+LINK_POINT(cfg_bts_ccch, ALTERNATE);
+#undef ALTERNATE
+
+/*
+ * Parse chains for the cell subconfig mode
+ */
+
+#define ALTERNATE NONE
+#include "cfg_ccch_exit.h"
+LINK_TRANS (configure_config_cell_ccch_extend_here, ALTERNATE);
+NO_OR_DEFAULT (config_cell_ccch_no, configure_config_cell_ccch_extend_here,
+ PRIV_OPR | PRIV_NONVGEN);
+HELP (config_cell_ccch, config_cell_ccch_no,
+ "Configure common control channel configuration parameters:\n");
+#undef ALTERNATE
+
+
+static parser_extension_request cfg_bts_ccch_init_table[] = {
+ { PARSE_ADD_CFG_GP10_CELL_CCCH, &pname(cfg_bts_ccch) },
+ { PARSE_LIST_END, NULL }
+};
+
+parser_mode *ccch_config;
+
+
+/*
+ * Register the parser chain
+ */
+void cfg_bts_ccch_parser_init (void)
+{
+ parser_add_link_point(PARSE_ADD_CFG_GP10_CELL_CCCH, "ccch-config",
+ &pname(configure_config_cell_ccch_extend_here));
+
+ ccch_config = parser_add_mode("ccch-config", "ccch-config",
+ "Configure Cell Ccch Configuration Parameters", TRUE, TRUE, "configure",NULL, NULL, &pname(config_cell_ccch),NULL);
+ parser_add_command_list(cfg_bts_ccch_init_table,"config");
+}
+
+
+
+/*
+ * CCCH Mib Tags
+ */
+
+/*
+ * The first ited needs to be replaced. At this point of time engr doesn't know this
+ */
+static MibTag ccch_mib_tags[] = {MIB_rm_nim_0_6,
+ MIB_rm_nim_0_5,MIB_rm_nim_0_4,
+ MIB_rm_nim_0_3,
+ MIB_numberOfSlotsSpreadTrans,
+ MIB_noOfMultiframesBetweenPaging,
+ MIB_noOfBlocksForAccessGrant,MIB_mSTxPwrMaxCCH,
+ MIB_maxNumberRetransmissions
+};
+
+
+/*
+ * Default values for mibs
+ */
+static int ccch_mib_def[] = {0,0,0,0,1,9,0,0,4};
+
+
+/*
+ * String for SNMP set failure information
+ */
+
+static char *ccch_set_fail[] = {
+ "\n Selection of cell bar qualify failed",
+ "\n Configuration of offset penaly failed",
+ "\n Configuration of offset temporary failed",
+ "\n Configuration of cell reselect failed",
+ "\n Configuration of max number of RACH slots failed",
+ "\n Configuration of number of multiframes failed",
+ "\n Configuration of number of frames for access grant channel failed",
+ "\n Configuration of max transmit power level failed",
+ "\n Configuration of max number of retransmission failed",
+};
+
+
+/*
+ * String for SNMP set failure information
+ */
+
+static char *ccch_show_fail[] = {
+ "\n Show configuration of cell bar qualify failed",
+ "\n Show Configuration of offset penaly failed",
+ "\n Show Configuration of offset temporary failed",
+ "\n Show Configuration of cell reselect failed",
+ "\n Show Configuration of max number of RACH slots failed",
+ "\n Show Configuration of number of multiframes failed",
+ "\n Show Configuration of number of frames for access grant channel failed",
+ "\n Show Configuration of max transmit power level failed",
+ "\n Show Configuration of max number of retransmission failed",
+};
+
+/*
+ * ccch command handler
+ */
+
+void ccch_configuration (parseinfo *csb)
+{
+ long nvgen_int;
+
+ if (csb->which == CCCH_CELL_BAR) {
+ if (csb->nvgen) {
+ oam_getMibIntVar(ccch_mib_tags[csb->which],&nvgen_int);
+ if (nvgen_int)
+ printf("\n\t %s enable",csb->nv_command);
+ else
+ printf("\n\t no %s enable",csb->nv_command);
+ return;
+ }
+
+ SET_INT_MIB(ccch_mib_tags[csb->which],csb->sense,0,ccch_set_fail[csb->which]);
+ } else {
+ if (csb->nvgen) {
+ oam_getMibIntVar(ccch_mib_tags[csb->which],&nvgen_int);
+ printf("\n\t %s %d",csb->nv_command,nvgen_int);
+ return;
+ }
+ SET_INT_MIB(ccch_mib_tags[csb->which],GETOBJ(int,1),ccch_mib_def[csb->which],
+ ccch_set_fail[csb->which]);
+ }
+}
diff --git a/data/mnet/GP10/Host/cli/src/diag_chain.c b/data/mnet/GP10/Host/cli/src/diag_chain.c
new file mode 100644
index 0000000..f45ecc3
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/src/diag_chain.c
@@ -0,0 +1,336 @@
+#include "parser_if.h"
+
+/*
+ * Include other api headers
+ */
+#include "Mch/MCHDefs.h"
+#include "oam_api.h"
+#include "mibtags.h"
+#include "MnetModuleId.h"
+
+/*
+ * Parse chains for Exec diagnostic commands
+ */
+#define ALTERNATE NONE
+#include "../include/exec_diag_cmd.h"
+LINK_POINT(exec_diag_commands, ALTERNATE);
+#undef ALTERNATE
+
+/*
+ * Parse chains for Exec show commands
+ */
+#define ALTERNATE NONE
+#include "../include/exec_show_mod.h"
+LINK_POINT(exec_show_mod_command, ALTERNATE);
+#undef ALTERNATE
+
+/*
+ * Parse chains for module specific Exec commands
+ */
+#define ALTERNATE NONE
+#include "../include/exec_module.h"
+LINK_POINT(exec_mod_cmds, ALTERNATE);
+#undef ALTERNATE
+
+/*
+ * Parse chains for module specific Exec commands
+ */
+#define ALTERNATE NONE
+#include "../include/exec_show_conf.h"
+LINK_POINT(exec_show_conf, ALTERNATE);
+#undef ALTERNATE
+
+
+/*
+ * Parse chains for module specific Exec commands
+ */
+#define ALTERNATE NONE
+#include "../include/exec_debug_gp10.h"
+LINK_POINT(exec_dbg_gp10, ALTERNATE);
+#undef ALTERNATE
+
+/*
+ * Parse chain registration array for Exec
+ */
+static parser_extension_request exec_diag_chain_init_table[] = {
+ { PARSE_ADD_EXEC_CMD, &pname(exec_diag_commands) },
+ { PARSE_ADD_SHOW_CMD, &pname(exec_show_mod_command)},
+ { PARSE_ADD_SHOW_CMD, &pname(exec_show_conf)},
+ { PARSE_ADD_EXEC_CMD, &pname(exec_mod_cmds) },
+ { PARSE_ADD_DEBUG_CMD,&pname(exec_dbg_gp10) },
+ { PARSE_ADD_CLEAR_CMD, &pname(exec_clear_chain_voip) },
+ { PARSE_LIST_END, NULL }
+};
+
+void show_configuration (parseinfo *csb)
+{
+ parseinfo *nvcsb;
+
+ nvcsb = get_csb("NV parser CSB");
+ if (csb == NULL) {
+ printf(nomemory);
+ return;
+ }
+ printf("\nBuilding configuration...");
+ nvcsb->nvgen = TRUE;
+ nvcsb->sense = TRUE;
+
+ nvcsb->priv = PRIV_MAX;
+ nvcsb->priv_set = 0xf;
+ nvcsb->mode = config_mode;
+ push_node(nvcsb, get_mode_nv(nvcsb));
+ parse_token(nvcsb);
+ free_csb(&nvcsb);
+ printf("\n");
+}
+
+
+
+
+void exec_diag_parser_init (void)
+{
+ parser_add_command_list(exec_diag_chain_init_table, "exec");
+}
+
+
+/*
+ * Global variables
+ */
+char cmd_line[MCH_MAX_COMMAND_LEN];
+
+void diagnostic_cmds (parseinfo *csb)
+{
+
+ switch (csb->which) {
+ case DIAG_CFTEST_CMD :
+ sprintf(cmd_line,"startdiag cftest %d",GETOBJ(int,1));
+ break;
+ case DIAG_STOPDIAG_CMD:
+ sprintf(cmd_line," stopdiag %s",GETOBJ(string,1));
+ break;
+ case DIAG_HPIMEMACCESS_CMD:
+ sprintf(cmd_line," startdiag hpimemoryaccess %d %d %d ",GETOBJ(int,1),GETOBJ(int,2),GETOBJ(int,3));
+ break;
+ case DIAG_HPIECHOTEST_CMD:
+ sprintf(cmd_line," startdiag hpiechotest %d %d %d %d %d",
+ GETOBJ(int,1),GETOBJ(int,2),GETOBJ(int,3),GETOBJ(int,4),GETOBJ(int,5));
+ break;
+ case DIAG_HOREPORT_CMD:
+ sprintf(cmd_line," startdiag horeport %x %x %d",GETOBJ(int,1),GETOBJ(int,2),GETOBJ(int,3));
+ break;
+ case DIAG_FPGATEST_CMD:
+ sprintf(cmd_line," startdiag fpgatest %d",GETOBJ(int,1));
+ break;
+ case DIAG_DSPMEMTEST_CMD:
+ sprintf(cmd_line," startdiag dspmemtest %d %d %d",GETOBJ(int,1),GETOBJ(int,2),GETOBJ(int,3));
+ break;
+ case DIAG_DSPLOOPBACK_CMD:
+ sprintf(cmd_line," startdiag dsploopback %d %d %d",GETOBJ(int,1),GETOBJ(int,2),GETOBJ(int,3));
+ break;
+ case DIAG_DSPEXTMEMTEST_CMD:
+ sprintf(cmd_line," startdiag dspextmemtest %d %d %d",
+ GETOBJ(int,1),GETOBJ(int,2),GETOBJ(int,3));
+ break;
+ case DIAG_DSPBBLBTEST_CMD:
+ sprintf(cmd_line," startdiag dspbblbtest %d %d %d %d %d",
+ GETOBJ(int,1),GETOBJ(int,2),GETOBJ(int,3),GETOBJ(int,4),GETOBJ(int,5));
+ break;
+ case DIAG_DLREPORT_CMD:
+ sprintf(cmd_line," startdiag dlreport %x %x %d",GETOBJ(int,1),GETOBJ(int,2),GETOBJ(int,3));
+ break;
+ case DIAG_IFREPORT_CMD:
+ sprintf(cmd_line," startdiag ifreport %x %x %d",GETOBJ(int,1),GETOBJ(int,2),GETOBJ(int,3));
+ break;
+ case DIAG_MSREPORT_CMD:
+ sprintf(cmd_line," startdiag msreport %x %x %d",GETOBJ(int,1),GETOBJ(int,2),GETOBJ(int,3));
+ break;
+ case DIAG_I2CTEST_CMD :
+ sprintf(cmd_line," startdiag i2ctest");
+ break;
+ case DIAG_I2CLOOPBACK_CMD :
+ sprintf(cmd_line,"startdiag i2cloopback numbytes %d duration %d %d %s",GETOBJ(int,1),
+ GETOBJ(int,2),GETOBJ(int,3),(GETOBJ(int,4)!=HALT_ON_ERROR)?"":"Haltonerror");
+ break;
+ }
+ /*
+ * call the MCH routine to handle the command
+ */
+ MaintCmd__FPc(cmd_line);
+}
+
+/*
+ * show command handler
+ */
+
+void show_commands (parseinfo *csb)
+{
+ switch (csb->which) {
+ case VERSION_OPT :
+ oam_getMibByteAry(MIB_viperCellSoftwareBuild,nvgen_string,CLI_MAX_STRING_LEN);
+ printf("\n %s\n",nvgen_string);
+ break;
+ case DEBUG_OPT :
+ ViperLogShowAllFilters();
+ break;
+ case CDR_DATA :
+ CdrDataPrint();
+ break;
+ case ALARM_STATISTICS :
+ AlarmPrintStatus();
+ break;
+ case VOIP_CALL_STATS :
+ VoipShowCallStats__Fv();
+ break;
+ case VOIP_CALL_CNT :
+ VoipShowCallCounters__Fv();
+ break;
+ case VOIP_CALL_SHOW :
+ VoipShowCall__FP19_CALL_CONTROL_BLOCK(GETOBJ(int,1));
+ break;
+ case VOIP_ALL_CALL:
+ VoipShowAllCalls__Fv();
+ break;
+ }
+}
+
+/*
+ * module specific exec command handler
+ */
+extern void VoipClearCallStats__Fv(void);
+void exec_module (parseinfo *csb)
+{
+ char cdr_ipaddr[16];
+ int tag;
+
+ switch (csb->which) {
+ case MIB_FILE :
+ switch (GETOBJ(int,1))
+ {
+ case MIB_IMPORT :
+ snmp_loadMib(GETOBJ(string,1));
+ break;
+ case MIB_EXPORT :
+ snmp_saveMib(GETOBJ(string,1));
+ break;
+ }
+ break;
+
+ case SNMP_SET_MIB :
+ if (tag = snmp_nameToTag(GETOBJ(string,1))) {
+ if (MTYPE_IS_TABLE(MIB_TYP(tag))) {
+ if (GETOBJ(int,1) == MIB_TYPE_INT) {
+ if (SnmpMibSet(GETOBJ(string,1),GETOBJ(int,3),GETOBJ(int,2)) != STATUS_OK )
+ printf(" Setting of mib %s failed",GETOBJ(string,1));
+ } else {
+ if (SnmpMibSet(GETOBJ(string,1),GETOBJ(int,3),GETOBJ(string,2)) != STATUS_OK)
+ printf(" Setting of mib %s failed",GETOBJ(string,1));
+ }
+ } else {
+ if (GETOBJ(int,1) == MIB_TYPE_INT) {
+ if (SnmpMibSet(GETOBJ(string,1),GETOBJ(int,2)) != STATUS_OK )
+ printf(" Setting of mib %s failed",GETOBJ(string,1));
+ } else {
+ if (SnmpMibSet(GETOBJ(string,1),GETOBJ(string,2)) != STATUS_OK)
+ printf(" Setting of mib %s failed",GETOBJ(string,1));
+ }
+ }
+ } else {
+ printf("Unable to locate MIB tag from supplied mib string '%s'\n", GETOBJ(string,1));
+ }
+ break;
+
+ case SNMP_GET_MIB :
+ SnmpMibGet(GETOBJ(string,1),GETOBJ(int,2));
+ break;
+ case SNMP_MIB_LKUP :
+ SnmpMibLookup(GETOBJ(string,1));
+ break;
+ case CDR_SWITCH :
+ address_string(GETOBJ(paddr,1)->ip_addr,cdr_ipaddr);
+ _cdrSwitchServer(cdr_ipaddr);
+ break;
+ case CDR_STATUS :
+ cdrGetStatus();
+ break;
+ case CHECK_EEPROM :
+ CheckEeprom__Fv();
+ break;
+ case WRITE_EEPROM :
+ WriteEeprom__Fv();
+ break;
+ case READ_EEPROM :
+ ReadEeprom__Fv();
+ break;
+ }
+}
+
+/*
+ * Mask for turning on debugs
+ */
+static int gp10_debug_mask[] = {DBG_LOG_CONTROL_TRACE_MASK ,
+ DBG_LOG_CALL_TRACE_MASK ,
+ DBG_LOG_INFORMATIONAL_MASK ,
+ DBG_LOG_WARNINGS_MASK ,
+ DBG_LOG_ERRORS_MASK,
+ DBG_LOG_ALL_TRACE_MASK,
+ DBG_LOG_TIMESTAMP_MASK
+};
+
+/*
+ * Mask for turning off debugs
+ */
+
+static int gp10_debug_inversemask[] = {DBG_LOG_CONTROL_TRACE_INVERSE_MASK ,
+ DBG_LOG_CALL_TRACE_INVERSE_MASK ,
+ DBG_LOG_INFORMATIONAL_INVERSE_MASK ,
+ DBG_LOG_WARNINGS_INVERSE_MASK ,
+ DBG_LOG_ERRORS_INVERSE_MASK,
+ DBG_LOG_ALL_TRACE_INVERSE_MASK
+};
+
+static int debug_option_flag = 0;
+
+void set_gp10_debug_flag (parseinfo *csb)
+{
+ if (csb->sense) {
+ debug_option_flag |= gp10_debug_mask[GETOBJ(int,2)];
+ } else {
+ debug_option_flag &= gp10_debug_inversemask[GETOBJ(int,2)];
+ }
+}
+
+/*
+ * Handler routine for debug commands
+ */
+extern int logging_dest;
+void gp10_debug_command( parseinfo *csb)
+{
+ char c;
+
+ if(GETOBJ(int,1)==GP10_DEBUG_ALL && csb->sense){
+ printf("This may severely impact network performance: Continue: [yes/no] ");
+ read(STD_IN,&c,1);
+ write(STD_OUT,"\n",1);
+ if(c!='y')
+ return;
+ }
+
+ if (debug_option_flag == 0) {
+ if (csb->sense) {
+
+ debug_option_flag = gp10_debug_mask[DBG_ALL_LOG];
+ } else {
+ debug_option_flag = gp10_debug_inversemask[DBG_ALL_LOG];
+ }
+ }
+
+
+ debug_option_flag |= logging_dest;
+ ViperLogSetModuleFilters(GETOBJ(int,1),debug_option_flag);
+ debug_option_flag = 0;
+}
+
+
+void clearVoipCall(parseinfo *csb){
+ VoipClearCallStats__Fv();
+}
diff --git a/data/mnet/GP10/Host/cli/src/proto_chain.c b/data/mnet/GP10/Host/cli/src/proto_chain.c
new file mode 100644
index 0000000..53b12f3
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/src/proto_chain.c
@@ -0,0 +1,150 @@
+#include "parser_if.h"
+
+#include "oam_api.h"
+#include "mibtags.h"
+#include "MnetModuleId.h"
+
+/*
+ * Parse chains for system information configuration commands
+ */
+#define ALTERNATE NONE
+#include "../include/cfg_timers.h"
+LINK_POINT(cfg_timer, ALTERNATE);
+#undef ALTERNATE
+
+#define ALTERNATE NONE
+#include "cfg_proto_exit.h"
+LINK_TRANS (configure_gp10_proto_extend_here, ALTERNATE);
+NO_OR_DEFAULT (gp10_proto_config_no, configure_gp10_proto_extend_here,
+ PRIV_OPR | PRIV_NONVGEN);
+HELP (gp10_proto_config, gp10_proto_config_no,
+ "Configure gp10 protocol configuration parameters:\n");
+#undef ALTERNATE
+
+static parser_extension_request cfg_proto_init_table[] = {
+ { PARSE_ADD_CFG_GP10_PROTO, &pname(cfg_timer) },
+ { PARSE_LIST_END, NULL }
+};
+
+parser_mode *config_proto;
+/*
+ * Register the parser chain
+ */
+void cfg_proto_parser_init (void)
+{
+ parser_add_link_point(PARSE_ADD_CFG_GP10_PROTO, "config-proto",
+ &pname(configure_gp10_proto_extend_here));
+ config_proto = parser_add_mode("config-proto", "config-proto",
+ "Configure Protocol Configuration Parameters", TRUE, TRUE, "configure",
+ NULL, NULL, &pname(gp10_proto_config),NULL);
+ parser_add_command_list(cfg_proto_init_table,"config");
+}
+
+
+
+/*
+ * Mib tags of the timer
+ */
+
+static MibTag timer_mib_tags[] = {MIB_sdcchSAPI0,MIB_sdcchSAPI3,MIB_sacchSDCCH,
+ MIB_sacchTCHSAPI0,MIB_sdcchTCHSAPI3,
+ MIB_t3101,MIB_t3103,MIB_t3105,MIB_t3107,MIB_t3109,
+ MIB_t3111,MIB_t3113,MIB_cc_alerting_T301,MIB_cc_setup_T303,
+ MIB_cc_call_confirmed_T310,MIB_cc_connect_T313,
+ MIB_cc_disconnect_T305,MIB_cc_release_T308
+};
+
+/*
+ * String for printing SNMP failiure to set the timer
+ */
+
+static char *time_set_fail_str[] = {
+ "\nConfiguration of Stand-alone dedicated control channel sapi0 timer failed",
+ "\nConfiguration of Stand-alone dedicated control channel sapi3 timer failed",
+ "\nConfiguration of Stand-alone dedicated control channel sdcch timer failed",
+ "\nConfiguration of sacch tracffic channel sapi0 timer failed",
+ "\nConfiguration of Stand-alone dedicated control channel tch sapi3 timer failed",
+ "\nConfiguration of immediate assignment timer failed",
+ "\nConfiguration of handover command timer failed",
+ "\nConfiguration of physical information timer failed",
+ "\nConfiguration of assignment command timer failed",
+ "\nConfiguration of lower layer failiure timer failed",
+ "\nConfiguration of channel activation delay timer failed",
+ "\nConfiguration of paging message timer failed",
+ "\nConfiguration of alerting received timer failed",
+ "\nConfiguration of setup sent timer failed",
+ "\nConfiguration of call confirmation received timer failed",
+ "\nConfiguration of connect sent timer failed",
+ "\nConfiguration of disconnect sent timer failed",
+ "\nConfiguration of release sent timer failed"
+};
+
+
+void rmm_timer_nvgen (parseinfo *csb)
+{
+ NVADDGEN_TIMER_MIB(MIB_t3101,"immediate-assignment");
+ NVADDGEN_TIMER_MIB(MIB_t3103,"handover-command");
+ NVADDGEN_TIMER_MIB(MIB_t3105,"physical-information");
+ NVADDGEN_TIMER_MIB(MIB_t3107,"assignment-command");
+ NVADDGEN_TIMER_MIB(MIB_t3109,"lower-layer-failure");
+ NVADDGEN_TIMER_MIB(MIB_t3111,"channel-activation");
+ NVADDGEN_TIMER_MIB(MIB_t3113,"paging-messages");
+}
+
+void ccm_timer_nvgen (parseinfo *csb)
+{
+ NVADDGEN_TIMER_MIB(MIB_cc_alerting_T301,"alerting-received");
+ NVADDGEN_TIMER_MIB(MIB_cc_setup_T303,"setup-sent");
+ NVADDGEN_TIMER_MIB(MIB_cc_call_confirmed_T310,"call-confirmed");
+ NVADDGEN_TIMER_MIB(MIB_cc_connect_T313,"connect-sent");
+ NVADDGEN_TIMER_MIB(MIB_cc_disconnect_T305,"disconnect-sent");
+ NVADDGEN_TIMER_MIB(MIB_cc_release_T308,"release-sent");
+}
+
+
+/*
+ * Timer confiuration routine
+ */
+
+void timer_configuration (parseinfo *csb)
+{
+ long nvgen_int;
+
+ switch (csb->which) {
+ case CCM_TIMER :
+ if (csb->nvgen) {
+ ccm_timer_nvgen(csb);
+ return;
+ }
+ SET_INT_MIB(timer_mib_tags[GETOBJ(int,1)],GETOBJ(int,2),0,time_set_fail_str[GETOBJ(int,1)]);
+ break;
+ case RMM_TIMER :
+ if (csb->nvgen) {
+ rmm_timer_nvgen(csb);
+ return;
+ }
+ SET_INT_MIB(timer_mib_tags[GETOBJ(int,1)],GETOBJ(int,2),0,time_set_fail_str[GETOBJ(int,1)]);
+ break;
+ case SACCH_TIMER :
+ NVADDGEN_TIMER_MIB(MIB_sacchTCHSAPI0,"tch-0-timer");
+ NVGEN_TIMER_MIB(MIB_sacchSDCCH,"sdcch-timer");
+ SET_INT_MIB(timer_mib_tags[GETOBJ(int,1)],GETOBJ(int,2),0,time_set_fail_str[GETOBJ(int,1)]);
+ break;
+ case SDCCH_TIMER :
+ NVADDGEN_TIMER_MIB(MIB_sdcchSAPI0,"sapi-0-timer");
+ NVADDGEN_TIMER_MIB(MIB_sdcchSAPI3,"sapi-3-timer");
+ NVGEN_TIMER_MIB(MIB_sdcchTCHSAPI3,"sdcch-tch-timer");
+ SET_INT_MIB(timer_mib_tags[GETOBJ(int,1)],GETOBJ(int,2),0,time_set_fail_str[GETOBJ(int,1)]);
+ break;
+ case FACCH_TIMER :
+ if (csb->nvgen) {
+ oam_getMibIntVar(MIB_facchTCHF,&nvgen_int);
+ printf("\n\t %s %d",csb->nv_command,nvgen_int);
+ return;
+ }
+
+ SET_INT_MIB(MIB_facchTCHF,GETOBJ(int,1),0,"\nConfiguration of TCH full rate timer failed");
+ break;
+ }
+}
+
diff --git a/data/mnet/GP10/Host/cli/src/sys_info_chain.c b/data/mnet/GP10/Host/cli/src/sys_info_chain.c
new file mode 100644
index 0000000..932c734
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/src/sys_info_chain.c
@@ -0,0 +1,871 @@
+#include "parser_if.h"
+
+#include "oam_api.h"
+#include "mibtags.h"
+#include "MnetModuleId.h"
+/*
+ * Parse chains for system information configuration commands
+ */
+#define ALTERNATE NONE
+#include "../include/cfg_sys_info.h"
+LINK_POINT(cfg_sys_info, ALTERNATE);
+#undef ALTERNATE
+
+/*
+ * Parse chains for voip configuration commands
+ */
+#define ALTERNATE NONE
+#include "../include/cfg_voip.h"
+LINK_POINT(cfg_voip, ALTERNATE);
+#undef ALTERNATE
+
+
+/*
+ * Parse chains for bts option commands
+ */
+#define ALTERNATE NONE
+#include "../include/cfg_bts_options.h"
+LINK_POINT(cfg_bts_option, ALTERNATE);
+#undef ALTERNATE
+
+/*
+ * Parse chains for bts option commands
+ */
+#define ALTERNATE NONE
+#include "../include/cfg_sys_feat.h"
+LINK_POINT(cfg_sys_feat, ALTERNATE);
+#undef ALTERNATE
+
+
+/*
+ * Parse chains for bts option commands
+ */
+#define ALTERNATE NONE
+#include "../include/cfg_mspwr_ctrl.h"
+LINK_POINT(cfg_mspwr_ctrl, ALTERNATE);
+#undef ALTERNATE
+
+/*
+ * Parse chains for the global subconfig mode
+ */
+
+#define ALTERNATE NONE
+#include "cfg_cell_exit.h"
+LINK_TRANS (configure_gp10_cell_extend_here, ALTERNATE);
+NO_OR_DEFAULT (gp10_cell_config_no, configure_gp10_cell_extend_here,
+ PRIV_OPR | PRIV_NONVGEN);
+HELP (gp10_cell_config, gp10_cell_config_no,
+ "Configure gp10 cell configuration parameters:\n");
+#undef ALTERNATE
+
+#define ALTERNATE NONE
+#include "cfg_adjcell_exit.h"
+LINK_TRANS (configure_gp10_adjcell_extend_here, ALTERNATE);
+NO_OR_DEFAULT (gp10_adjcell_config_no, configure_gp10_adjcell_extend_here,
+ PRIV_OPR | PRIV_NONVGEN);
+HELP (gp10_adjcell_config, gp10_adjcell_config_no,
+ "Configure gp10 adjacent cell configuration parameters:\n");
+#undef ALTERNATE
+
+/*
+ * Parse chain registration array for Exec
+ */
+static parser_extension_request cfg_sysinfo_init_table[] = {
+ { PARSE_ADD_CFG_TOP_CMD, &pname(cfg_sys_info) },
+ { PARSE_ADD_CFG_TOP_CMD, &pname(cfg_voip) },
+ { PARSE_ADD_CFG_GP10_CELL, &pname(cfg_bts_option) },
+ { PARSE_ADD_CFG_TOP_CMD, &pname(cfg_sys_feat) },
+ { PARSE_ADD_CFG_TOP_CMD, &pname(cfg_mspwr_ctrl) },
+ { PARSE_LIST_END, NULL }
+};
+
+static parser_mode *config_adjcell;
+static parser_mode *config_cell;
+extern parser_mode *config_proto;
+extern parser_mode *ccch_config;
+extern parser_mode *bts_basic;
+
+/* parser init routine */
+
+void gp10_subconfig_init (void)
+{
+ parser_add_link_point(PARSE_ADD_CFG_GP10_CELL, "config-cell",
+ &pname(configure_gp10_cell_extend_here));
+ config_cell = parser_add_mode("config-cell", "config-cell",
+ "Configure Cell Configuration Parameters", TRUE, TRUE, "configure",
+ NULL, NULL, &pname(gp10_cell_config),NULL);
+ parser_add_link_point(PARSE_ADD_CFG_GP10_ADJCELL, "config-adjcell",
+ &pname(configure_gp10_adjcell_extend_here));
+ config_adjcell = parser_add_mode("config-adjcell", "config-adjcell",
+ "Configure Adjacent Cell Configuration Parameters", TRUE, TRUE, "configure",
+ NULL, NULL, &pname(gp10_adjcell_config),NULL);
+}
+
+/*
+ * Register the parser chain
+ */
+void commands_init (void)
+{
+ gp10_subconfig_init();
+ parser_add_command_list(cfg_sysinfo_init_table,"config");
+ exec_diag_parser_init();
+ cfg_bts_basic_parser_init();
+ cfg_bts_ccch_parser_init();
+ cfg_bts_adjcell_parser_init ();
+ cfg_trx_parser_init();
+ cfg_proto_parser_init();
+}
+
+
+static void submode_nvgen (parseinfo *csb,parser_mode *mode)
+{
+ parseinfo *nvcsb;
+
+ nvcsb = get_csb("NV parser CSB");
+ if (csb == NULL) {
+ printf(nomemory);
+ return;
+ }
+ nvcsb->nvgen = TRUE;
+ nvcsb->sense = TRUE;
+ nvcsb->priv = PRIV_MAX;
+ nvcsb->priv_set = 0xf;
+ nvcsb->mode = mode;
+ push_node(nvcsb, get_mode_nv(nvcsb));
+ parse_token(nvcsb);
+ free_csb(&nvcsb);
+}
+
+/*
+ * sub config modes
+ */
+
+
+void gp10_subconfig_cmds (parseinfo *csb)
+{
+
+ switch (csb->which) {
+ case SUB_CONFIG_PROTO :
+ if (csb->nvgen) {
+ printf("\n\nconfig-proto");
+ submode_nvgen(csb,config_proto);
+ return;
+ }
+ set_mode_byname(&csb->mode, "config-proto", MODE_VERBOSE);
+ break;
+ case SUB_CONFIG_ADJCELL :
+ if (csb->nvgen) {
+ adjcell_nvgen ();
+ return;
+ }
+ SETOBJ(udb, current1) = (void *)GETOBJ(int,1);
+ set_mode_byname(&csb->mode, "config-adjcell", MODE_VERBOSE);
+ break;
+ case SUB_CONFIG_CELL :
+ if (csb->nvgen) {
+ submode_nvgen(csb,config_cell);
+ return;
+ }
+ set_mode_byname(&csb->mode, "config-cell", MODE_VERBOSE);
+ break;
+ }
+}
+
+/*
+ * cell sub config modes
+ */
+
+void gp10_cell_subconfig_cmds (parseinfo *csb)
+{
+ switch (csb->which) {
+ case CFG_CELL_CCCH :
+ if (csb->nvgen) {
+ printf("\n\n ccch-config");
+ submode_nvgen(csb,ccch_config);
+ return;
+ }
+ set_mode_byname(&csb->mode, "ccch-config", MODE_VERBOSE);
+ break;
+ case CFG_CELL_TRX :
+ if (csb->nvgen) {
+ trx_nvgen();
+ return;
+ }
+ SETOBJ(udb, current1) = (void *)GETOBJ(int,1);
+ set_mode_byname(&csb->mode, "config-trx", MODE_VERBOSE);
+ break;
+ case CFG_CELL_BTS :
+ if (csb->nvgen) {
+ printf("\n\n bts-basic");
+ submode_nvgen(csb,bts_basic);
+ return;
+ }
+ set_mode_byname(&csb->mode, "bts-basic", MODE_VERBOSE);
+ break;
+ }
+}
+
+
+char *
+address_hexstring (ulong address,char *buf)
+{
+ sprintf(buf, ":%02x%02x%02x%02x",
+ (address >> 24) & 0xff, (address >> 16) & 0xff,
+ (address >> 8) & 0xff, address & 0xff);
+
+ return buf;
+}
+
+/*
+ * System configuration commands
+ */
+void system_configuration (parseinfo *csb)
+{
+ long nvgen_int;
+ char ip_string[16];
+
+ switch (csb->which) {
+ case CONF_CUSTADDR :
+ NVGEN_STRING_MIB(MIB_viperCellCustomerAddress,
+ "\n Show configuration of vipercell customer address failed");
+
+ if (csb->sense) {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellCustomerAddress,
+ (unsigned char *)GETOBJ(string,1),strlen(GETOBJ(string,1))) != STATUS_OK) {
+ printf("\n Configuration of vipercell customer address failed");
+ }
+ } else {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellCustomerAddress,
+ (unsigned char *)" ",1) != STATUS_OK) {
+ printf("\n Configuration of vipercell customer address failed");
+ }
+ }
+ break;
+
+
+ case CONF_CUSTINFO :
+ NVGEN_STRING_MIB(MIB_viperCellCustomerInfo,
+ "\n Show Configuration of vipercell customer information failed");
+
+ if (csb->sense) {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellCustomerInfo,(unsigned char *)GETOBJ(string,1),
+ strlen(GETOBJ(string,1))) != STATUS_OK) {
+ printf("\n Configuration of vipercell customer information failed");
+ }
+ } else {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellCustomerInfo,(unsigned char *)" ",
+ 1) != STATUS_OK) {
+ printf("\n Configuration of vipercell customer information failed");
+ }
+ }
+ break;
+
+
+ case CONF_CUSTEMAIL :
+
+ NVGEN_STRING_MIB(MIB_viperCellCustomerEmail,
+ "\n Show Configuration of vipercell customer email failed");
+
+ if (csb->sense) {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellCustomerEmail,
+ (unsigned char *)GETOBJ(string,1),strlen(GETOBJ(string,1))) != STATUS_OK) {
+ printf("\n Configuration of vipercell customer email failed");
+ }
+ } else {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellCustomerEmail,(unsigned char *)" ",
+ 1) != STATUS_OK) {
+ printf("\n Configuration of vipercell customer email failed");
+ }
+ }
+ break;
+
+
+ case CONF_CUSTPHONE :
+
+ NVGEN_STRING_MIB(MIB_viperCellCustomerPhone,
+ "\n Show Configuration of vipercell customer phone failed");
+ if (csb->sense) {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellCustomerPhone,
+ (unsigned char *)GETOBJ(string,1),strlen(GETOBJ(string,1))) != STATUS_OK) {
+ printf("\n Configuration of vipercell customer phone failed");
+ }
+ } else {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellCustomerPhone,
+ (unsigned char *)" ",1) != STATUS_OK) {
+ printf("\n Configuration of vipercell customer phone failed");
+ }
+ }
+ break;
+
+
+ case CONF_CUSTNAME :
+ NVGEN_STRING_MIB(MIB_viperCellCustomerName,
+ "\n Show Configuration of vipercell customer name failed");
+ if (csb->sense) {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellCustomerName,(unsigned char *)GETOBJ(string,1),
+ strlen(GETOBJ(string,1))) != STATUS_OK) {
+ printf("\n Configuration of vipercell customer name failed");
+ }
+ } else {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellCustomerName,(unsigned char *)" ",
+ 1) != STATUS_OK) {
+ printf("\n Configuration of vipercell customer name failed");
+ }
+ }
+ break;
+
+
+ case CONF_ASSET :
+ NVGEN_STRING_MIB(MIB_viperCellAssetNumber,
+ "\n Show Configuration of vipercell asset number failed");
+
+ if (csb->sense) {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellAssetNumber,(unsigned char *)GETOBJ(string,1),
+ strlen(GETOBJ(string,1))) != STATUS_OK) {
+ printf("\n Configuration of vipercell asset number failed");
+ }
+ } else {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellAssetNumber,(unsigned char *)" ",
+ 1) != STATUS_OK) {
+ printf("\n Configuration of vipercell asset number failed");
+ }
+ }
+ break;
+ oam_getMibIntVar(MIB_viperCellDefGateway,&nvgen_int);
+ address_string(nvgen_int,ip_string);
+ printf("\n ip default-gateway %s",ip_string);;
+
+
+ case CONF_LOCATION :
+
+ NVGEN_STRING_MIB(MIB_viperCellLocation,
+ "\n Show Configuration of vipercell location failed");
+
+ if (csb->sense) {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellLocation,(unsigned char *)GETOBJ(string,1),
+ strlen(GETOBJ(string,1))) != STATUS_OK) {
+ printf("\n Configuration of vipercell location failed");
+ }
+ } else {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellLocation,(unsigned char *)" ",
+ 1) != STATUS_OK) {
+ printf("\n Configuration of vipercell location failed");
+ }
+ }
+ break;
+
+
+ case CONF_GW_IPADDR :
+ NVGEN_IP_MIB(MIB_viperCellDefGateway,
+ "\n Show Configuration of vipercell gateway ip address failed");
+ if (csb->sense) {
+ if ((oam_setMibIntVar(CLI_MODULE_ID,MIB_viperCellDefGateway,
+ GETOBJ(paddr,1)->ip_addr))!= STATUS_OK) {
+ printf("\n Configuration of vipercell gateway IP address failed");
+ }
+ } else {
+ if (oam_setMibIntVar(CLI_MODULE_ID,MIB_viperCellDefGateway,0)!= STATUS_OK) {
+ printf("\n Configuration of vipercell gateway IP address failed");
+ }
+ }
+ break;
+
+
+ case CONF_SYS_IPADDR :
+ if (csb->nvgen) {
+ sysIpAddrGet(nvgen_string);
+ printf("\n %s %s",csb->nv_command,nvgen_string);
+ return;
+ }
+ SET_INT_MIB(MIB_viperCellIPAddress,GETOBJ(paddr,1)->ip_addr,0,
+ "\n Configuration of vipercell IP address failed");
+ address_string(GETOBJ(paddr,1)->ip_addr,nvgen_string);
+ address_hexstring(GETOBJ(paddr,2)->ip_addr,ip_string);
+ strcat(nvgen_string,ip_string);
+ sysIpAddrSet(nvgen_string);
+ break;
+
+ case CONF_SYS_NAME :
+ NVGEN_STRING_MIB(MIB_viperCellName,
+ "\n Show Configuration of vipercell name failed");
+ if (csb->sense) {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellName,(unsigned char *)GETOBJ(string,1),
+ strlen(GETOBJ(string,1))) != STATUS_OK) {
+ printf("\n Configuration of vipercell name failed");
+ }
+ } else {
+ if (oam_setMibByteAry(CLI_MODULE_ID,MIB_viperCellName,(unsigned char *)" ",
+ 1) != STATUS_OK) {
+ printf("\n Configuration of vipercell name failed");
+ }
+ }
+ break;
+ case CONF_SNMP_COMM :
+ NVADDGEN_STRING_MIB(MIB_readCommunity,
+ "\n Show Configuration of vipercell snmp read community failed",TRUE,FALSE);
+ NVADDGEN_STRING_MIB(MIB_writeCommunity,
+ "\n Show Configuration of vipercell snmp write community failed",FALSE,TRUE);
+ if (csb->sense) {
+ oam_setMibByteAry(CLI_MODULE_ID,MIB_readCommunity,(unsigned char *) GETOBJ(string,1),
+ strlen(GETOBJ(string,1)));
+ oam_setMibByteAry(CLI_MODULE_ID,MIB_writeCommunity,(unsigned char *) GETOBJ(string,2),
+ strlen(GETOBJ(string,2)));
+ } else {
+ oam_setMibByteAry(CLI_MODULE_ID,MIB_readCommunity,(unsigned char *)" ",1);
+ oam_setMibByteAry(CLI_MODULE_ID,MIB_writeCommunity,(unsigned char *)" ",1);
+ }
+ }
+}
+
+
+
+/*
+ * voice over ip parameter configuration
+ */
+
+void voip_parameters (parseinfo *csb)
+{
+ switch (csb->which) {
+ case COUNTRY_CODE :
+ NVGEN_INT_MIB(MIB_h323_t35CountryCode,
+ "\n Show Configuration voice-over-ip country code failed")
+ SET_INT_MIB(MIB_h323_t35CountryCode,GETOBJ(int,1),181,
+ "\n Configuration voice-over-ip country code failed");
+ break;
+
+ case CALL_SIG_PORT_NUM :
+ NVGEN_INT_MIB(MIB_h323_Q931CallSignalingPort,
+ "\n Show Configuration voice-over-ip signalling port failed");
+ SET_INT_MIB(MIB_h323_Q931CallSignalingPort,GETOBJ(int,1),1720,
+ "\n Configuration voice-over-ip signalling port failed");
+ break;
+
+ case GMC_IP_ADDR :
+ NVGEN_IP_MIB(MIB_h323_GKIPAddress,
+ "\n Show Configuration gmc ip address failed");
+ SET_INT_MIB(MIB_h323_GKIPAddress,GETOBJ(paddr,1)->ip_addr,0,
+ "\n Configuration gmc ip address failed");
+ break;
+ case GMC_PORT_NUM :
+ NVGEN_INT_MIB(MIB_h323_GKPort,
+ "\n Show Configuration gmc port failed");
+ SET_INT_MIB(MIB_h323_GKPort,GETOBJ(int,1),1719,
+ "\n Configuration gmc port failed");
+ break;
+ }
+}
+
+void mspower_commands (parseinfo *csb)
+{
+ switch(csb->which) {
+ case MAX_POWER_LEVEL :
+ NVGEN_INT_MIB(MIB_msTxPwrMaxCellDef,
+ "\n Show Configuration of ms-power-control max ms tx power failed");
+
+ SET_INT_MIB(MIB_msTxPwrMaxCellDef,GETOBJ(int,1),30,
+ "\n Configuration of ms-power-control max ms tx power failed");
+ break;
+ case UPLINK_TARGET :
+ NVGEN_INT_MIB(MIB_pcLowerThresholdLevParamRxLevelUL,
+ "\n Show Configuration of ms-power-control uplink power control target failed");
+ SET_INT_MIB(MIB_pcLowerThresholdLevParamRxLevelUL,GETOBJ(int,1),30,
+ "\n Configuration of ms-power-control uplink power control target failed");
+ break;
+
+ case SIGNAL_QUALITY :
+ NVGEN_INT_MIB(MIB_pcAveragingQualHreqave,
+ "\n Show Configuration of ms-power-control signal-quality-avg-window failed");
+ SET_INT_MIB(MIB_pcAveragingQualHreqave,GETOBJ(int,1),4,
+ "\n Configuration of ms-power-control signal-quality-avg-window failed");
+ break;
+ case SIGNAL_STRENGTH :
+ NVGEN_INT_MIB(MIB_pcAveragingLevHreqave,
+ "\n Show Configuration of ms-power-control signal-strength-avg-window failed");
+ SET_INT_MIB(MIB_pcAveragingLevHreqave,GETOBJ(int,1),4,
+ "\n Configuration of ms-power-control signal-strength-avg-window failed");
+ break;
+ }
+}
+
+
+static MibTag bts_mib_tags[] = {MIB_allowIMSIAttachDetach,MIB_cellBarred,
+ MIB_dtxDownlink,MIB_rm_nim_1_0,MIB_emergencyCallRestricted};
+
+
+static char *bts_nv_str[] = {
+ " imsi-attach ",
+ " cell-barred ",
+ " downlink-dtx ",
+ " imsi-for-emergency ",
+ " restricted-emergency-call "
+};
+
+static char *bts_set_fail[] = {
+ "\n IMSI Attach enable/disable failed",
+ "\n Cell barred enable/disable failed",
+ "\n Downlink dex enable/disable failed",
+ "\n Imsi for emergency required enable/disable failed",
+ "\n Restricted emergency call enable/disable failed"
+
+};
+
+static char *bts_dtx_mode[] = {
+ " ms-may-use-dtx ",
+ " ms-shall-use-dtx ",
+ " ms-shall-not-use-dtx "
+};
+
+static void bts_options_nvgen (void)
+{
+ long nvgen_int;
+ int intbuf[2]= {0,0};
+ int index;
+
+ printf("\n\n config-cell");
+
+ for (index = 0;index < 5;index++) {
+ oam_getMibIntVar(bts_mib_tags[index],&nvgen_int);
+ if (nvgen_int) {
+ printf("\n\t bts-options %s enable",bts_nv_str[index]);
+ } else {
+ printf("\n\t no bts-options %s enable",bts_nv_str[index]);
+ }
+ }
+
+ oam_getMibIntVar(MIB_timerPeriodicUpdateMS,&nvgen_int);
+ printf("\n\t bts-options location-update-interval %d ",nvgen_int);
+
+ for (index=0;index<16;index++) {
+ oam_getMibTblEntry(MIBT_notAllowedAccessClassEntry,index,intbuf,sizeof(int)*2);
+ if (intbuf[1]) {
+ printf("\n\t bts-options ms-access-class-not-allowed %d",index);
+ } else {
+ printf("\n\t no bts-options ms-access-class-not-allowed %d",index);
+ }
+ }
+
+ oam_getMibIntVar(MIB_dtxUplink,&nvgen_int);
+ printf("\n\t bts-options dtx-mode %s",bts_dtx_mode[nvgen_int]);
+
+}
+
+
+void bts_options (parseinfo *csb)
+{
+ int intbuf[2] = {0,1};
+ int intnobuf[2] = {0,0};
+
+ switch (csb->which) {
+ case UPDATE_INTERVAL :
+ if (csb->nvgen) {
+ bts_options_nvgen ();
+ return;
+ }
+ SET_INT_MIB(MIB_timerPeriodicUpdateMS,GETOBJ(int,1),30,
+ "\n Configuration of update interval failed");
+ break;
+
+ case ACCESS_CLASS :
+ if (csb->nvgen) {
+ return;
+ }
+ if (csb->sense) {
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_notAllowedAccessClassEntry,GETOBJ(int,1),intbuf,
+ sizeof(int) *2);
+ } else {
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_notAllowedAccessClassEntry,GETOBJ(int,1),intnobuf,sizeof(int) *2);
+ }
+ break;
+
+ case DTX_MODE_OPTIONS :
+ NVGEN_INT_MIB(MIB_dtxUplink,
+ "\n Show Configuration of downlink dtx failed");
+ SET_INT_MIB(MIB_dtxUplink,GETOBJ(int,1),2,
+ "\n Configuration of downlink dtx failed");
+ break;
+ case ENABLE_OPTIONS :
+ SET_INT_MIB(bts_mib_tags[GETOBJ(int,1)],1,0,
+ bts_set_fail[GETOBJ(int,1)]);
+ break;
+ }
+}
+
+
+static void authentication_nvgen (parseinfo *csb)
+{
+ long nvgen_int1,nvgen_int2;
+ oam_getMibIntVar(MIB_mm_authenticationRequired,&nvgen_int1);
+ oam_getMibIntVar(MIB_mm_cipheringRequired,&nvgen_int2);
+
+ if (nvgen_int1 && nvgen_int2){
+ printf("\n %s ciphering enable",csb->nv_command);
+ return;
+ }
+
+ if (nvgen_int1) {
+ printf("\n %s enable",csb->nv_command);
+ return;
+ }
+
+ if (!nvgen_int1) {
+ printf("\n no %s ciphering enable",csb->nv_command);
+ }
+}
+
+
+/*
+ * system feature control parameters
+ */
+
+void sysfeature_commands (parseinfo *csb)
+{
+ switch (csb->which) {
+ case CELL_BARR_ENABLE :
+ NVGEN_BOOL_MIB(MIB_rm_nim_1_1,
+ "\n Show Configuration of cell barring failed");
+ SET_INT_MIB(MIB_rm_nim_1_1,csb->sense,0,
+ "\n Configuration of cell barring failed");
+ break;
+
+ case SMS_CB_ENABLE :
+ NVGEN_BOOL_MIB (MIB_rm_nim_0_1,
+ "\n Show Configuration of sms cb failed");
+ SET_INT_MIB(MIB_rm_nim_0_1,csb->sense,0,
+ "\n Configuration of sms cb failed");
+ break;
+
+ case AUTH_FREQ_VAL :
+ NVGEN_INT_MIB(MIB_rm_nim_0_7,
+ "\n Show Configuration of authenticaion frequency failed");
+ SET_INT_MIB(MIB_rm_nim_0_7,GETOBJ(int,1),1,
+ "\n Configuration of authenticaion frequency failed");
+ break;
+ case AUTH_CIPH_ENABLE :
+ if (csb->nvgen) {
+ authentication_nvgen(csb);
+ return;
+ }
+ SET_INT_MIB(MIB_mm_authenticationRequired,csb->sense,0,
+ "\n Configuration of authenticaion failed");
+ SET_INT_MIB(MIB_mm_cipheringRequired,GETOBJ(int,1),0,
+ "\n Configuration of ciphering failed");
+
+ break;
+ }
+}
+
+void gp10_config_cdr_data(parseinfo *csb)
+{
+
+ switch (csb->which){
+
+ case CONFIG_CDR_CLIENT_SSL_ENABLE:
+ NVGEN_BOOL_MIB(MIB_cdrClientSSLEnable,
+ "\nShow configuration of cdr client ssl enable failed");
+ SET_INT_MIB(MIB_cdrClientSSLEnable,csb->sense,0,
+ "\nConfiguration of cdr client ssl failed");
+ break;
+
+ case CONFIG_CDR_PASSWORD:
+ if (csb->nvgen) {
+ return;
+ }
+
+ if(csb->sense) {
+ if(SavePwdCdr((unsigned char *)GETOBJ(string, 2)) == 0) {
+ printf("\nConfiguration of CDR Client password failed\n");
+ }
+ } else {
+ if(SavePwdCdr("") == 0) {
+ printf("\nConfiguration of CDR Client password failed\n");
+ }
+ }
+ break;
+ default:
+ printf("\n Incorrect data");
+ break;
+ } /* END SWITCH */
+} /* gp10_config_cdr_data() */
+
+void handover_control_average_nv (parseinfo *csb)
+{
+ long nvgen_int;
+
+ oam_getMibIntVar(MIB_hoThresholdLevParamNx,&nvgen_int);
+ printf("\n %s N5 %d",csb->nv_command,nvgen_int);
+ oam_getMibIntVar(MIB_hoThresholdQualParamNx,&nvgen_int);
+ printf("\n %s N6 %d",csb->nv_command,nvgen_int);
+ oam_getMibIntVar(MIB_hoThresholdLevParamPx,&nvgen_int);
+ printf("\n %s P5 %d",csb->nv_command,nvgen_int);
+ oam_getMibIntVar(MIB_hoThresholdQualParamPx,&nvgen_int);
+ printf("\n %s P6 %d",csb->nv_command,nvgen_int);
+}
+
+static void handover_control_str_nv (parseinfo *csb)
+{
+ long nvgen_int;
+
+ oam_getMibIntVar(MIB_hoThresholdQualParamRxQualUL,&nvgen_int);
+ printf("\n %s uplink quality %d",csb->nv_command,nvgen_int);
+ oam_getMibIntVar(MIB_hoThresholdQualParamRxQualDL,&nvgen_int);
+ printf("\n %s downlink quality %d",csb->nv_command,nvgen_int);
+ oam_getMibIntVar(MIB_hoThresholdLevParamRxLevelUL,&nvgen_int);
+ printf("\n %s uplink strength %d",csb->nv_command,nvgen_int);
+ oam_getMibIntVar(MIB_hoThresholdLevParamRxLevelDL,&nvgen_int);
+ printf("\n %s downlink strength %d",csb->nv_command,nvgen_int);
+}
+
+void handover_control_commands (parseinfo *csb)
+{
+ switch (csb->which) {
+ case HANDOVER_AVERAGE :
+ if (csb->nvgen) {
+ handover_control_average_nv(csb);
+ return;
+ }
+ switch (GETOBJ(int,1)) {
+ case HANDOVER_N5 :
+ NVGEN_INT_MIB(MIB_hoThresholdLevParamNx,
+ "\n Show Configuration of N5 failed");
+ SET_INT_MIB(MIB_hoThresholdLevParamNx,GETOBJ(int,2),4,
+ "\n Configuration of N5 failed");
+ break;
+ case HANDOVER_N6 :
+ NVGEN_INT_MIB(MIB_hoThresholdQualParamNx,
+ "\n Show Configuration of N6 failed");
+ SET_INT_MIB(MIB_hoThresholdQualParamNx,GETOBJ(int,2),4,
+ "\n Configuration of N6 failed");
+ break;
+ case HANDOVER_P5 :
+ NVGEN_INT_MIB(MIB_hoThresholdLevParamPx,
+ "\n Show Configuration of P5 failed");
+ SET_INT_MIB(MIB_hoThresholdLevParamPx,GETOBJ(int,2),4,
+ "\n Configuration of P5 failed");
+ break;
+ case HANDOVER_P6 :
+ NVGEN_INT_MIB(MIB_hoThresholdQualParamPx,
+ "\n Show Configuration of P6 failed");
+ SET_INT_MIB(MIB_hoThresholdQualParamPx,GETOBJ(int,2),4,
+ "\n Configuration of P6 failed");
+ break;
+ }
+ break;
+
+ case HANDOVER_QUALITY :
+ switch (GETOBJ(int,1)) {
+ case UPLINK :
+ SET_INT_MIB(MIB_hoThresholdQualParamRxQualUL,GETOBJ(int,2),4,
+ "\n Configuration of uplink quality failed");
+ break;
+ case DOWNLINK :
+ SET_INT_MIB(MIB_hoThresholdQualParamRxQualDL,GETOBJ(int,2),4,
+ "\n Configuration of downlink quality failed");
+ break;
+ }
+ break;
+
+ case HANDOVER_STRENGTH :
+ if (csb->nvgen) {
+ handover_control_str_nv(csb);
+ return;
+ }
+ switch (GETOBJ(int,1)) {
+ case UPLINK :
+ SET_INT_MIB(MIB_hoThresholdLevParamRxLevelUL,GETOBJ(int,2),20,
+ "\n Configuration of uplink strength failed");
+ break;
+ case DOWNLINK :
+ SET_INT_MIB(MIB_hoThresholdLevParamRxLevelDL,GETOBJ(int,2),20,
+ "\n Configuration of downlink strength failed");
+ break;
+ }
+ }
+}
+
+
+#define LOG_DEST_CONSOLE 0x0001
+#define LOG_DEST_NETWORK 0x0002
+#define LOG_DEST_FILE 0x0004
+
+int logging_dest=LOG_DEST_CONSOLE;
+int log_port;
+long log_host;
+
+
+extern void ViperLogSetConsolePrintOptions__Fi(BOOL);
+void logging_option (parseinfo *csb)
+{
+ char log_ipaddr[16];
+
+ if (csb->nvgen) {
+
+ if(logging_dest==0){
+ printf("\nlogging not configured\n");
+ return;
+ }
+
+ if(logging_dest & LOG_DEST_CONSOLE){
+ printf("\nlogging console");
+ }
+ if(logging_dest & LOG_DEST_NETWORK){
+ if (log_host != 0) {
+ if (log_port != 0)
+ printf("\nlogging %s %d",address_string(log_host,log_ipaddr),log_port);
+ else
+ printf("\nlogging %s",address_string(log_host,log_ipaddr));
+ }
+ }
+ if(logging_dest & LOG_DEST_FILE){
+ printf("\nlogging file");
+ }
+
+ return;
+ }
+
+
+ if (!csb->sense) {
+ switch(logging_dest){
+ case LOG_DEST_CONSOLE:
+ logging_dest &= ~LOG_DEST_CONSOLE;
+ break;
+ case LOG_DEST_FILE:
+ logging_dest &= ~LOG_DEST_FILE;
+ break;
+ case LOG_DEST_NETWORK:
+ logging_dest &= ~LOG_DEST_NETWORK;
+ break;
+ }
+ return;
+ }
+
+ switch (csb->which) {
+ case LOG_CONSOLE :
+ logging_dest |= LOG_DEST_CONSOLE;
+ break;
+ case LOG_FILE :
+ logging_dest |= LOG_DEST_FILE;
+ break;
+ case LOG_HOST :
+ logging_dest |= LOG_DEST_NETWORK;
+ log_host = GETOBJ(paddr,1)->ip_addr;
+ address_string(GETOBJ(paddr,1)->ip_addr,log_ipaddr);
+ if (GETOBJ(int,1) != 0) {
+ log_port = GETOBJ(int,1);
+ ViperLogSetDestPort(GETOBJ(int,1));
+ }
+ ViperLogSetDestAddress(log_ipaddr);
+ break;
+ }
+}
+
+
+
+void gp10_sub_config_exit (parseinfo *csb)
+{
+ set_mode_byname(&csb->mode,"configure",MODE_VERBOSE);
+}
+
+void gp10_cell_sub_config_exit (parseinfo *csb)
+{
+ set_mode_byname(&csb->mode,"config-cell",MODE_VERBOSE);
+}
diff --git a/data/mnet/GP10/Host/cli/src/trx_chain.c b/data/mnet/GP10/Host/cli/src/trx_chain.c
new file mode 100644
index 0000000..241f0a3
--- /dev/null
+++ b/data/mnet/GP10/Host/cli/src/trx_chain.c
@@ -0,0 +1,167 @@
+#include "parser_if.h"
+
+#include "oam_api.h"
+#include "mibtags.h"
+#include "MnetModuleId.h"
+
+#define TCH_FULL 1
+#define BCCH_COMBINED 5
+#define USE_BCC 0
+
+/*
+ * Parse chains for transceiver configuration
+ */
+#define ALTERNATE NONE
+#include "../include/cfg_trx.h"
+LINK_POINT(cfg_trx, ALTERNATE);
+#undef ALTERNATE
+
+
+
+static parser_extension_request cfg_trx_init_table[] = {
+ { PARSE_ADD_CFG_GP10_CELL_TRX, &pname(cfg_trx) },
+ { PARSE_LIST_END, NULL }
+};
+
+/*
+ * Register the parser chain
+ */
+void cfg_trx_parser_init (void)
+{
+ parser_add_command_list(cfg_trx_init_table,"config");
+}
+
+static char *admin_state[] = {
+ " locked ",
+ " unlocked ",
+ " shutting-down "
+};
+void trx_nvgen ()
+{
+ long nvgen_int,channel;
+ CellAllocationEntry cell_entry;
+ CarrierFrequencyEntry freq_entry;
+ ChannelEntry chan_entry;
+
+ printf("\n\n transceiver 0");
+
+ oam_getMibTblEntry(MIBT_cellAllocationEntry,0,&cell_entry,sizeof(CellAllocationEntry));
+ printf("\n\t bts-cell-allocation %d",cell_entry.cellAllocation);
+
+ oam_getMibTblEntry(MIBT_carrierFrequency_0_Entry,0,&freq_entry,sizeof(CarrierFrequencyEntry));
+ printf("\n\t radio-carrier radio-frequency %d",freq_entry.carrierFrequency);
+
+ oam_getMibIntVar(MIB_txPwrMaxReduction_0,&nvgen_int);
+ printf("\n\t radio-carrier transmit-power-reduction %d",nvgen_int);
+
+ oam_getMibIntVar(MIB_basebandAdministrativeState_0,&nvgen_int);
+ printf("\n\t administrative-state %s",admin_state[nvgen_int]);
+
+ for (channel=0;channel < 8;channel++) {
+ oam_getMibTblEntry(MIBT_channel_0_Entry,channel,&chan_entry,sizeof(ChannelEntry));
+ printf("\n\t channel-table %d channel-combination %s training-sequence USE-BCC administrative-state %s",channel,
+ (chan_entry.channelCombination == BCCH_COMBINED)?"BCCH-COMBINED":"TCH-FULL",
+ admin_state[chan_entry.channelAdministrativeState]);
+ }
+ printf("\n\n transceiver 1");
+
+ oam_getMibTblEntry(MIBT_cellAllocationEntry,1,&cell_entry,sizeof(CellAllocationEntry));
+ printf("\n\t bts-cell-allocation %d",cell_entry.cellAllocation);
+
+ oam_getMibTblEntry(MIBT_carrierFrequency_1_Entry,0,&freq_entry,sizeof(CarrierFrequencyEntry));
+ printf("\n\t radio-carrier radio-frequency %d",freq_entry.carrierFrequency);
+
+ oam_getMibIntVar(MIB_txPwrMaxReduction_1,&nvgen_int);
+ printf("\n\t radio-carrier transmit-power-reduction %d",nvgen_int);
+
+ oam_getMibIntVar(MIB_basebandAdministrativeState_1,&nvgen_int);
+ printf("\n\t administrative-state %s",admin_state[nvgen_int]);
+
+ for (channel=0;channel < 8;channel++) {
+ oam_getMibTblEntry(MIBT_channel_1_Entry,channel,&chan_entry,sizeof(ChannelEntry));
+ printf("\n\t channel-table %d channel-combination TCH-FULL training-sequence USE-BCC adminstration-state %s",channel,admin_state[chan_entry.channelAdministrativeState]);
+ }
+}
+
+/*
+ * command handler for transceiver parameters
+ */
+void transceiver_parameters (parseinfo *csb)
+{
+ int ifnum;
+ int intbuf[7];
+
+ ifnum = (int) GETOBJ(udb,current1);
+
+ switch (csb->which) {
+ case TRX_RADIO_FREQUENCY :
+ intbuf[0] = 0;
+ if (csb->sense) {
+ intbuf[1] = GETOBJ(int,1);
+ } else {
+ intbuf[1] = 0;
+ }
+ if (ifnum == 0) {
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_carrierFrequency_0_Entry,0,intbuf,
+ sizeof(int) *2);
+ } else {
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_carrierFrequency_1_Entry,0,intbuf,
+ sizeof(int) *2);
+ }
+ break;
+
+ case TRX_POWER_REDUCTION :
+ if (ifnum == 0) {
+ SET_INT_MIB(MIB_txPwrMaxReduction_0,GETOBJ(int,1),0,
+ "\n Configuration of transmit power reduction failed");
+ } else {
+ SET_INT_MIB(MIB_txPwrMaxReduction_1,GETOBJ(int,1),0,
+ "\n Configuration of transmit power reduction failed");
+ }
+ break;
+
+ case TRX_CHANNEL_TABLE :
+ intbuf[0] = 0;
+ intbuf[1] = GETOBJ(int,1);
+ intbuf[2] = GETOBJ(int,3);
+ intbuf[3] = 0;
+ intbuf[4] = USE_BCC;
+ if (csb->sense) {
+ intbuf[5] = GETOBJ(int,2);
+ } else {
+ intbuf[5] = STATE_UNLOCKED;
+ }
+ intbuf[6] = 1;
+
+ if (ifnum == 0) {
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_channel_0_Entry,GETOBJ(int,1),intbuf,
+ sizeof(int) * 7);
+ } else {
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_channel_1_Entry,GETOBJ(int,1),intbuf,
+ sizeof(int) * 7);
+ }
+ break;
+
+ case TRX_ADMIN_STATE :
+ if (ifnum == 0) {
+ SET_INT_MIB( MIB_basebandAdministrativeState_0,GETOBJ(int,1),1,
+ "\n Configuration of Administrative state failed");
+ } else {
+ SET_INT_MIB( MIB_basebandAdministrativeState_1,GETOBJ(int,1),1,
+ "\n Configuration of Administrative state failed");
+ }
+ break;
+
+ case TRX_ARFCN_NUMBER :
+ intbuf[0] = 0;
+ if (csb->sense) {
+ intbuf[1] = GETOBJ(int,1);
+ } else {
+ intbuf[1] = 0;
+ }
+ oam_setMibTblEntry(CLI_MODULE_ID,MIBT_cellAllocationEntry,ifnum,intbuf,
+ sizeof(int) *2);
+ break;
+ }
+}
+