xref: /csrg-svn/sys/netns/ns_proto.c (revision 29170)
1 /*
2  * Copyright (c) 1984, 1985, 1986 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)ns_proto.c	7.1 (Berkeley) 06/05/86
7  */
8 
9 #include "param.h"
10 #include "socket.h"
11 #include "protosw.h"
12 #include "domain.h"
13 #include "mbuf.h"
14 
15 #include "ns.h"
16 
17 /*
18  * NS protocol family: IDP, ERR, PE, SPP, ROUTE.
19  */
20 int	ns_init();
21 int	idp_input(), idp_output(), idp_ctlinput(), idp_usrreq();
22 int	idp_raw_usrreq(), idp_ctloutput();
23 int	spp_input(), spp_ctlinput();
24 int	spp_usrreq(), spp_usrreq_sp(), spp_ctloutput();
25 int	spp_init(), spp_fasttimo(), spp_slowtimo();
26 extern	int raw_usrreq();
27 
28 extern	struct domain nsdomain;
29 
30 struct protosw nssw[] = {
31 { 0,		&nsdomain,	0,		0,
32   0,		idp_output,	0,		0,
33   0,
34   ns_init,	0,		0,		0,
35 },
36 { SOCK_DGRAM,	&nsdomain,	0,		PR_ATOMIC|PR_ADDR,
37   0,		0,		idp_ctlinput,	idp_ctloutput,
38   idp_usrreq,
39   0,		0,		0,		0,
40 },
41 { SOCK_STREAM,	&nsdomain,	NSPROTO_SPP,	PR_CONNREQUIRED|PR_WANTRCVD,
42   spp_input,	0,		spp_ctlinput,	spp_ctloutput,
43   spp_usrreq,
44   spp_init,	spp_fasttimo,	spp_slowtimo,	0,
45 },
46 { SOCK_SEQPACKET,&nsdomain,	NSPROTO_SPP,	PR_CONNREQUIRED|PR_WANTRCVD|PR_ATOMIC,
47   spp_input,	0,		spp_ctlinput,	spp_ctloutput,
48   spp_usrreq_sp,
49   0,		0,		0,		0,
50 },
51 { SOCK_RAW,	&nsdomain,	NSPROTO_RAW,	PR_ATOMIC|PR_ADDR,
52   idp_input,	idp_output,	0,		idp_ctloutput,
53   idp_raw_usrreq,
54   0,		0,		0,		0,
55 },
56 { SOCK_RAW,	&nsdomain,	NSPROTO_ERROR,	PR_ATOMIC|PR_ADDR,
57   idp_ctlinput,	idp_output,	0,		idp_ctloutput,
58   idp_raw_usrreq,
59   0,		0,		0,		0,
60 },
61 };
62 
63 struct domain nsdomain =
64     { AF_NS, "network systems", 0, 0, 0,
65       nssw, &nssw[sizeof(nssw)/sizeof(nssw[0])] };
66 
67