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.4/sys/netatm/atm_proto.c 142487 2005-02-25 17:50:31Z rwatson $");
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 NET_NEEDS_GIANT("netatm");
55
56 struct protosw atmsw[] = {
57 { SOCK_DGRAM, /* ioctl()-only */
58 &atmdomain,
59 0,
60 0,
61 0, /* pr_input */
62 0, /* pr_output */
63 0, /* pr_ctlinput */
64 0, /* pr_ctloutput */
65 0, /* pr_ousrreq */
66 0, /* pr_init */
67 0, /* pr_fasttimo */
68 0, /* pr_slowtimo */
69 0, /* pr_drain */
70 &atm_dgram_usrreqs, /* pr_usrreqs */
71 },
72
73 { SOCK_SEQPACKET, /* AAL-5 */
74 &atmdomain,
75 ATM_PROTO_AAL5,
76 PR_ATOMIC|PR_CONNREQUIRED,
77 0, /* pr_input */
78 0, /* pr_output */
79 0, /* pr_ctlinput */
80 atm_aal5_ctloutput, /* pr_ctloutput */
81 0, /* pr_ousrreq */
82 0, /* pr_init */
83 0, /* pr_fasttimo */
84 0, /* pr_slowtimo */
85 0, /* pr_drain */
86 &atm_aal5_usrreqs, /* pr_usrreqs */
87 },
88
89 #ifdef XXX
90 { SOCK_SEQPACKET, /* SSCOP */
91 &atmdomain,
92 ATM_PROTO_SSCOP,
93 PR_ATOMIC|PR_CONNREQUIRED|PR_WANTRCVD,
94 x, /* pr_input */
95 x, /* pr_output */
96 x, /* pr_ctlinput */
97 x, /* pr_ctloutput */
98 0, /* pr_ousrreq */
99 0, /* pr_init */
100 0, /* pr_fasttimo */
101 0, /* pr_slowtimo */
102 x, /* pr_drain */
103 x, /* pr_usrreqs */
104 },
105 #endif
106 };
107
108 struct domain atmdomain = {
109 AF_ATM,
110 "atm",
111 atm_initialize,
112 0,
113 0,
114 atmsw,
115 &atmsw[sizeof(atmsw) / sizeof(atmsw[0])]
116 };
117
118 DOMAIN_SET(atm);
119
120 SYSCTL_NODE(_net, PF_ATM, harp, CTLFLAG_RW, 0, "HARP/ATM family");
121 SYSCTL_NODE(_net_harp, OID_AUTO, atm, CTLFLAG_RW, 0, "ATM layer");
122
123 /*
124 * Protocol request not supported
125 *
126 * Arguments:
127 * so pointer to socket
128 *
129 * Returns:
130 * errno error - operation not supported
131 *
132 */
133 int
134 atm_proto_notsupp1(so)
135 struct socket *so;
136 {
137 return (EOPNOTSUPP);
138 }
139
140
141 /*
142 * Protocol request not supported
143 *
144 * Arguments:
145 * so pointer to socket
146 * addr pointer to protocol address
147 * p pointer to process
148 *
149 * Returns:
150 * errno error - operation not supported
151 *
152 */
153 int
154 atm_proto_notsupp2(so, addr, td)
155 struct socket *so;
156 struct sockaddr *addr;
157 struct thread *td;
158 {
159 return (EOPNOTSUPP);
160 }
161
162
163 /*
164 * Protocol request not supported
165 *
166 * Arguments:
167 * so pointer to socket
168 * addr pointer to pointer to protocol address
169 *
170 * Returns:
171 * errno error - operation not supported
172 *
173 */
174 int
175 atm_proto_notsupp3(so, addr)
176 struct socket *so;
177 struct sockaddr **addr;
178 {
179 return (EOPNOTSUPP);
180 }
181
182
183 /*
184 * Protocol request not supported
185 *
186 * Arguments:
187 * so pointer to socket
188 * i integer
189 * m pointer to kernel buffer
190 * addr pointer to protocol address
191 * m2 pointer to kernel buffer
192 * p pointer to process
193 *
194 * Returns:
195 * errno error - operation not supported
196 *
197 */
198 int
199 atm_proto_notsupp4(so, i, m, addr, m2, td)
200 struct socket *so;
201 int i;
202 KBuffer *m;
203 struct sockaddr *addr;
204 KBuffer *m2;
205 struct thread *td;
206 {
207 return (EOPNOTSUPP);
208 }
Cache object: 25410f8d944bc75c9c087f799a346abd
|