aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc/gsm_data.h
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-04-30 19:54:29 +0200
committerHarald Welte <laforge@gnumonks.org>2010-05-04 07:20:42 +0200
commit44f1c27460325924e0391677ca76798951289f53 (patch)
treec5fd6ce69c7c37c7c77d587ba9f49431192e070f /openbsc/include/openbsc/gsm_data.h
parent06aa111fda8caadd312756fe280d808da12379f0 (diff)
gprs: remove msgb->nsvc pointer and replace it with NSEI and BVCI
According to TS 08.16, the BSSGP layer needs to specify NSEI and BVCI when executing the NS UNITDATA REQUEST primitive of the underlying NS layer. Rather than passing around a pointer to the 'struct gprs_nsvc', we now have NSEI and BVCI as members of 'struct obsc_msgb_cb' and set them when BSSGP hands a message down to NS. NS then does a lookup of the 'gprs_nsvc' based on the NSEI parameter.
Diffstat (limited to 'openbsc/include/openbsc/gsm_data.h')
-rw-r--r--openbsc/include/openbsc/gsm_data.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index 79e77e803..c124fae5e 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -79,17 +79,20 @@ enum bts_gprs_mode {
BTS_GPRS_EGPRS = 2,
};
-struct gprs_nsvc;
/* the data structure stored in msgb->cb for openbsc apps */
struct openbsc_msgb_cb {
unsigned char *gmmh;
- struct gprs_nsvc *nsvc;
+
+ u_int16_t nsei;
+ u_int16_t bvci;
+
u_int32_t tlli;
-};
+} __attribute__((packed));
#define OBSC_MSGB_CB(__msgb) ((struct openbsc_msgb_cb *)&((__msgb)->cb[0]))
#define msgb_tlli(__x) OBSC_MSGB_CB(__x)->tlli
#define msgb_gmmh(__x) OBSC_MSGB_CB(__x)->gmmh
-#define msgb_nsvc(__x) OBSC_MSGB_CB(__x)->nsvc
+#define msgb_nsei(__x) OBSC_MSGB_CB(__x)->nsei
+#define msgb_bvci(__x) OBSC_MSGB_CB(__x)->bvci
#define msgb_llch(__x) (__x)->l4h
struct msgb;