Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most
[dragonfly.git] / sys / net / i4b / include / i386 / i4b_cause.h
1 /*
2  * Copyright (c) 1997, 2000 Hellmuth Michaelis. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23  * SUCH DAMAGE.
24  *
25  *---------------------------------------------------------------------------
26  *
27  *      i4b_cause.h - causes and cause handling for i4b
28  *      -----------------------------------------------
29  *
30  *      $Id: i4b_cause.h,v 1.13 2000/02/06 19:01:14 hm Exp $
31  *
32  * $FreeBSD: src/sys/i386/include/i4b_cause.h,v 1.6.2.1 2001/08/01 17:45:01 obrien Exp $
33  * $DragonFly: src/sys/net/i4b/include/i386/i4b_cause.h,v 1.2 2003/06/17 04:28:35 dillon Exp $
34  *
35  *      last edit-date: [Sun Feb  6 19:46:41 2000]
36  *
37  *---------------------------------------------------------------------------*/
38
39 #ifndef _I4B_CAUSE_H_
40 #define _I4B_CAUSE_H_
41
42 /*---------------------------------------------------------------------------*
43  *      ISDN4BSD internal causes specification
44  *---------------------------------------------------------------------------*/
45
46 #define CAUSE_VAL       0x000000ff      /* cause value                  */
47 #define CAUSE_TYPE      0x0000ff00      /* cause type                   */
48 #define  CAUSET_Q850    0               /* value coded according to Q.850 */
49 #define  CAUSET_I4B     1               /* i4b protocol independent causes*/
50
51 #define GET_CAUSE_VAL(cause)      ((cause) & 0xff)
52 #define SET_CAUSE_VAL(dest, val)  ((dest) = ((dest & 0xffffff00) | \
53                                                 (val & 0x000000ff)))
54
55 #define GET_CAUSE_TYPE(cause)      (((cause) >> 8) & 0xff)
56 #define SET_CAUSE_TYPE(dest, type) ((dest) = ((dest & 0xffff00ff) | \
57                                                 ((type << 8) & 0x0000ff00)))
58
59 #define SET_CAUSE_TV(dest, type, val) ((dest) = ((val & 0x000000ff) | \
60                                                  ((type << 8) & 0x0000ff00)))
61
62 /* CAUSET_I4B - protocol independent cause values */
63
64 #define CAUSE_I4B_NORMAL        0       /* normal call clearing         */
65 #define CAUSE_I4B_BUSY          1       /* user busy                    */
66 #define CAUSE_I4B_NOCHAN        2       /* circuit/channel not available*/
67 #define CAUSE_I4B_INCOMP        3       /* incompatible source/dest     */
68 #define CAUSE_I4B_REJECT        4       /* call rejected                */
69 #define CAUSE_I4B_OOO           5       /* destination out of order     */
70 #define CAUSE_I4B_TMPFAIL       6       /* temporary failure            */
71 #define CAUSE_I4B_L1ERROR       7       /* L1 error / persistent deact  */
72 #define CAUSE_I4B_LLDIAL        8       /* no dialout on leased line    */
73 #define CAUSE_I4B_MAX           9
74         /* NOTE: update isdnd/pcause.c when adding causes !!!!!         */
75         /* NOTE: update layer3/i4b_q931.c when adding causes !!!!!      */
76         
77 /* CAUSET_Q850 - causes defined in Q.850 */
78
79 #define CAUSE_Q850_SHUTDN       0x00    /* normal D-channel shutdown */
80 #define CAUSE_Q850_NUNALLC      0x01    /* Unallocated (unassigned) number */
81 #define CAUSE_Q850_NRTTN        0x02    /* No route to specified transit network */
82 #define CAUSE_Q850_NRTDST       0x03    /* No route to destination */
83 #define CAUSE_Q850_SSINFTN      0x04    /* Send special information tone */
84 #define CAUSE_Q850_MDIALTP      0x05    /* Misdialled trunk prefix */
85 #define CAUSE_Q850_CHUNACC      0x06    /* Channel unacceptable */
86 #define CAUSE_Q850_CALLAWD      0x07    /* Call awarded and being delivered in an established channel */
87 #define CAUSE_Q850_PREEMPT      0x08    /* Preemption */
88 #define CAUSE_Q850_PREECRR      0x09    /* Preemption - circuit reserved for reuse */
89 #define CAUSE_Q850_NCCLR        0x10    /* Normal call clearing */
90 #define CAUSE_Q850_USRBSY       0x11    /* User busy */
91 #define CAUSE_Q850_NOUSRRSP     0x12    /* No user responding */
92 #define CAUSE_Q850_NOANSWR      0x13    /* No answer from user (user alerted) */
93 #define CAUSE_Q850_SUBSABS      0x14    /* Subscriber absent */
94 #define CAUSE_Q850_CALLREJ      0x15    /* Call rejected */
95 #define CAUSE_Q850_NUCHNG       0x16    /* Number changed */
96 #define CAUSE_Q850_NONSELUC     0x1A    /* Non-selected user clearing */
97 #define CAUSE_Q850_DSTOOORDR    0x1B    /* Destination out of order */
98 #define CAUSE_Q850_INVNUFMT     0x1C    /* Invalid number format */
99 #define CAUSE_Q850_FACREJ       0x1D    /* Facility rejected */
100 #define CAUSE_Q850_STENQRSP     0x1E    /* Response to STATUS ENQUIRY */
101 #define CAUSE_Q850_NORMUNSP     0x1F    /* Normal, unspecified */
102 #define CAUSE_Q850_NOCAVAIL     0x22    /* No circuit / channel available */
103 #define CAUSE_Q850_NETOOORDR    0x26    /* Network out of order */
104 #define CAUSE_Q850_PFMCDOOSERV  0x27    /* Permanent frame mode connection out of service */
105 #define CAUSE_Q850_PFMCOPER     0x28    /* Permanent frame mode connection operational */
106 #define CAUSE_Q850_TMPFAIL      0x29    /* Temporary failure */
107 #define CAUSE_Q850_SWEQCONG     0x2A    /* Switching equipment congestion */
108 #define CAUSE_Q850_ACCINFDIS    0x2B    /* Access information discarded */
109 #define CAUSE_Q850_REQCNOTAV    0x2C    /* Requested circuit/channel not available */
110 #define CAUSE_Q850_PRECALBLK    0x2E    /* Precedence call blocked */
111 #define CAUSE_Q850_RESUNAVAIL   0x2F    /* Resources unavailable, unspecified */
112 #define CAUSE_Q850_QOSUNAVAIL   0x31    /* Quality of service unavailable */
113 #define CAUSE_Q850_REQSERVNS    0x32    /* Requested facility not subscribed */
114 #define CAUSE_Q850_OCBARRCUG    0x35    /* Outgoing calls barred within CUG */
115 #define CAUSE_Q850_ICBARRCUG    0x36    /* Incoming calls barred within CUG */
116 #define CAUSE_Q850_BCAPNAUTH    0x39    /* Bearer capability not authorized */
117 #define CAUSE_Q850_BCAPNAVAIL   0x3A    /* Bearer capability not presently available */
118 #define CAUSE_Q850_INCSTOACISC  0x3E    /* Inconsistenciy in designated outgoing access information and subscriber class */
119 #define CAUSE_Q850_SOONOTAVAIL  0x3F    /* Service or option not available, unspecified */
120 #define CAUSE_Q850_BCAPNOTIMPL  0x41    /* Bearer capability not implemented */
121 #define CAUSE_Q850_CHTYPNIMPL   0x42    /* Channel type not implemented */
122 #define CAUSE_Q850_REQFACNIMPL  0x45    /* Requested facility not implemented */
123 #define CAUSE_Q850_ORDINBCAVL   0x46    /* Only restricted digital information bearer capability is available */
124 #define CAUSE_Q850_SOONOTIMPL   0x4F    /* Service or option not implemented, unspecified */
125 #define CAUSE_Q850_INVCLRFVAL   0x51    /* Invalid call reference value */
126 #define CAUSE_Q850_IDCHDNOEX    0x52    /* Identified channel does not exist */
127 #define CAUSE_Q850_SUSCAEXIN    0x53    /* A suspended call exists, but this call identity does not */
128 #define CAUSE_Q850_CLIDINUSE    0x54    /* Call identity in use */
129 #define CAUSE_Q850_NOCLSUSP     0x55    /* No call suspended */
130 #define CAUSE_Q850_CLIDCLRD     0x56    /* Call having the requested call identity has been cleared */
131 #define CAUSE_Q850_UNOTMEMCUG   0x57    /* User not member of CUG */
132 #define CAUSE_Q850_INCDEST      0x58    /* Incompatible destination */
133 #define CAUSE_Q850_NONEXCUG     0x5A    /* Non-existent CUG */
134 #define CAUSE_Q850_INVNTWSEL    0x5B    /* Invalid transit network selection */
135 #define CAUSE_Q850_INVMSG       0x5F    /* Invalid message, unspecified */
136 #define CAUSE_Q850_MIEMISS      0x60    /* Mandatory information element is missing */
137 #define CAUSE_Q850_MSGTNI       0x61    /* Message type non-existent or not implemented */
138 #define CAUSE_Q850_MSGNCMPT     0x62    /* Message not compatible with call state or message type non-existent or not implemented */
139 #define CAUSE_Q850_IENENI       0x63    /* Information element/parameter non-existent or not implemented */
140 #define CAUSE_Q850_INVIEC       0x64    /* Invalid information element contents */
141 #define CAUSE_Q850_MSGNCWCS     0x65    /* Message not compatible with call state */
142 #define CAUSE_Q850_RECOTIMEXP   0x66    /* Recovery on timer expiry */
143 #define CAUSE_Q850_PARMNENIPO   0x67    /* Parameter non-existent or not implemented, passed on */
144 #define CAUSE_Q850_MSGUNRDPRM   0x6E    /* Message with unrecognized parameter, discarded */
145 #define CAUSE_Q850_PROTERR      0x6F    /* Protocol error, unspecified */
146 #define CAUSE_Q850_INTWRKU      0x7F    /* Interworking, unspecified */
147
148 #define CAUSE_Q850_MAX          128
149
150 #endif /* _I4B_CAUSE_H_ */