123213Smckusick /* 233371Ssklower * Copyright (c) 1984, 1985, 1986, 1987 Regents of the University of California. 333371Ssklower * All rights reserved. 423213Smckusick * 5*44506Sbostic * %sccs.include.redist.c% 633371Ssklower * 7*44506Sbostic * @(#)ns_proto.c 7.4 (Berkeley) 06/28/90 823213Smckusick */ 921491Ssklower 1021491Ssklower #include "param.h" 1121491Ssklower #include "socket.h" 1221491Ssklower #include "protosw.h" 1321491Ssklower #include "domain.h" 1421491Ssklower #include "mbuf.h" 1521491Ssklower 1621491Ssklower #include "ns.h" 1721491Ssklower 1821491Ssklower /* 1921491Ssklower * NS protocol family: IDP, ERR, PE, SPP, ROUTE. 2021491Ssklower */ 2126470Ssklower int ns_init(); 2221491Ssklower int idp_input(), idp_output(), idp_ctlinput(), idp_usrreq(); 2326470Ssklower int idp_raw_usrreq(), idp_ctloutput(); 2421491Ssklower int spp_input(), spp_ctlinput(); 2521491Ssklower int spp_usrreq(), spp_usrreq_sp(), spp_ctloutput(); 2626470Ssklower int spp_init(), spp_fasttimo(), spp_slowtimo(); 2721491Ssklower extern int raw_usrreq(); 2821491Ssklower 2921491Ssklower extern struct domain nsdomain; 3021491Ssklower 3121491Ssklower struct protosw nssw[] = { 3221491Ssklower { 0, &nsdomain, 0, 0, 3321491Ssklower 0, idp_output, 0, 0, 3421491Ssklower 0, 3521491Ssklower ns_init, 0, 0, 0, 3621491Ssklower }, 3721491Ssklower { SOCK_DGRAM, &nsdomain, 0, PR_ATOMIC|PR_ADDR, 3824561Ssklower 0, 0, idp_ctlinput, idp_ctloutput, 3921491Ssklower idp_usrreq, 4021491Ssklower 0, 0, 0, 0, 4121491Ssklower }, 4221491Ssklower { SOCK_STREAM, &nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD, 4324561Ssklower spp_input, 0, spp_ctlinput, spp_ctloutput, 4421491Ssklower spp_usrreq, 4521491Ssklower spp_init, spp_fasttimo, spp_slowtimo, 0, 4621491Ssklower }, 4721491Ssklower { SOCK_SEQPACKET,&nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD|PR_ATOMIC, 4824561Ssklower spp_input, 0, spp_ctlinput, spp_ctloutput, 4921491Ssklower spp_usrreq_sp, 5021491Ssklower 0, 0, 0, 0, 5121491Ssklower }, 5221491Ssklower { SOCK_RAW, &nsdomain, NSPROTO_RAW, PR_ATOMIC|PR_ADDR, 5321491Ssklower idp_input, idp_output, 0, idp_ctloutput, 5421491Ssklower idp_raw_usrreq, 5521491Ssklower 0, 0, 0, 0, 5621491Ssklower }, 5721491Ssklower { SOCK_RAW, &nsdomain, NSPROTO_ERROR, PR_ATOMIC|PR_ADDR, 5821491Ssklower idp_ctlinput, idp_output, 0, idp_ctloutput, 5921491Ssklower idp_raw_usrreq, 6021491Ssklower 0, 0, 0, 0, 6121491Ssklower }, 6221491Ssklower }; 6321491Ssklower 6421491Ssklower struct domain nsdomain = 6521491Ssklower { AF_NS, "network systems", 0, 0, 0, 6621491Ssklower nssw, &nssw[sizeof(nssw)/sizeof(nssw[0])] }; 6721491Ssklower 68