Merge git://git.infradead.org/mtd-2.6
[linux-2.6] / drivers / isdn / hisax / l3ni1.h
1 /* $Id: l3ni1.h,v 2.3.6.2 2001/09/23 22:24:50 kai Exp $
2  *
3  * NI1 D-channel protocol
4  *
5  * Author       Matt Henderson & Guy Ellis
6  * Copyright    by Traverse Technologies Pty Ltd, www.travers.com.au
7  * 
8  * This software may be used and distributed according to the terms
9  * of the GNU General Public License, incorporated herein by reference.
10  *
11  * 2000.6.6 Initial implementation of routines for US NI1 
12  * Layer 3 protocol based on the EURO/DSS1 D-channel protocol 
13  * driver written by Karsten Keil et al.  Thanks also for the 
14  * code provided by Ragnar Paulson.
15  *
16  */
17
18 #ifndef l3ni1_process
19
20 #define T302    15000
21 #define T303    4000
22 #define T304    30000
23 #define T305    30000
24 #define T308    4000
25 /* for layer 1 certification T309 < layer1 T3 (e.g. 4000) */
26 /* This makes some tests easier and quicker */
27 #define T309    40000
28 #define T310    30000
29 #define T313    4000
30 #define T318    4000
31 #define T319    4000
32 #define TSPID   5000 /* was 2000 - Guy Ellis */
33
34 /*
35  * Message-Types
36  */
37
38 #define MT_ALERTING             0x01
39 #define MT_CALL_PROCEEDING      0x02
40 #define MT_CONNECT              0x07
41 #define MT_CONNECT_ACKNOWLEDGE  0x0f
42 #define MT_PROGRESS             0x03
43 #define MT_SETUP                0x05
44 #define MT_SETUP_ACKNOWLEDGE    0x0d
45 #define MT_RESUME               0x26
46 #define MT_RESUME_ACKNOWLEDGE   0x2e
47 #define MT_RESUME_REJECT        0x22
48 #define MT_SUSPEND              0x25
49 #define MT_SUSPEND_ACKNOWLEDGE  0x2d
50 #define MT_SUSPEND_REJECT       0x21
51 #define MT_USER_INFORMATION     0x20
52 #define MT_DISCONNECT           0x45
53 #define MT_RELEASE              0x4d
54 #define MT_RELEASE_COMPLETE     0x5a
55 #define MT_RESTART              0x46
56 #define MT_RESTART_ACKNOWLEDGE  0x4e
57 #define MT_SEGMENT              0x60
58 #define MT_CONGESTION_CONTROL   0x79
59 #define MT_INFORMATION          0x7b
60 #define MT_FACILITY             0x62
61 #define MT_NOTIFY               0x6e
62 #define MT_STATUS               0x7d
63 #define MT_STATUS_ENQUIRY       0x75
64 #define MT_DL_ESTABLISHED       0xfe
65
66 #define IE_SEGMENT      0x00
67 #define IE_BEARER       0x04
68 #define IE_CAUSE        0x08
69 #define IE_CALL_ID      0x10
70 #define IE_CALL_STATE   0x14
71 #define IE_CHANNEL_ID   0x18
72 #define IE_FACILITY     0x1c
73 #define IE_PROGRESS     0x1e
74 #define IE_NET_FAC      0x20
75 #define IE_NOTIFY       0x27
76 #define IE_DISPLAY      0x28
77 #define IE_DATE         0x29
78 #define IE_KEYPAD       0x2c
79 #define IE_SIGNAL       0x34
80 #define IE_SPID         0x3a
81 #define IE_ENDPOINT_ID  0x3b
82 #define IE_INFORATE     0x40
83 #define IE_E2E_TDELAY   0x42
84 #define IE_TDELAY_SEL   0x43
85 #define IE_PACK_BINPARA 0x44
86 #define IE_PACK_WINSIZE 0x45
87 #define IE_PACK_SIZE    0x46
88 #define IE_CUG          0x47
89 #define IE_REV_CHARGE   0x4a
90 #define IE_CONNECT_PN   0x4c
91 #define IE_CONNECT_SUB  0x4d
92 #define IE_CALLING_PN   0x6c
93 #define IE_CALLING_SUB  0x6d
94 #define IE_CALLED_PN    0x70
95 #define IE_CALLED_SUB   0x71
96 #define IE_REDIR_NR     0x74
97 #define IE_TRANS_SEL    0x78
98 #define IE_RESTART_IND  0x79
99 #define IE_LLC          0x7c
100 #define IE_HLC          0x7d
101 #define IE_USER_USER    0x7e
102 #define IE_ESCAPE       0x7f
103 #define IE_SHIFT        0x90
104 #define IE_MORE_DATA    0xa0
105 #define IE_COMPLETE     0xa1
106 #define IE_CONGESTION   0xb0
107 #define IE_REPEAT       0xd0
108
109 #define IE_MANDATORY    0x0100
110 /* mandatory not in every case */
111 #define IE_MANDATORY_1  0x0200
112
113 #define ERR_IE_COMPREHENSION     1
114 #define ERR_IE_UNRECOGNIZED     -1
115 #define ERR_IE_LENGTH           -2
116 #define ERR_IE_SEQUENCE         -3
117
118 #else /* only l3ni1_process */
119
120 /* l3ni1 specific data in l3 process */
121 typedef struct
122   { unsigned char invoke_id; /* used invoke id in remote ops, 0 = not active */
123     ulong ll_id; /* remebered ll id */
124     u8 remote_operation; /* handled remote operation, 0 = not active */ 
125     int proc; /* rememered procedure */  
126     ulong remote_result; /* result of remote operation for statcallb */
127     char uus1_data[35]; /* data send during alerting or disconnect */
128   } ni1_proc_priv;
129
130 /* l3dni1 specific data in protocol stack */
131 typedef struct
132   { unsigned char last_invoke_id; /* last used value for invoking */
133     unsigned char invoke_used[32]; /* 256 bits for 256 values */
134   } ni1_stk_priv;        
135
136 #endif /* only l3dni1_process */