aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc/bsc_msc.h
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2011-04-23 23:31:31 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2011-04-26 09:36:19 +0200
commite188010512388acdb1408f3d1a0749c25c2c99e3 (patch)
tree5df9a436d79f1bf3674a0316474af66aa9a26d9c /openbsc/include/openbsc/bsc_msc.h
parent2a9eeaa588a2a3b63fadd94d6760879b44b14af5 (diff)
bsc: Allow to have a list of MSCs/MUXs to connect to
Be able to configure a list of destinations (duplicates allowed) that will be tried in a round robin fashion. The change is in the bsc_msc_connection to operate on a list. We achieve the round robin nature with the same trick used in the paging code to delete and append the current entry. The nat code was updated to compile but one can only configure one destination.
Diffstat (limited to 'openbsc/include/openbsc/bsc_msc.h')
-rw-r--r--openbsc/include/openbsc/bsc_msc.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/openbsc/include/openbsc/bsc_msc.h b/openbsc/include/openbsc/bsc_msc.h
index ddaad3ba7..e3653ac12 100644
--- a/openbsc/include/openbsc/bsc_msc.h
+++ b/openbsc/include/openbsc/bsc_msc.h
@@ -25,14 +25,22 @@
#include <osmocom/core/write_queue.h>
#include <osmocom/core/timer.h>
+struct bsc_msc_dest {
+ struct llist_head list;
+
+ char *ip;
+ int port;
+ int dscp;
+};
+
+
struct bsc_msc_connection {
struct write_queue write_queue;
int is_connected;
int is_authenticated;
int first_contact;
- const char *ip;
- int port;
- int prio;
+
+ struct llist_head *dests;
void (*connection_loss) (struct bsc_msc_connection *);
void (*connected) (struct bsc_msc_connection *);
@@ -40,7 +48,7 @@ struct bsc_msc_connection {
struct timer_list timeout_timer;
};
-struct bsc_msc_connection *bsc_msc_create(const char *ip, int port, int prio);
+struct bsc_msc_connection *bsc_msc_create(void *ctx, struct llist_head *dest);
int bsc_msc_connect(struct bsc_msc_connection *);
void bsc_msc_schedule_connect(struct bsc_msc_connection *);