aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/paging.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-03-17 12:22:40 +0100
committerHarald Welte <laforge@gnumonks.org>2018-03-17 13:40:03 +0100
commitd8cd756da48bcff9f9caf9e64fc0af047a165b60 (patch)
tree136d09901ae8420803500d92646944376ae21f59 /src/common/paging.c
parent7c4a22dbc48f51eb199766bf1b29e061bf765cbd (diff)
Get rid of 'struct gsm_bts_role_bts'
gsm_bts_role_bts was introduced at a time when we still shared gsm_data_shared.[ch] between BSC and BTS, and where we then subsequently needed a BTS-private structure. Since that sharing was abandoned quite some time ago, we can merge gsm_bts_role_bts into gsm_bts and do away with the bts/btsb dualism in a lot of the code. Change-Id: I4fdd601ea873d9697f89a748cc77bcf7c978fa3e
Diffstat (limited to 'src/common/paging.c')
-rw-r--r--src/common/paging.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/common/paging.c b/src/common/paging.c
index d2acd70a..aa604e72 100644
--- a/src/common/paging.c
+++ b/src/common/paging.c
@@ -68,7 +68,7 @@ struct paging_record {
};
struct paging_state {
- struct gsm_bts_role_bts *btsb;
+ struct gsm_bts *bts;
/* parameters taken / interpreted from BCCH/CCCH configuration */
struct gsm48_control_channel_descr chan_desc;
@@ -181,19 +181,19 @@ int paging_add_identity(struct paging_state *ps, uint8_t paging_group,
int blocks = gsm48_number_of_paging_subchannels(&ps->chan_desc);
struct paging_record *pr;
- rate_ctr_inc2(ps->btsb->bts->ctrs, BTS_CTR_PAGING_RCVD);
+ rate_ctr_inc2(ps->bts->ctrs, BTS_CTR_PAGING_RCVD);
if (paging_group >= blocks) {
LOGP(DPAG, LOGL_ERROR, "BSC Send PAGING for group %u, but number of paging "
"sub-channels is only %u\n", paging_group, blocks);
- rate_ctr_inc2(ps->btsb->bts->ctrs, BTS_CTR_PAGING_DROP);
+ rate_ctr_inc2(ps->bts->ctrs, BTS_CTR_PAGING_DROP);
return -EINVAL;
}
if (ps->num_paging >= ps->num_paging_max) {
LOGP(DPAG, LOGL_NOTICE, "Dropping paging, queue full (%u)\n",
ps->num_paging);
- rate_ctr_inc2(ps->btsb->bts->ctrs, BTS_CTR_PAGING_DROP);
+ rate_ctr_inc2(ps->bts->ctrs, BTS_CTR_PAGING_DROP);
return -ENOSPC;
}
@@ -399,7 +399,7 @@ int paging_gen_msg(struct paging_state *ps, uint8_t *out_buf, struct gsm_time *g
int len;
*is_empty = 0;
- ps->btsb->load.ccch.pch_total += 1;
+ ps->bts->load.ccch.pch_total += 1;
group = get_pag_subch_nr(ps, gt);
if (group < 0) {
@@ -423,7 +423,7 @@ int paging_gen_msg(struct paging_state *ps, uint8_t *out_buf, struct gsm_time *g
time_t now = time(NULL);
unsigned int i, num_imsi = 0;
- ps->btsb->load.ccch.pch_used += 1;
+ ps->bts->load.ccch.pch_used += 1;
/* get (if we have) up to four paging records */
for (i = 0; i < ARRAY_SIZE(pr); i++) {
@@ -519,7 +519,7 @@ int paging_gen_msg(struct paging_state *ps, uint8_t *out_buf, struct gsm_time *g
/* skip those that we might have re-added above */
if (pr[i] == NULL)
continue;
- rate_ctr_inc2(ps->btsb->bts->ctrs, BTS_CTR_PAGING_SENT);
+ rate_ctr_inc2(ps->bts->ctrs, BTS_CTR_PAGING_SENT);
/* check if we can expire the paging record,
* or if we need to re-queue it */
if (pr[i]->u.paging.expiration_time <= now) {
@@ -551,8 +551,7 @@ static int paging_signal_cbfn(unsigned int subsys, unsigned int signal, void *hd
{
if (subsys == SS_GLOBAL && signal == S_NEW_SYSINFO) {
struct gsm_bts *bts = signal_data;
- struct gsm_bts_role_bts *btsb = bts->role;
- struct paging_state *ps = btsb->paging_state;
+ struct paging_state *ps = bts->paging_state;
struct gsm48_system_information_type_3 *si3 = (void *) bts->si_buf[SYSINFO_TYPE_3];
paging_si_update(ps, &si3->control_channel_desc);
@@ -562,18 +561,18 @@ static int paging_signal_cbfn(unsigned int subsys, unsigned int signal, void *hd
static int initialized = 0;
-struct paging_state *paging_init(struct gsm_bts_role_bts *btsb,
+struct paging_state *paging_init(struct gsm_bts *bts,
unsigned int num_paging_max,
unsigned int paging_lifetime)
{
struct paging_state *ps;
unsigned int i;
- ps = talloc_zero(btsb, struct paging_state);
+ ps = talloc_zero(bts, struct paging_state);
if (!ps)
return NULL;
- ps->btsb = btsb;
+ ps->bts = bts;
ps->paging_lifetime = paging_lifetime;
ps->num_paging_max = num_paging_max;