aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-07-23 18:56:43 +0200
committerHarald Welte <laforge@gnumonks.org>2009-07-23 19:10:12 +0200
commitaa0b29c2650104b4cb06cd63f295af16fa3a3231 (patch)
tree502ff81ed73dff97c969d4e3a36f71213e95c461 /openbsc/include
parentf8d536def97a65f5a0f1dec7f38ee15030acae53 (diff)
gms_transactions data model reorganization
This changeset factors out gsm_transaction as something independent of call control in preparation to re-use the code from SMS. A transaction is uniquely identified by either its callref, or by a tuple of (transaction_id, protocol, subscriber).
Diffstat (limited to 'openbsc/include')
-rw-r--r--openbsc/include/openbsc/gsm_data.h34
1 files changed, 22 insertions, 12 deletions
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index de3f1f578..9bbc2921d 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -107,26 +107,36 @@ struct gsm_trans {
/* Network */
struct gsm_network *network;
+ /* The protocol within which we live */
+ u_int8_t protocol;
+
/* The current transaction ID */
u_int8_t transaction_id;
- /* The LCHAN that we're part of */
- struct gsm_lchan *lchan;
-
- /* To whom we are allocated at the moment */
+ /* To whom we belong, unique identifier of remote MM entity */
struct gsm_subscriber *subscr;
- /* reference */
+ /* The LCHAN that we're currently using to transmit messages */
+ struct gsm_lchan *lchan;
+
+ /* reference from MNCC or other application */
u_int32_t callref;
- /* current call state */
- int state;
+ union {
+ struct {
+
+ /* current call state */
+ int state;
- /* current timer and message queue */
- int Tcurrent; /* current CC timer */
- int T308_second; /* used to send release again */
- struct timer_list cc_timer;
- struct gsm_mncc cc_msg; /* stores setup/disconnect/release message */
+ /* current timer and message queue */
+ int Tcurrent; /* current CC timer */
+ int T308_second; /* used to send release again */
+ struct timer_list timer;
+ struct gsm_mncc msg; /* stores setup/disconnect/release message */
+ } cc;
+ struct {
+ } sms;
+ };
};