blob: 1c044677f81a09aa68942485937fefbcedcf4b83 [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 Willmann8b3390e2008-12-28 00:31:09 +000049struct msgb;
50
51int gsm0411_rcv_sms(struct msgb *msg);
52
53#endif