linux/drivers/isdn/hisax/l3ni1.h
<<
>>
Prefs
   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