aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDaniel Willmann <daniel@totalueberwachung.de>2008-12-29 00:44:41 +0000
committerDaniel Willmann <daniel@totalueberwachung.de>2008-12-29 00:44:41 +0000
commite0fbec823bbcc8c275aa3bb6b3ae707fad37c46f (patch)
tree71ba71b2543e223053554a5ae0a80f73eaf914c1 /include
parent6f4b753000d12574be13051f0f7df30a587ae822 (diff)
Parse sms-submit messages
Diffstat (limited to 'include')
-rw-r--r--include/openbsc/gsm_04_11.h22
-rw-r--r--include/openbsc/msgb.h2
2 files changed, 22 insertions, 2 deletions
diff --git a/include/openbsc/gsm_04_11.h b/include/openbsc/gsm_04_11.h
index 3f4b0a31f..84751a326 100644
--- a/include/openbsc/gsm_04_11.h
+++ b/include/openbsc/gsm_04_11.h
@@ -22,12 +22,30 @@
/* Chapter 8.1.1 */
struct gsm411_rp_data_hdr {
- u_int8_t len;
- u_int8_t msg_type;
+ u_int8_t len;
+ u_int8_t msg_type;
u_int8_t msg_ref;
u_int8_t data[0];
} __attribute__ ((packed));
+/* SMS submit PDU */
+struct sms_submit {
+ u_int8_t *smsc;
+ u_int8_t mti:2;
+ u_int8_t mms:1;
+ u_int8_t vpf:2;
+ u_int8_t sri:1;
+ u_int8_t udhi:1;
+ u_int8_t rp:1;
+ u_int8_t msg_ref;
+ u_int8_t *dest_addr;
+ u_int8_t pid;
+ u_int8_t dcs;
+ u_int8_t vp;
+ u_int8_t ud_len;
+ u_int8_t *user_data;
+};
+
struct msgb;
int gsm0411_rcv_sms(struct msgb *msg);
diff --git a/include/openbsc/msgb.h b/include/openbsc/msgb.h
index cfb912135..db1f8aee2 100644
--- a/include/openbsc/msgb.h
+++ b/include/openbsc/msgb.h
@@ -36,6 +36,7 @@ struct msgb {
unsigned char *l2h;
unsigned char *l3h;
+ unsigned char *smsh;
u_int16_t data_len;
u_int16_t len;
@@ -53,6 +54,7 @@ extern struct msgb *msgb_dequeue(struct llist_head *queue);
#define msgb_l2(m) ((void *)(m->l2h))
#define msgb_l3(m) ((void *)(m->l3h))
+#define msgb_sms(m) ((void *)(m->smsh))
static inline unsigned int msgb_headlen(const struct msgb *msgb)
{