diff options
author | Holger Freyther <ich@tamarin.(none)> | 2009-03-31 04:35:19 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2009-06-10 13:20:39 +0200 |
commit | 04866d42792f59b334a13e836237947222b41127 (patch) | |
tree | 2ae505601aeaa371677ad1963f571d25950e7744 /openbsc/include/openbsc | |
parent | fdac4cc176892734ad782dccc2dc45a0282298a2 (diff) |
Proposal for a "channel request" interface...
Reuqests for a subscriber a stored within the gsm_subscriber
datastructure and it will keep track how many channels are
allocated for this user and of which type to decide on policy...
e.g. attempt to submit SMS during a phone call and not doing
paging but a simple (immediate) assignment of the channel...
Diffstat (limited to 'openbsc/include/openbsc')
-rw-r--r-- | openbsc/include/openbsc/gsm_subscriber.h | 6 | ||||
-rw-r--r-- | openbsc/include/openbsc/paging.h | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/openbsc/include/openbsc/gsm_subscriber.h b/openbsc/include/openbsc/gsm_subscriber.h index 1ca79e2ae..f787aebd5 100644 --- a/openbsc/include/openbsc/gsm_subscriber.h +++ b/openbsc/include/openbsc/gsm_subscriber.h @@ -31,6 +31,9 @@ struct gsm_subscriber { u_int8_t classmark2[3]; u_int8_t classmark3_len; u_int8_t classmark3[14]; + + /* pending requests */ + struct llist_head requests; }; enum gsm_subscriber_field { @@ -51,6 +54,9 @@ struct gsm_subscriber *subscr_get_by_imsi(const char *imsi); struct gsm_subscriber *subscr_get_by_extension(const char *ext); int subscr_update(struct gsm_subscriber *s, struct gsm_bts *bts, int reason); void subscr_put_channel(struct gsm_lchan *lchan); +void subscr_get_channel(struct gsm_subscriber *subscr, + struct gsm_network *network, int type, + gsm_cbfn *cbfn, void *param); /* internal */ struct gsm_subscriber *subscr_alloc(void); diff --git a/openbsc/include/openbsc/paging.h b/openbsc/include/openbsc/paging.h index de512d1ae..2f17e243e 100644 --- a/openbsc/include/openbsc/paging.h +++ b/openbsc/include/openbsc/paging.h @@ -33,7 +33,7 @@ void paging_init(struct gsm_bts *bts); /* schedule paging request */ -void paging_request(struct gsm_bts *bts, struct gsm_subscriber *subscr, +void paging_request(struct gsm_network *network, struct gsm_subscriber *subscr, int type, gsm_cbfn *cbfn, void *data); /* stop paging requests */ |