- ip_input, ip_output, 0,
- 0, ip_slowtimo, ip_drain, 0, 0,
- 0 },
-{ 0, 0, IPPROTO_ICMP, 0,
- icmp_input, icmp_output, 0,
- 0, 0, icmp_drain, 0, 0,
- 0 },
-{ SOCK_DGRAM, PF_INET, IPPROTO_UDP, PR_ATOMIC|PR_PROVIDEADDR,
- udp_input, 0, udp_advise,
- 0, 0, 0, udp_usrreq, udp_sense,
- MLEN },
-{ SOCK_STREAM, PF_INET, IPPROTO_TCP, 0,
- tcp_input, 0, tcp_advise,
- tcp_fasttimo, tcp_slowtimo, tcp_drain, tcp_usrreq, tcp_sense,
- MLEN },
-{ SOCK_RAW, PF_INET, IPPROTO_RAW, PR_ATOMIC|PR_PROVIDEADDR,
- ri_input, 0, ri_advise,
- ri_fasttimo, ri_slowtimo, ri_drain, ri_usrreq, ri_sense,
- MLEN },
+ 0, ip_output, 0, 0,
+ 0,
+ ip_init, 0, ip_slowtimo, ip_drain,
+},
+{ 0, PF_INET, IPPROTO_ICMP, 0,
+ icmp_input, 0, 0, 0,
+ 0,
+ 0, 0, 0, 0,
+},
+{ SOCK_DGRAM, PF_INET, IPPROTO_UDP, PR_ATOMIC|PR_ADDR,
+ udp_input, 0, udp_ctlinput, 0,
+ udp_usrreq,
+ udp_init, 0, 0, 0,
+},
+{ SOCK_STREAM, PF_INET, IPPROTO_TCP, PR_CONNREQUIRED|PR_WANTRCVD,
+ tcp_input, 0, tcp_ctlinput, 0,
+ tcp_usrreq,
+ tcp_init, tcp_fasttimo, tcp_slowtimo, tcp_drain,
+},
+{ 0, 0, 0, 0,
+ raw_input, 0, raw_ctlinput, 0,
+ raw_usrreq,
+ raw_init, 0, 0, 0,
+},
+{ SOCK_RAW, PF_INET, IPPROTO_RAW, PR_ATOMIC|PR_ADDR,
+ rip_input, rip_output, 0, 0,
+ raw_usrreq,
+ 0, 0, 0, 0,
+}
+#if NIMP > 0
+,
+{ SOCK_RAW, PF_IMPLINK, 0, PR_ATOMIC|PR_ADDR,
+ 0, rimp_output, 0, 0,
+ raw_usrreq,
+ 0, 0, hostslowtimo, 0,
+}