diff options
-rw-r--r-- | include/osmo-bts/gsm_data.h | 2 | ||||
-rw-r--r-- | include/osmo-bts/paging.h | 8 | ||||
-rw-r--r-- | src/common/paging.c | 20 | ||||
-rw-r--r-- | src/common/vty.c | 16 |
4 files changed, 34 insertions, 12 deletions
diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 55eec964..1bc6c9f2 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -50,8 +50,6 @@ struct gsm_bts_role_bts { uint8_t max_ta; struct llist_head agch_queue; struct paging_state *paging_state; - unsigned int paging_q_len; - unsigned int paging_lifetime; char *bsc_oml_host; char *rtp_bind_host; unsigned int rtp_jitter_buf_ms; diff --git a/include/osmo-bts/paging.h b/include/osmo-bts/paging.h index 093f74d0..d31f5c12 100644 --- a/include/osmo-bts/paging.h +++ b/include/osmo-bts/paging.h @@ -20,6 +20,14 @@ void paging_config(struct paging_state *ps, void paging_reset(struct paging_state *ps); +/* The max number of paging entries */ +unsigned int paging_get_queue_max(struct paging_state *ps); +void paging_set_queue_max(struct paging_state *ps, unsigned int queue_max); + +/* The lifetime of a paging entry */ +unsigned int paging_get_lifetime(struct paging_state *ps); +void paging_set_lifetime(struct paging_state *ps, unsigned int lifetime); + /* update with new SYSTEM INFORMATION parameters */ int paging_si_update(struct paging_state *ps, struct gsm48_control_channel_descr *chan_desc); diff --git a/src/common/paging.c b/src/common/paging.c index d7c22610..cd1c370d 100644 --- a/src/common/paging.c +++ b/src/common/paging.c @@ -81,6 +81,26 @@ struct paging_state { struct llist_head paging_queue[MAX_PAGING_BLOCKS_CCCH*MAX_BS_PA_MFRMS]; }; +unsigned int paging_get_lifetime(struct paging_state *ps) +{ + return ps->paging_lifetime; +} + +unsigned int paging_get_queue_max(struct paging_state *ps) +{ + return ps->num_paging_max; +} + +void paging_set_lifetime(struct paging_state *ps, unsigned int lifetime) +{ + ps->paging_lifetime = lifetime; +} + +void paging_set_queue_max(struct paging_state *ps, unsigned int queue_max) +{ + ps->num_paging_max = queue_max; +} + static int tmsi_mi_to_uint(uint32_t *out, const uint8_t *tmsi_lv) { if (tmsi_lv[0] < 5) diff --git a/src/common/vty.c b/src/common/vty.c index 1d12e43a..e66569bc 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -186,9 +186,9 @@ static void config_write_bts_single(struct vty *vty, struct gsm_bts *bts) vty_out(vty, " rtp bind-ip %s%s", btsb->rtp_bind_host, VTY_NEWLINE); vty_out(vty, " rtp jitter-buffer %u%s", btsb->rtp_jitter_buf_ms, VTY_NEWLINE); - vty_out(vty, " paging queue-size %u%s", btsb->paging_q_len, + vty_out(vty, " paging queue-size %u%s", paging_get_queue_max(btsb->paging_state), VTY_NEWLINE); - vty_out(vty, " paging lifetime %u%s", btsb->paging_lifetime, + vty_out(vty, " paging lifetime %u%s", paging_get_lifetime(btsb->paging_state), VTY_NEWLINE); bts_model_config_write_bts(vty, bts); @@ -343,9 +343,7 @@ DEFUN(cfg_bts_paging_queue_size, struct gsm_bts *bts = vty->index; struct gsm_bts_role_bts *btsb = bts_role_bts(bts); - btsb->paging_q_len = atoi(argv[0]); - paging_config(btsb->paging_state, btsb->paging_q_len, - btsb->paging_lifetime); + paging_set_queue_max(btsb->paging_state, atoi(argv[0])); return CMD_SUCCESS; } @@ -359,9 +357,7 @@ DEFUN(cfg_bts_paging_lifetime, struct gsm_bts *bts = vty->index; struct gsm_bts_role_bts *btsb = bts_role_bts(bts); - btsb->paging_lifetime = atoi(argv[0]); - paging_config(btsb->paging_state, btsb->paging_q_len, - btsb->paging_lifetime); + paging_set_lifetime(btsb->paging_state, atoi(argv[0])); return CMD_SUCCESS; } @@ -399,8 +395,8 @@ static void bts_dump_vty(struct vty *vty, struct gsm_bts *bts) vty_out(vty, " Site Mgr NM State: "); net_dump_nmstate(vty, &bts->site_mgr.mo.nm_state); vty_out(vty, " Paging: Queue size %u, occupied %u, lifetime %us%s", - btsb->paging_q_len, paging_queue_length(btsb->paging_state), - btsb->paging_lifetime, VTY_NEWLINE); + paging_get_queue_max(btsb->paging_state), paging_queue_length(btsb->paging_state), + paging_get_lifetime(btsb->paging_state), VTY_NEWLINE); #if 0 vty_out(vty, " Paging: %u pending requests, %u free slots%s", paging_pending_requests_nr(bts), |