* Copyright (c) 1982, 1986 Regents of the University of California.
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
* @(#)in_proto.c 7.3 (Berkeley) 6/29/88
* TCP/IP protocol family: IP, ICMP, UDP, TCP.
int ip_output(),ip_ctloutput();
int ip_init(),ip_slowtimo(),ip_drain();
int udp_input(),udp_ctlinput();
int tcp_input(),tcp_ctlinput();
int tcp_usrreq(),tcp_ctloutput();
int tcp_init(),tcp_fasttimo(),tcp_slowtimo(),tcp_drain();
int rip_input(),rip_output(),rip_ctloutput();
* IMP protocol family: raw interface.
* Using the raw interface entry to get the timer routine
int rimp_output(), hostslowtimo();
int idpip_input(), nsip_ctlinput();
extern struct domain inetdomain
;
struct protosw inetsw
[] = {
ip_init
, 0, ip_slowtimo
, ip_drain
,
{ SOCK_DGRAM
, &inetdomain
, IPPROTO_UDP
, PR_ATOMIC
|PR_ADDR
,
udp_input
, 0, udp_ctlinput
, ip_ctloutput
,
{ SOCK_STREAM
, &inetdomain
, IPPROTO_TCP
, PR_CONNREQUIRED
|PR_WANTRCVD
,
tcp_input
, 0, tcp_ctlinput
, tcp_ctloutput
,
tcp_init
, tcp_fasttimo
, tcp_slowtimo
, tcp_drain
,
{ SOCK_RAW
, &inetdomain
, IPPROTO_RAW
, PR_ATOMIC
|PR_ADDR
,
rip_input
, rip_output
, 0, rip_ctloutput
,
{ SOCK_RAW
, &inetdomain
, IPPROTO_ICMP
, PR_ATOMIC
|PR_ADDR
,
icmp_input
, rip_output
, 0, rip_ctloutput
,
{ SOCK_RAW
, &inetdomain
, IPPROTO_IDP
, PR_ATOMIC
|PR_ADDR
,
idpip_input
, rip_output
, nsip_ctlinput
, 0,
{ SOCK_RAW
, &inetdomain
, 0, PR_ATOMIC
|PR_ADDR
,
rip_input
, rip_output
, 0, rip_ctloutput
,
struct domain inetdomain
=
{ AF_INET
, "internet", 0, 0, 0,
inetsw
, &inetsw
[sizeof(inetsw
)/sizeof(inetsw
[0])] };
extern struct domain impdomain
;
struct protosw impsw
[] = {
{ SOCK_RAW
, &impdomain
, 0, PR_ATOMIC
|PR_ADDR
,
struct domain impdomain
=
{ AF_IMPLINK
, "imp", 0, 0, 0,
impsw
, &impsw
[sizeof (impsw
)/sizeof(impsw
[0])] };
* HYPERchannel protocol family: raw interface.
extern struct domain hydomain
;
struct protosw hysw
[] = {
{ SOCK_RAW
, &hydomain
, 0, PR_ATOMIC
|PR_ADDR
,
{ AF_HYLINK
, "hy", 0, 0, 0, hysw
, &hysw
[sizeof (hysw
)/sizeof(hysw
[0])] };