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