]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/i4b/layer2/i4b_lme.c
Remove 42 unneeded #include <sys/ioccom.h>.
[FreeBSD/FreeBSD.git] / sys / i4b / layer2 / i4b_lme.c
1 /*
2  * Copyright (c) 1997, 1999 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_lme.c - layer management entity
28  *      -------------------------------------
29  *
30  *      $Id: i4b_lme.c,v 1.11 1999/12/13 21:25:27 hm Exp $ 
31  *
32  * $FreeBSD$
33  *
34  *      last edit-date: [Mon Dec 13 22:04:03 1999]
35  *
36  *---------------------------------------------------------------------------*/
37
38 #ifdef __FreeBSD__
39 #include "i4bq921.h"
40 #else
41 #define NI4BQ921        1
42 #endif
43 #if NI4BQ921 > 0
44
45 #include <sys/param.h>
46
47 #if defined(__FreeBSD__)
48 #else
49 #include <sys/ioctl.h>
50 #endif
51
52 #include <sys/systm.h>
53 #include <sys/mbuf.h>
54 #include <sys/socket.h>
55 #include <net/if.h>
56
57 #ifdef __FreeBSD__
58 #include <machine/i4b_debug.h>
59 #include <machine/i4b_ioctl.h>
60 #else
61 #include <i4b/i4b_debug.h>
62 #include <i4b/i4b_ioctl.h>
63 #endif
64
65 #include <i4b/include/i4b_l1l2.h>
66 #include <i4b/include/i4b_l2l3.h>
67 #include <i4b/include/i4b_isdnq931.h>
68 #include <i4b/include/i4b_mbuf.h>
69
70 #include <i4b/layer2/i4b_l2.h>
71 #include <i4b/layer2/i4b_l2fsm.h>
72
73 /*---------------------------------------------------------------------------*
74  *      mdl assign indication handler
75  *---------------------------------------------------------------------------*/
76 void
77 i4b_mdl_assign_ind(l2_softc_t *l2sc)
78 {
79         DBGL2(L2_PRIM, "MDL-ASSIGN-IND", ("unit %d\n", l2sc->unit));
80         
81         i4b_l1_activate(l2sc);
82         
83         if(l2sc->tei_valid == TEI_VALID)
84         {
85                 l2sc->T202func = (void(*)(void*))i4b_tei_verify;
86                 l2sc->N202 = N202DEF;
87                 i4b_tei_verify(l2sc);
88         }
89         else
90         {
91                 l2sc->T202func = (void(*)(void*))i4b_tei_assign;
92                 l2sc->N202 = N202DEF;
93                 i4b_tei_assign(l2sc);
94         }               
95 }
96
97 /*---------------------------------------------------------------------------*
98  *      i4b_mdl_error_ind handler (Q.921 01/94 pp 156)
99  *---------------------------------------------------------------------------*/
100 void
101 i4b_mdl_error_ind(l2_softc_t *l2sc, char *where, int errorcode)
102 {
103         static char *error_text[] = {
104                 "MDL_ERR_A: rx'd unsolicited response - supervisory (F=1)",
105                 "MDL_ERR_B: rx'd unsolicited response - DM (F=1)",
106                 "MDL_ERR_C: rx'd unsolicited response - UA (F=1)",
107                 "MDL_ERR_D: rx'd unsolicited response - UA (F=0)",
108                 "MDL_ERR_E: rx'd unsolicited response - DM (F=0)",
109                 "MDL_ERR_F: peer initiated re-establishment - SABME",
110                 "MDL_ERR_G: unsuccessful transmission N200times - SABME",
111                 "MDL_ERR_H: unsuccessful transmission N200times - DIS",
112                 "MDL_ERR_I: unsuccessful transmission N200times - Status ENQ",
113                 "MDL_ERR_J: other error - N(R) error",
114                 "MDL_ERR_K: other error - rx'd FRMR response",
115                 "MDL_ERR_L: other error - rx'd undefined frame",
116                 "MDL_ERR_M: other error - receipt of I field not permitted",
117                 "MDL_ERR_N: other error - rx'd frame with wrong size",
118                 "MDL_ERR_O: other error - N201 error",
119                 "MDL_ERR_MAX: i4b_mdl_error_ind called with wrong parameter!!!"
120         };
121
122         if(errorcode > MDL_ERR_MAX)
123                 errorcode = MDL_ERR_MAX;
124                 
125         DBGL2(L2_ERROR, "i4b_mdl_error_ind", ("unit = %d, location = %s\n", l2sc->unit, where));
126         DBGL2(L2_ERROR, "i4b_mdl_error_ind", ("error = %s\n", error_text[errorcode]));
127
128         switch(errorcode)
129         {       
130                 case MDL_ERR_A:
131                 case MDL_ERR_B:
132                         break;
133
134                 case MDL_ERR_C:
135                 case MDL_ERR_D:
136                         i4b_tei_verify(l2sc);
137                         break;
138
139                 case MDL_ERR_E:
140                 case MDL_ERR_F:
141                         break;
142
143                 case MDL_ERR_G:
144                 case MDL_ERR_H:
145                         i4b_tei_verify(l2sc);
146                         break;
147
148                 case MDL_ERR_I:
149                 case MDL_ERR_J:
150                 case MDL_ERR_K:
151                 case MDL_ERR_L:
152                 case MDL_ERR_M:
153                 case MDL_ERR_N:
154                 case MDL_ERR_O:
155                         break;
156
157                 default:
158                         break;
159         }
160 }
161  
162 #endif /* NI4BQ921 > 0 */