diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-10-08 22:08:29 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-10-08 22:21:46 +0800 |
commit | 0bd60f331760222f18a425fae727cff0592e5bd0 (patch) | |
tree | 9c0b00080583a3e4922c021a981f23e8a0d38857 /openbsc/include | |
parent | fad0753b3435c6ce13536188b74f08c76309a1be (diff) |
nat: Allow a BSC to have multiple LACs
Make it possible that one BSC is serving multiple
cells. Introduce a list of lacs, add functions to
manipulate the lists. The current test cases for
paging by lac continue to work.
Diffstat (limited to 'openbsc/include')
-rw-r--r-- | openbsc/include/openbsc/bsc_nat.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/openbsc/include/openbsc/bsc_nat.h b/openbsc/include/openbsc/bsc_nat.h index bb1b2ac52..4983af56d 100644 --- a/openbsc/include/openbsc/bsc_nat.h +++ b/openbsc/include/openbsc/bsc_nat.h @@ -112,7 +112,6 @@ struct bsc_config { struct llist_head entry; char *token; - unsigned int lac; int nr; char *description; @@ -126,6 +125,13 @@ struct bsc_config { struct bsc_nat *nat; struct bsc_config_stats stats; + + struct llist_head lac_list; +}; + +struct bsc_lac_entry { + struct llist_head entry; + uint16_t lac; }; /** @@ -229,8 +235,12 @@ struct bsc_nat { }; /* create and init the structures */ -struct bsc_config *bsc_config_alloc(struct bsc_nat *nat, const char *token, unsigned int lac); +struct bsc_config *bsc_config_alloc(struct bsc_nat *nat, const char *token); struct bsc_config *bsc_config_num(struct bsc_nat *nat, int num); +void bsc_config_add_lac(struct bsc_config *cfg, int lac); +void bsc_config_del_lac(struct bsc_config *cfg, int lac); +int bsc_config_handles_lac(struct bsc_config *cfg, int lac); + struct bsc_nat *bsc_nat_alloc(void); struct bsc_connection *bsc_connection_alloc(struct bsc_nat *nat); void bsc_nat_set_msc_ip(struct bsc_nat *bsc, const char *ip); |