diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-07-23 18:56:43 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-07-23 18:56:43 +0200 |
commit | dcaf5654db6db1ea2649907322811312d92495ec (patch) | |
tree | d5119eec518e68bc7ad059ae257cfcafaa3a1ce7 /openbsc/include/openbsc/gsm_data.h | |
parent | 9176bd46e388b0ebfb22e2e0cbad892a099f9ef1 (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/openbsc/gsm_data.h')
-rw-r--r-- | openbsc/include/openbsc/gsm_data.h | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h index 20834f0aa..8e13bd13b 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; + }; }; |