1*21491Ssklower /* ns_proto.c 6.1 85/05/30 */ 2*21491Ssklower 3*21491Ssklower #include "param.h" 4*21491Ssklower #include "socket.h" 5*21491Ssklower #include "protosw.h" 6*21491Ssklower #include "domain.h" 7*21491Ssklower #include "mbuf.h" 8*21491Ssklower 9*21491Ssklower #include "ns.h" 10*21491Ssklower 11*21491Ssklower /* 12*21491Ssklower * NS protocol family: IDP, ERR, PE, SPP, ROUTE. 13*21491Ssklower */ 14*21491Ssklower int ns_init(), ns_ctlinput(); 15*21491Ssklower int idp_input(), idp_output(), idp_ctlinput(), idp_usrreq(); 16*21491Ssklower int idp_raw_usrreq(); 17*21491Ssklower int idp_init(), idp_slowtimo(), idp_drain(), idp_ctloutput(); 18*21491Ssklower int spp_input(), spp_ctlinput(); 19*21491Ssklower int spp_usrreq(), spp_usrreq_sp(), spp_ctloutput(); 20*21491Ssklower int spp_init(), spp_fasttimo(), spp_slowtimo(), spp_drain(); 21*21491Ssklower extern int raw_usrreq(); 22*21491Ssklower 23*21491Ssklower extern struct domain nsdomain; 24*21491Ssklower 25*21491Ssklower struct protosw nssw[] = { 26*21491Ssklower { 0, &nsdomain, 0, 0, 27*21491Ssklower 0, idp_output, 0, 0, 28*21491Ssklower 0, 29*21491Ssklower ns_init, 0, 0, 0, 30*21491Ssklower }, 31*21491Ssklower { SOCK_DGRAM, &nsdomain, 0, PR_ATOMIC|PR_ADDR, 32*21491Ssklower 0, 0, idp_ctlinput, idp_ctloutput, 33*21491Ssklower idp_usrreq, 34*21491Ssklower 0, 0, 0, 0, 35*21491Ssklower }, 36*21491Ssklower { SOCK_STREAM, &nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD, 37*21491Ssklower spp_input, 0, spp_ctlinput, spp_ctloutput, 38*21491Ssklower spp_usrreq, 39*21491Ssklower spp_init, spp_fasttimo, spp_slowtimo, 0, 40*21491Ssklower }, 41*21491Ssklower { SOCK_SEQPACKET,&nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD|PR_ATOMIC, 42*21491Ssklower spp_input, 0, spp_ctlinput, spp_ctloutput, 43*21491Ssklower spp_usrreq_sp, 44*21491Ssklower 0, 0, 0, 0, 45*21491Ssklower }, 46*21491Ssklower { SOCK_RAW, &nsdomain, NSPROTO_RAW, PR_ATOMIC|PR_ADDR, 47*21491Ssklower idp_input, idp_output, 0, idp_ctloutput, 48*21491Ssklower idp_raw_usrreq, 49*21491Ssklower 0, 0, 0, 0, 50*21491Ssklower }, 51*21491Ssklower { SOCK_RAW, &nsdomain, NSPROTO_ERROR, PR_ATOMIC|PR_ADDR, 52*21491Ssklower idp_ctlinput, idp_output, 0, idp_ctloutput, 53*21491Ssklower idp_raw_usrreq, 54*21491Ssklower 0, 0, 0, 0, 55*21491Ssklower }, 56*21491Ssklower }; 57*21491Ssklower 58*21491Ssklower struct domain nsdomain = 59*21491Ssklower { AF_NS, "network systems", 0, 0, 0, 60*21491Ssklower nssw, &nssw[sizeof(nssw)/sizeof(nssw[0])] }; 61*21491Ssklower 62