1 /*
2 * ===================================
3 * HARP | Host ATM Research Platform
4 * ===================================
5 *
6 *
7 * This Host ATM Research Platform ("HARP") file (the "Software") is
8 * made available by Network Computing Services, Inc. ("NetworkCS")
9 * "AS IS". NetworkCS does not provide maintenance, improvements or
10 * support of any kind.
11 *
12 * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED,
13 * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
14 * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE
15 * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE.
16 * In no event shall NetworkCS be responsible for any damages, including
17 * but not limited to consequential damages, arising from or relating to
18 * any use of the Software or related support.
19 *
20 * Copyright 1994-1998 Network Computing Services, Inc.
21 *
22 * Copies of this Software may be made, however, the above copyright
23 * notice must be reproduced on all copies.
24 */
25
26 /*
27 * Core ATM Services
28 * -----------------
29 *
30 * ATM socket protocol family support definitions
31 */
32
33 #include <sys/cdefs.h>
34 __FBSDID("$FreeBSD: releng/5.2/sys/netatm/atm_proto.c 117965 2003-07-24 10:33:01Z harti $");
35
36 #include <sys/param.h>
37 #include <sys/kernel.h>
38 #include <sys/domain.h>
39 #include <sys/protosw.h>
40 #include <sys/socket.h>
41 #include <sys/sysctl.h>
42 #include <net/if.h>
43 #include <netatm/port.h>
44 #include <netatm/queue.h>
45 #include <netatm/atm.h>
46 #include <netatm/atm_sys.h>
47 #include <netatm/atm_sap.h>
48 #include <netatm/atm_cm.h>
49 #include <netatm/atm_if.h>
50 #include <netatm/atm_stack.h>
51 #include <netatm/atm_pcb.h>
52 #include <netatm/atm_var.h>
53
54 struct protosw atmsw[] = {
55 { SOCK_DGRAM, /* ioctl()-only */
56 &atmdomain,
57 0,
58 0,
59 0, /* pr_input */
60 0, /* pr_output */
61 0, /* pr_ctlinput */
62 0, /* pr_ctloutput */
63 0, /* pr_ousrreq */
64 0, /* pr_init */
65 0, /* pr_fasttimo */
66 0, /* pr_slowtimo */
67 0, /* pr_drain */
68 &atm_dgram_usrreqs, /* pr_usrreqs */
69 },
70
71 { SOCK_SEQPACKET, /* AAL-5 */
72 &atmdomain,
73 ATM_PROTO_AAL5,
74 PR_ATOMIC|PR_CONNREQUIRED,
75 0, /* pr_input */
76 0, /* pr_output */
77 0, /* pr_ctlinput */
78 atm_aal5_ctloutput, /* pr_ctloutput */
79 0, /* pr_ousrreq */
80 0, /* pr_init */
81 0, /* pr_fasttimo */
82 0, /* pr_slowtimo */
83 0, /* pr_drain */
84 &atm_aal5_usrreqs, /* pr_usrreqs */
85 },
86
87 #ifdef XXX
88 { SOCK_SEQPACKET, /* SSCOP */
89 &atmdomain,
90 ATM_PROTO_SSCOP,
91 PR_ATOMIC|PR_CONNREQUIRED|PR_WANTRCVD,
92 x, /* pr_input */
93 x, /* pr_output */
94 x, /* pr_ctlinput */
95 x, /* pr_ctloutput */
96 0, /* pr_ousrreq */
97 0, /* pr_init */
98 0, /* pr_fasttimo */
99 0, /* pr_slowtimo */
100 x, /* pr_drain */
101 x, /* pr_usrreqs */
102 },
103 #endif
104 };
105
106 struct domain atmdomain = {
107 AF_ATM,
108 "atm",
109 atm_initialize,
110 0,
111 0,
112 atmsw,
113 &atmsw[sizeof(atmsw) / sizeof(atmsw[0])]
114 };
115
116 DOMAIN_SET(atm);
117
118 SYSCTL_NODE(_net, PF_ATM, harp, CTLFLAG_RW, 0, "HARP/ATM family");
119 SYSCTL_NODE(_net_harp, OID_AUTO, atm, CTLFLAG_RW, 0, "ATM layer");
120
121 /*
122 * Protocol request not supported
123 *
124 * Arguments:
125 * so pointer to socket
126 *
127 * Returns:
128 * errno error - operation not supported
129 *
130 */
131 int
132 atm_proto_notsupp1(so)
133 struct socket *so;
134 {
135 return (EOPNOTSUPP);
136 }
137
138
139 /*
140 * Protocol request not supported
141 *
142 * Arguments:
143 * so pointer to socket
144 * addr pointer to protocol address
145 * p pointer to process
146 *
147 * Returns:
148 * errno error - operation not supported
149 *
150 */
151 int
152 atm_proto_notsupp2(so, addr, td)
153 struct socket *so;
154 struct sockaddr *addr;
155 struct thread *td;
156 {
157 return (EOPNOTSUPP);
158 }
159
160
161 /*
162 * Protocol request not supported
163 *
164 * Arguments:
165 * so pointer to socket
166 * addr pointer to pointer to protocol address
167 *
168 * Returns:
169 * errno error - operation not supported
170 *
171 */
172 int
173 atm_proto_notsupp3(so, addr)
174 struct socket *so;
175 struct sockaddr **addr;
176 {
177 return (EOPNOTSUPP);
178 }
179
180
181 /*
182 * Protocol request not supported
183 *
184 * Arguments:
185 * so pointer to socket
186 * i integer
187 * m pointer to kernel buffer
188 * addr pointer to protocol address
189 * m2 pointer to kernel buffer
190 * p pointer to process
191 *
192 * Returns:
193 * errno error - operation not supported
194 *
195 */
196 int
197 atm_proto_notsupp4(so, i, m, addr, m2, td)
198 struct socket *so;
199 int i;
200 KBuffer *m;
201 struct sockaddr *addr;
202 KBuffer *m2;
203 struct thread *td;
204 {
205 return (EOPNOTSUPP);
206 }
Cache object: a06e0d870d37812e86d2105ba5de025c
|