Enables user to Enable/Disable FANR feature from VTY interface
This is second patch among series of patches for FANR feature
---
src/bts.h | 1 +
src/pcu_main.cpp | 4 ++++
src/pcu_vty.c | 35 +++++++++++++++++++++++++++++++++++
3 files changed, 40 insertions(+)
diff --git a/src/bts.h b/src/bts.h
index ccb8025..7e3ea80 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -192,6 +192,7 @@ struct gprs_rlcmac_bts {
uint8_t force_two_phase;
uint8_t alpha, gamma;
uint8_t egprs_enabled;
+ uint8_t fanr_enabled;
uint8_t initial_mcs_dl;
uint8_t initial_mcs_ul;
uint8_t max_mcs_dl;
diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp
index 9f38742..32d234d 100644
--- a/src/pcu_main.cpp
+++ b/src/pcu_main.cpp
@@ -183,6 +183,10 @@ int main(int argc, char *argv[])
bts->initial_mcs_ul = 1;
bts->max_mcs_ul = 9;
bts->max_mcs_dl = 9;
+
+ bts->egprs_enabled = true;
+ bts->fanr_enabled = false;
+
/* CS-1 to CS-4 */
bts->cs_lqual_ranges[0].low = -256;
bts->cs_lqual_ranges[0].high = 6;
diff --git a/src/pcu_vty.c b/src/pcu_vty.c
index edc777d..90c828b 100644
--- a/src/pcu_vty.c
+++ b/src/pcu_vty.c
@@ -59,6 +59,11 @@ static int config_write_pcu(struct vty *vty)
else
vty_out(vty, " no egprs%s", VTY_NEWLINE);
+ if (bts->fanr_enabled)
+ vty_out(vty, " egprs fanr %s", VTY_NEWLINE);
+ else
+ vty_out(vty, " no egprs fanr%s", VTY_NEWLINE);
+
vty_out(vty, " flow-control-interval %d%s", bts->fc_interval,
VTY_NEWLINE);
if (bts->fc_bvc_bucket_size)
@@ -201,6 +206,34 @@ DEFUN(cfg_pcu_no_egprs,
return CMD_SUCCESS;
}
+#define EGPRS_FANR_STR "EGPRS FANR configuration\n"
+
+DEFUN(cfg_pcu_egprs_fanr,
+ cfg_pcu_egprs_fanr_cmd,
+ "egprs_fanr",
+ EGPRS_FANR_STR)
+{
+ struct gprs_rlcmac_bts *bts = bts_main_data();
+
+ bts->fanr_enabled = 1;
+ vty_out(vty, "%%EGPRS FANR is enabled %s", VTY_NEWLINE);
+
+ return CMD_SUCCESS;
+}
+
+DEFUN(cfg_pcu_no_egprs_fanr,
+ cfg_pcu_no_egprs_fanr_cmd,
+ "no egprs fanr",
+ NO_STR EGPRS_FANR_STR)
+{
+ struct gprs_rlcmac_bts *bts = bts_main_data();
+
+ bts->fanr_enabled = 0;
+ vty_out(vty, "%%EGPRS FANR is disabled %s", VTY_NEWLINE);
+
+ return CMD_SUCCESS;
+}
+
DEFUN(cfg_pcu_fc_interval,
cfg_pcu_fc_interval_cmd,
"flow-control-interval <1-10>",
@@ -929,6 +962,8 @@ int pcu_vty_init(const struct log_info *cat)
vty_install_default(PCU_NODE);
install_element(PCU_NODE, &cfg_pcu_egprs_cmd);
install_element(PCU_NODE, &cfg_pcu_no_egprs_cmd);
+ install_element(PCU_NODE, &cfg_pcu_egprs_fanr_cmd);
+ install_element(PCU_NODE, &cfg_pcu_no_egprs_fanr_cmd);
install_element(PCU_NODE, &cfg_pcu_no_two_phase_cmd);
install_element(PCU_NODE, &cfg_pcu_cs_cmd);
install_element(PCU_NODE, &cfg_pcu_no_cs_cmd);
--
1.7.9.5