| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 */ |