2005-01-07 01:45:51 +00:00
|
|
|
/*-
|
1998-09-15 08:23:17 +00:00
|
|
|
* ===================================
|
|
|
|
* HARP | Host ATM Research Platform
|
|
|
|
* ===================================
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* This Host ATM Research Platform ("HARP") file (the "Software") is
|
|
|
|
* made available by Network Computing Services, Inc. ("NetworkCS")
|
|
|
|
* "AS IS". NetworkCS does not provide maintenance, improvements or
|
|
|
|
* support of any kind.
|
|
|
|
*
|
|
|
|
* NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED,
|
|
|
|
* INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
|
|
* AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE
|
|
|
|
* SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE.
|
|
|
|
* In no event shall NetworkCS be responsible for any damages, including
|
|
|
|
* but not limited to consequential damages, arising from or relating to
|
|
|
|
* any use of the Software or related support.
|
|
|
|
*
|
|
|
|
* Copyright 1994-1998 Network Computing Services, Inc.
|
|
|
|
*
|
|
|
|
* Copies of this Software may be made, however, the above copyright
|
|
|
|
* notice must be reproduced on all copies.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Core ATM Services
|
|
|
|
* -----------------
|
|
|
|
*
|
|
|
|
* ATM socket protocol family support definitions
|
|
|
|
*/
|
|
|
|
|
2003-06-11 07:00:30 +00:00
|
|
|
#include <sys/cdefs.h>
|
|
|
|
__FBSDID("$FreeBSD$");
|
|
|
|
|
2000-10-12 08:14:20 +00:00
|
|
|
#include <sys/param.h>
|
|
|
|
#include <sys/kernel.h>
|
|
|
|
#include <sys/domain.h>
|
|
|
|
#include <sys/protosw.h>
|
|
|
|
#include <sys/socket.h>
|
2003-07-24 10:33:01 +00:00
|
|
|
#include <sys/sysctl.h>
|
2000-10-12 08:14:20 +00:00
|
|
|
#include <net/if.h>
|
|
|
|
#include <netatm/port.h>
|
|
|
|
#include <netatm/queue.h>
|
|
|
|
#include <netatm/atm.h>
|
|
|
|
#include <netatm/atm_sys.h>
|
|
|
|
#include <netatm/atm_sap.h>
|
|
|
|
#include <netatm/atm_cm.h>
|
|
|
|
#include <netatm/atm_if.h>
|
|
|
|
#include <netatm/atm_stack.h>
|
|
|
|
#include <netatm/atm_pcb.h>
|
|
|
|
#include <netatm/atm_var.h>
|
1998-10-31 20:07:01 +00:00
|
|
|
|
2007-07-14 21:49:24 +00:00
|
|
|
#error "NET_NEEDS_GIANT"
|
2005-02-17 14:21:22 +00:00
|
|
|
|
1998-09-15 08:23:17 +00:00
|
|
|
struct protosw atmsw[] = {
|
2005-11-09 13:29:16 +00:00
|
|
|
{
|
|
|
|
.pr_type = SOCK_DGRAM, /* ioctl()-only */
|
|
|
|
.pr_domain = &atmdomain,
|
|
|
|
.pr_usrreqs = &atm_dgram_usrreqs
|
1998-09-15 08:23:17 +00:00
|
|
|
},
|
|
|
|
|
2005-11-09 13:29:16 +00:00
|
|
|
{
|
|
|
|
.pr_type = SOCK_SEQPACKET, /* AAL-5 */
|
|
|
|
.pr_domain = &atmdomain,
|
|
|
|
.pr_protocol = ATM_PROTO_AAL5,
|
|
|
|
.pr_flags = PR_ATOMIC|PR_CONNREQUIRED,
|
|
|
|
.pr_ctloutput = atm_aal5_ctloutput,
|
|
|
|
.pr_usrreqs = &atm_aal5_usrreqs
|
1998-09-15 08:23:17 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
#ifdef XXX
|
2005-11-09 13:29:16 +00:00
|
|
|
{
|
|
|
|
.pr_type = SOCK_SEQPACKET, /* SSCOP */
|
|
|
|
.pr_domain = &atmdomain,
|
|
|
|
.pr_protocol = ATM_PROTO_SSCOP,
|
|
|
|
.pr_flags = PR_ATOMIC|PR_CONNREQUIRED|PR_WANTRCVD,
|
|
|
|
.pr_input = x,
|
|
|
|
.pr_output = x,
|
|
|
|
.pr_ctlinput = x,
|
|
|
|
.pr_ctloutput = x,
|
|
|
|
.pr_drain = x,
|
|
|
|
.pr_usrreqs = x
|
1998-09-15 08:23:17 +00:00
|
|
|
},
|
|
|
|
#endif
|
|
|
|
};
|
|
|
|
|
|
|
|
struct domain atmdomain = {
|
2005-11-09 13:29:16 +00:00
|
|
|
.dom_family = AF_ATM,
|
|
|
|
.dom_name = "atm",
|
|
|
|
.dom_init = atm_initialize,
|
|
|
|
.dom_protosw = atmsw,
|
|
|
|
.dom_protoswNPROTOSW = &atmsw[sizeof(atmsw) / sizeof(atmsw[0])]
|
1998-09-15 08:23:17 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
DOMAIN_SET(atm);
|
|
|
|
|
2003-07-24 10:33:01 +00:00
|
|
|
SYSCTL_NODE(_net, PF_ATM, harp, CTLFLAG_RW, 0, "HARP/ATM family");
|
|
|
|
SYSCTL_NODE(_net_harp, OID_AUTO, atm, CTLFLAG_RW, 0, "ATM layer");
|
1998-09-15 08:23:17 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Protocol request not supported
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* so pointer to socket
|
|
|
|
*
|
|
|
|
* Returns:
|
|
|
|
* errno error - operation not supported
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
int
|
|
|
|
atm_proto_notsupp1(so)
|
|
|
|
struct socket *so;
|
|
|
|
{
|
|
|
|
return (EOPNOTSUPP);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Protocol request not supported
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* so pointer to socket
|
|
|
|
* addr pointer to protocol address
|
|
|
|
* p pointer to process
|
|
|
|
*
|
|
|
|
* Returns:
|
|
|
|
* errno error - operation not supported
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
int
|
2001-09-12 08:38:13 +00:00
|
|
|
atm_proto_notsupp2(so, addr, td)
|
1998-09-15 08:23:17 +00:00
|
|
|
struct socket *so;
|
|
|
|
struct sockaddr *addr;
|
2001-09-12 08:38:13 +00:00
|
|
|
struct thread *td;
|
1998-09-15 08:23:17 +00:00
|
|
|
{
|
|
|
|
return (EOPNOTSUPP);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Protocol request not supported
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* so pointer to socket
|
|
|
|
* addr pointer to pointer to protocol address
|
|
|
|
*
|
|
|
|
* Returns:
|
|
|
|
* errno error - operation not supported
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
int
|
|
|
|
atm_proto_notsupp3(so, addr)
|
|
|
|
struct socket *so;
|
|
|
|
struct sockaddr **addr;
|
|
|
|
{
|
|
|
|
return (EOPNOTSUPP);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Protocol request not supported
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* so pointer to socket
|
|
|
|
* i integer
|
|
|
|
* m pointer to kernel buffer
|
|
|
|
* addr pointer to protocol address
|
|
|
|
* m2 pointer to kernel buffer
|
|
|
|
* p pointer to process
|
|
|
|
*
|
|
|
|
* Returns:
|
|
|
|
* errno error - operation not supported
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
int
|
2001-09-12 08:38:13 +00:00
|
|
|
atm_proto_notsupp4(so, i, m, addr, m2, td)
|
1998-09-15 08:23:17 +00:00
|
|
|
struct socket *so;
|
|
|
|
int i;
|
|
|
|
KBuffer *m;
|
|
|
|
struct sockaddr *addr;
|
|
|
|
KBuffer *m2;
|
2001-09-12 08:38:13 +00:00
|
|
|
struct thread *td;
|
1998-09-15 08:23:17 +00:00
|
|
|
{
|
|
|
|
return (EOPNOTSUPP);
|
|
|
|
}
|
2006-04-01 15:15:05 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Protocol request not supported
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* so pointer to socket
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
atm_proto_notsupp5(so)
|
|
|
|
struct socket *so;
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|