aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc/gsm_data.h
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 18:56:43 +0200
commitdcaf5654db6db1ea2649907322811312d92495ec (patch)
treed5119eec518e68bc7ad059ae257cfcafaa3a1ce7 /openbsc/include/openbsc/gsm_data.h
parent9176bd46e388b0ebfb22e2e0cbad892a099f9ef1 (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.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 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;
+ };
};