diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2014-03-10 13:33:26 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2014-03-10 13:33:26 +0100 |
commit | d863f9cbeaac2b16a226021bc9817e51550a3329 (patch) | |
tree | dcb8739366d253f129c6e5e5266c3d744ce2ead3 /src/common/vty.c | |
parent | 20f542280330d1181d04ea34ef876358f710d6c8 (diff) | |
parent | 4fcda92d7be7dd2df1870156206fea30cd02d3cc (diff) |
Merge branch 'jerlbeck/agch-queue'
Diffstat (limited to 'src/common/vty.c')
-rw-r--r-- | src/common/vty.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/common/vty.c b/src/common/vty.c index 5eddc8df..99ad9739 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -189,6 +189,12 @@ static void config_write_bts_single(struct vty *vty, struct gsm_bts *bts) VTY_NEWLINE); vty_out(vty, " paging lifetime %u%s", paging_get_lifetime(btsb->paging_state), VTY_NEWLINE); + if (btsb->agch_queue_thresh_level != GSM_BTS_AGCH_QUEUE_THRESH_LEVEL_DEFAULT + || btsb->agch_queue_low_level != GSM_BTS_AGCH_QUEUE_LOW_LEVEL_DEFAULT + || btsb->agch_queue_high_level != GSM_BTS_AGCH_QUEUE_HIGH_LEVEL_DEFAULT) + vty_out(vty, " agch-queue-mgmt threshold %d low %d high %d%s", + btsb->agch_queue_thresh_level, btsb->agch_queue_low_level, + btsb->agch_queue_high_level, VTY_NEWLINE); bts_model_config_write_bts(vty, bts); @@ -355,6 +361,41 @@ DEFUN(cfg_bts_paging_lifetime, return CMD_SUCCESS; } +#define AGCH_QUEUE_STR "AGCH queue mgmt\n" + +DEFUN(cfg_bts_agch_queue_mgmt_params, + cfg_bts_agch_queue_mgmt_params_cmd, + "agch-queue-mgmt threshold <0-100> low <0-100> high <0-100000>", + AGCH_QUEUE_STR + "Threshold to start cleanup\nin %% of the maximum queue length\n" + "Low water mark for cleanup\nin %% of the maximum queue length\n" + "High water mark for cleanup\nin %% of the maximum queue length\n") +{ + struct gsm_bts *bts = vty->index; + struct gsm_bts_role_bts *btsb = bts_role_bts(bts); + + btsb->agch_queue_thresh_level = atoi(argv[0]); + btsb->agch_queue_low_level = atoi(argv[1]); + btsb->agch_queue_high_level = atoi(argv[2]); + + return CMD_SUCCESS; +} + +DEFUN(cfg_bts_agch_queue_mgmt_default, + cfg_bts_agch_queue_mgmt_default_cmd, + "agch-queue-mgmt default", + AGCH_QUEUE_STR + "Reset clean parameters to default values\n") +{ + struct gsm_bts *bts = vty->index; + struct gsm_bts_role_bts *btsb = bts_role_bts(bts); + + btsb->agch_queue_thresh_level = GSM_BTS_AGCH_QUEUE_THRESH_LEVEL_DEFAULT; + btsb->agch_queue_low_level = GSM_BTS_AGCH_QUEUE_LOW_LEVEL_DEFAULT; + btsb->agch_queue_high_level = GSM_BTS_AGCH_QUEUE_HIGH_LEVEL_DEFAULT; + + return CMD_SUCCESS; +} /* ====================================================================== @@ -390,6 +431,14 @@ static void bts_dump_vty(struct vty *vty, struct gsm_bts *bts) vty_out(vty, " Paging: Queue size %u, occupied %u, lifetime %us%s", paging_get_queue_max(btsb->paging_state), paging_queue_length(btsb->paging_state), paging_get_lifetime(btsb->paging_state), VTY_NEWLINE); + vty_out(vty, " AGCH: Queue limit %u, occupied %d, " + "dropped %llu, merged %llu, rejected %llu, " + "ag-res %llu, non-res %llu%s", + btsb->agch_max_queue_length, btsb->agch_queue_length, + btsb->agch_queue_dropped_msgs, btsb->agch_queue_merged_msgs, + btsb->agch_queue_rejected_msgs, btsb->agch_queue_agch_msgs, + btsb->agch_queue_pch_msgs, + VTY_NEWLINE); #if 0 vty_out(vty, " Paging: %u pending requests, %u free slots%s", paging_pending_requests_nr(bts), @@ -519,6 +568,8 @@ int bts_vty_init(const struct log_info *cat) install_element(BTS_NODE, &cfg_no_description_cmd); install_element(BTS_NODE, &cfg_bts_paging_queue_size_cmd); install_element(BTS_NODE, &cfg_bts_paging_lifetime_cmd); + install_element(BTS_NODE, &cfg_bts_agch_queue_mgmt_default_cmd); + install_element(BTS_NODE, &cfg_bts_agch_queue_mgmt_params_cmd); /* add and link to TRX config node */ install_element(BTS_NODE, &cfg_bts_trx_cmd); |