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 */ 121typedef 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 */ 131typedef 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 */ 137