aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-10-08 22:08:29 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-10-08 22:21:46 +0800
commit0bd60f331760222f18a425fae727cff0592e5bd0 (patch)
tree9c0b00080583a3e4922c021a981f23e8a0d38857 /openbsc/include
parentfad0753b3435c6ce13536188b74f08c76309a1be (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.h14
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);