diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-12-15 00:21:31 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-12-15 00:21:31 +0100 |
commit | 0b12103965c824b0dae1ae10df00d87d4ef1ec7b (patch) | |
tree | a4ca3b8f241e667b5b0c1b927febadcc31a86dd0 /openbsc/src/gsm_data.c | |
parent | 84874c9005fd568d423f6fde9caedd36dc5bff57 (diff) |
add BSIC parameter to gsm_bts_neighbor()
When looking for the gsm_bts of a neighbor cell, use BSIC and ARFCN
tuple rather than just ARFCN for better identification purpose.
Diffstat (limited to 'openbsc/src/gsm_data.c')
-rw-r--r-- | openbsc/src/gsm_data.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/openbsc/src/gsm_data.c b/openbsc/src/gsm_data.c index 9fb4526f0..91a854f46 100644 --- a/openbsc/src/gsm_data.c +++ b/openbsc/src/gsm_data.c @@ -235,7 +235,8 @@ struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num) } /* Get reference to a neighbor cell on a given BCCH ARFCN */ -struct gsm_bts *gsm_bts_neighbor(const struct gsm_bts *bts, u_int16_t arfcn) +struct gsm_bts *gsm_bts_neighbor(const struct gsm_bts *bts, + u_int16_t arfcn, u_int8_t bsic) { struct gsm_bts *neigh; /* FIXME: use some better heuristics here to determine which cell @@ -244,7 +245,8 @@ struct gsm_bts *gsm_bts_neighbor(const struct gsm_bts *bts, u_int16_t arfcn) * cell */ llist_for_each_entry(neigh, &bts->network->bts_list, list) { - if (neigh->c0->arfcn == arfcn) + if (neigh->c0->arfcn == arfcn && + neigh->bsic == bsic) return neigh; } |