123213Smckusick /* 233371Ssklower * Copyright (c) 1984, 1985, 1986, 1987 Regents of the University of California. 333371Ssklower * All rights reserved. 423213Smckusick * 544506Sbostic * %sccs.include.redist.c% 633371Ssklower * 7*54826Ssklower * @(#)ns_proto.c 7.5 (Berkeley) 07/09/92 823213Smckusick */ 921491Ssklower 1021491Ssklower #include "param.h" 1121491Ssklower #include "socket.h" 1221491Ssklower #include "protosw.h" 1321491Ssklower #include "domain.h" 1421491Ssklower #include "mbuf.h" 15*54826Ssklower #include "net/radix.h" 1621491Ssklower 1721491Ssklower #include "ns.h" 1821491Ssklower 1921491Ssklower /* 2021491Ssklower * NS protocol family: IDP, ERR, PE, SPP, ROUTE. 2121491Ssklower */ 2226470Ssklower int ns_init(); 2321491Ssklower int idp_input(), idp_output(), idp_ctlinput(), idp_usrreq(); 2426470Ssklower int idp_raw_usrreq(), idp_ctloutput(); 2521491Ssklower int spp_input(), spp_ctlinput(); 2621491Ssklower int spp_usrreq(), spp_usrreq_sp(), spp_ctloutput(); 2726470Ssklower int spp_init(), spp_fasttimo(), spp_slowtimo(); 2821491Ssklower extern int raw_usrreq(); 2921491Ssklower 3021491Ssklower extern struct domain nsdomain; 3121491Ssklower 3221491Ssklower struct protosw nssw[] = { 3321491Ssklower { 0, &nsdomain, 0, 0, 3421491Ssklower 0, idp_output, 0, 0, 3521491Ssklower 0, 3621491Ssklower ns_init, 0, 0, 0, 3721491Ssklower }, 3821491Ssklower { SOCK_DGRAM, &nsdomain, 0, PR_ATOMIC|PR_ADDR, 3924561Ssklower 0, 0, idp_ctlinput, idp_ctloutput, 4021491Ssklower idp_usrreq, 4121491Ssklower 0, 0, 0, 0, 4221491Ssklower }, 4321491Ssklower { SOCK_STREAM, &nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD, 4424561Ssklower spp_input, 0, spp_ctlinput, spp_ctloutput, 4521491Ssklower spp_usrreq, 4621491Ssklower spp_init, spp_fasttimo, spp_slowtimo, 0, 4721491Ssklower }, 4821491Ssklower { SOCK_SEQPACKET,&nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD|PR_ATOMIC, 4924561Ssklower spp_input, 0, spp_ctlinput, spp_ctloutput, 5021491Ssklower spp_usrreq_sp, 5121491Ssklower 0, 0, 0, 0, 5221491Ssklower }, 5321491Ssklower { SOCK_RAW, &nsdomain, NSPROTO_RAW, PR_ATOMIC|PR_ADDR, 5421491Ssklower idp_input, idp_output, 0, idp_ctloutput, 5521491Ssklower idp_raw_usrreq, 5621491Ssklower 0, 0, 0, 0, 5721491Ssklower }, 5821491Ssklower { SOCK_RAW, &nsdomain, NSPROTO_ERROR, PR_ATOMIC|PR_ADDR, 5921491Ssklower idp_ctlinput, idp_output, 0, idp_ctloutput, 6021491Ssklower idp_raw_usrreq, 6121491Ssklower 0, 0, 0, 0, 6221491Ssklower }, 6321491Ssklower }; 6421491Ssklower 6521491Ssklower struct domain nsdomain = 6621491Ssklower { AF_NS, "network systems", 0, 0, 0, 67*54826Ssklower nssw, &nssw[sizeof(nssw)/sizeof(nssw[0])], 0, 68*54826Ssklower rn_inithead, 16, sizeof(struct sockaddr_ns)}; 6921491Ssklower 70