blob: b53d17dbec49ae6b4cab9450f49415cc97b48f76 [file] [log] [blame]
Daniel Willmann8b3390e2008-12-28 00:31:09 +00001#ifndef _GSM_04_11_H
2#define _GSM_04_11_H
3
4/* GSM TS 04.11 definitions */
5
6/* Chapter 8.1.2 (refers to GSM 04.07 Chapter 11.2.3.1.1 */
7#define GSM411_PDISC_SMS 0x09
8
9/* Chapter 8.1.3 */
10#define GSM411_MT_CP_DATA 0x01
11#define GSM411_MT_CP_ACK 0x04
12#define GSM411_MT_CP_ERROR 0x10
13
14/* Chapter 8.2.2 */
15#define GSM411_MT_RP_DATA_MO 0x00
16#define GSM411_MT_RP_DATA_MT 0x01
17#define GSM411_MT_RP_ACK_MO 0x02
18#define GSM411_MT_RP_ACK_MT 0x03
19#define GSM411_MT_RP_ERROR_MO 0x04
20#define GSM411_MT_RP_ERROR_MT 0x04
21#define GSM411_MT_RP_SMMA_MO 0x05
22
Daniel Willmann471712b2008-12-29 01:54:02 +000023/* Chapter 8.2.1 */
24struct gsm411_rp_hdr {
Daniel Willmanne0fbec82008-12-29 00:44:41 +000025 u_int8_t len;
26 u_int8_t msg_type;
Daniel Willmann8b3390e2008-12-28 00:31:09 +000027 u_int8_t msg_ref;
28 u_int8_t data[0];
29} __attribute__ ((packed));
30
Daniel Willmanne0fbec82008-12-29 00:44:41 +000031/* SMS submit PDU */
32struct sms_submit {
33 u_int8_t *smsc;
34 u_int8_t mti:2;
35 u_int8_t mms:1;
36 u_int8_t vpf:2;
37 u_int8_t sri:1;
38 u_int8_t udhi:1;
39 u_int8_t rp:1;
40 u_int8_t msg_ref;
41 u_int8_t *dest_addr;
42 u_int8_t pid;
43 u_int8_t dcs;
44 u_int8_t vp;
45 u_int8_t ud_len;
46 u_int8_t *user_data;
47};
48
Daniel Willmann6fe997e2008-12-29 04:20:41 +000049/* SMS deliver PDU */
50struct sms_deliver {
51 u_int8_t *smsc;
52 u_int8_t mti:2;
53 u_int8_t rd:1;
54 u_int8_t vpf:2;
55 u_int8_t srr:1;
56 u_int8_t udhi:1;
57 u_int8_t rp:1;
58 u_int8_t msg_ref;
59 u_int8_t *orig_addr;
60 u_int8_t pid;
61 u_int8_t dcs;
62 u_int8_t vp;
63 u_int8_t ud_len;
64 u_int8_t *user_data;
65};
66
Daniel Willmann8b3390e2008-12-28 00:31:09 +000067struct msgb;
68
69int gsm0411_rcv_sms(struct msgb *msg);
70
Daniel Willmann6fe997e2008-12-29 04:20:41 +000071int gsm0411_send_sms(struct gsm_lchan *lchan, struct sms_deliver *sms);
72
Holger Freythera553d092009-01-04 20:16:25 +000073struct msgb *gsm411_msgb_alloc(void);
74int gsm0411_sendmsg(struct msgb *msg);
75
Daniel Willmann8b3390e2008-12-28 00:31:09 +000076#endif