Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/in6_proto.c
Show First 20 Lines • Show All 149 Lines • ▼ Show 20 Lines | struct protosw inet6sw[] = { | ||||
.pr_drain = frag6_drain, | .pr_drain = frag6_drain, | ||||
.pr_usrreqs = &nousrreqs, | .pr_usrreqs = &nousrreqs, | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_DGRAM, | .pr_type = SOCK_DGRAM, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_UDP, | .pr_protocol = IPPROTO_UDP, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR|PR_CAPATTACH, | .pr_flags = PR_ATOMIC|PR_ADDR|PR_CAPATTACH, | ||||
.pr_input = udp6_input, | |||||
.pr_ctlinput = udp6_ctlinput, | |||||
.pr_ctloutput = ip6_ctloutput, | .pr_ctloutput = ip6_ctloutput, | ||||
.pr_usrreqs = &udp6_usrreqs, | .pr_usrreqs = &udp6_usrreqs, | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_STREAM, | .pr_type = SOCK_STREAM, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_TCP, | .pr_protocol = IPPROTO_TCP, | ||||
.pr_flags = PR_CONNREQUIRED|PR_IMPLOPCL|PR_WANTRCVD| | .pr_flags = PR_CONNREQUIRED|PR_IMPLOPCL|PR_WANTRCVD| | ||||
PR_LISTEN|PR_CAPATTACH, | PR_LISTEN|PR_CAPATTACH, | ||||
.pr_input = tcp6_input, | |||||
.pr_ctlinput = tcp6_ctlinput, | |||||
.pr_ctloutput = tcp_ctloutput, | .pr_ctloutput = tcp_ctloutput, | ||||
#ifndef INET /* don't call initialization, timeout, and drain routines twice */ | #ifndef INET /* don't call initialization, timeout, and drain routines twice */ | ||||
.pr_slowtimo = tcp_slowtimo, | .pr_slowtimo = tcp_slowtimo, | ||||
.pr_drain = tcp_drain, | .pr_drain = tcp_drain, | ||||
#endif | #endif | ||||
.pr_usrreqs = &tcp6_usrreqs, | .pr_usrreqs = &tcp6_usrreqs, | ||||
}, | }, | ||||
#ifdef SCTP | #ifdef SCTP | ||||
{ | { | ||||
.pr_type = SOCK_SEQPACKET, | .pr_type = SOCK_SEQPACKET, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_SCTP, | .pr_protocol = IPPROTO_SCTP, | ||||
.pr_flags = PR_WANTRCVD, | .pr_flags = PR_WANTRCVD, | ||||
.pr_input = sctp6_input, | |||||
.pr_ctlinput = sctp6_ctlinput, | |||||
.pr_ctloutput = sctp_ctloutput, | .pr_ctloutput = sctp_ctloutput, | ||||
#ifndef INET /* Do not call initialization and drain routines twice. */ | #ifndef INET /* Do not call initialization and drain routines twice. */ | ||||
.pr_drain = sctp_drain, | .pr_drain = sctp_drain, | ||||
#endif | #endif | ||||
.pr_usrreqs = &sctp6_usrreqs | .pr_usrreqs = &sctp6_usrreqs | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_STREAM, | .pr_type = SOCK_STREAM, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_SCTP, | .pr_protocol = IPPROTO_SCTP, | ||||
.pr_flags = PR_CONNREQUIRED|PR_WANTRCVD, | .pr_flags = PR_CONNREQUIRED|PR_WANTRCVD, | ||||
.pr_input = sctp6_input, | |||||
.pr_ctlinput = sctp6_ctlinput, | |||||
.pr_ctloutput = sctp_ctloutput, | .pr_ctloutput = sctp_ctloutput, | ||||
.pr_drain = NULL, /* Covered by the SOCK_SEQPACKET entry. */ | .pr_drain = NULL, /* Covered by the SOCK_SEQPACKET entry. */ | ||||
.pr_usrreqs = &sctp6_usrreqs | .pr_usrreqs = &sctp6_usrreqs | ||||
}, | }, | ||||
#endif /* SCTP */ | #endif /* SCTP */ | ||||
{ | { | ||||
.pr_type = SOCK_DGRAM, | .pr_type = SOCK_DGRAM, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_UDPLITE, | .pr_protocol = IPPROTO_UDPLITE, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR|PR_CAPATTACH, | .pr_flags = PR_ATOMIC|PR_ADDR|PR_CAPATTACH, | ||||
.pr_input = udp6_input, | |||||
.pr_ctlinput = udplite6_ctlinput, | |||||
.pr_ctloutput = udp_ctloutput, | .pr_ctloutput = udp_ctloutput, | ||||
.pr_usrreqs = &udp6_usrreqs, | .pr_usrreqs = &udp6_usrreqs, | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_RAW, | .pr_protocol = IPPROTO_RAW, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = rip6_input, | |||||
.pr_ctlinput = rip6_ctlinput, | |||||
.pr_ctloutput = rip6_ctloutput, | .pr_ctloutput = rip6_ctloutput, | ||||
.pr_usrreqs = &rip6_usrreqs | .pr_usrreqs = &rip6_usrreqs | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_ICMPV6, | .pr_protocol = IPPROTO_ICMPV6, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = icmp6_input, | |||||
.pr_ctlinput = rip6_ctlinput, | |||||
.pr_ctloutput = rip6_ctloutput, | .pr_ctloutput = rip6_ctloutput, | ||||
.pr_fasttimo = icmp6_fasttimo, | .pr_fasttimo = icmp6_fasttimo, | ||||
.pr_slowtimo = icmp6_slowtimo, | .pr_slowtimo = icmp6_slowtimo, | ||||
.pr_usrreqs = &rip6_usrreqs | .pr_usrreqs = &rip6_usrreqs | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_DSTOPTS, | .pr_protocol = IPPROTO_DSTOPTS, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = dest6_input, | |||||
.pr_usrreqs = &nousrreqs | .pr_usrreqs = &nousrreqs | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_ROUTING, | .pr_protocol = IPPROTO_ROUTING, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = route6_input, | |||||
.pr_usrreqs = &nousrreqs | .pr_usrreqs = &nousrreqs | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_FRAGMENT, | .pr_protocol = IPPROTO_FRAGMENT, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = frag6_input, | |||||
.pr_usrreqs = &nousrreqs | .pr_usrreqs = &nousrreqs | ||||
}, | }, | ||||
#ifdef INET | #ifdef INET | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_IPV4, | .pr_protocol = IPPROTO_IPV4, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = encap6_input, | |||||
.pr_ctloutput = rip6_ctloutput, | .pr_ctloutput = rip6_ctloutput, | ||||
.pr_usrreqs = &rip6_usrreqs | .pr_usrreqs = &rip6_usrreqs | ||||
}, | }, | ||||
#endif /* INET */ | #endif /* INET */ | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_IPV6, | .pr_protocol = IPPROTO_IPV6, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = encap6_input, | |||||
.pr_ctloutput = rip6_ctloutput, | .pr_ctloutput = rip6_ctloutput, | ||||
.pr_usrreqs = &rip6_usrreqs | .pr_usrreqs = &rip6_usrreqs | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_ETHERIP, | .pr_protocol = IPPROTO_ETHERIP, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = encap6_input, | |||||
.pr_ctloutput = rip6_ctloutput, | .pr_ctloutput = rip6_ctloutput, | ||||
.pr_usrreqs = &rip6_usrreqs | .pr_usrreqs = &rip6_usrreqs | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_GRE, | .pr_protocol = IPPROTO_GRE, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = encap6_input, | |||||
.pr_ctloutput = rip6_ctloutput, | .pr_ctloutput = rip6_ctloutput, | ||||
.pr_usrreqs = &rip6_usrreqs | .pr_usrreqs = &rip6_usrreqs | ||||
}, | }, | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_protocol = IPPROTO_PIM, | .pr_protocol = IPPROTO_PIM, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = encap6_input, | |||||
.pr_ctloutput = rip6_ctloutput, | .pr_ctloutput = rip6_ctloutput, | ||||
.pr_usrreqs = &rip6_usrreqs | .pr_usrreqs = &rip6_usrreqs | ||||
}, | }, | ||||
/* Spacer n-times for loadable protocols. */ | /* Spacer n-times for loadable protocols. */ | ||||
IP6PROTOSPACER, | IP6PROTOSPACER, | ||||
IP6PROTOSPACER, | IP6PROTOSPACER, | ||||
IP6PROTOSPACER, | IP6PROTOSPACER, | ||||
IP6PROTOSPACER, | IP6PROTOSPACER, | ||||
IP6PROTOSPACER, | IP6PROTOSPACER, | ||||
IP6PROTOSPACER, | IP6PROTOSPACER, | ||||
IP6PROTOSPACER, | IP6PROTOSPACER, | ||||
IP6PROTOSPACER, | IP6PROTOSPACER, | ||||
/* raw wildcard */ | /* raw wildcard */ | ||||
{ | { | ||||
.pr_type = SOCK_RAW, | .pr_type = SOCK_RAW, | ||||
.pr_domain = &inet6domain, | .pr_domain = &inet6domain, | ||||
.pr_flags = PR_ATOMIC|PR_ADDR, | .pr_flags = PR_ATOMIC|PR_ADDR, | ||||
.pr_input = rip6_input, | |||||
.pr_ctloutput = rip6_ctloutput, | .pr_ctloutput = rip6_ctloutput, | ||||
.pr_usrreqs = &rip6_usrreqs | .pr_usrreqs = &rip6_usrreqs | ||||
}, | }, | ||||
}; | }; | ||||
struct domain inet6domain = { | struct domain inet6domain = { | ||||
.dom_family = AF_INET6, | .dom_family = AF_INET6, | ||||
.dom_name = "internet6", | .dom_name = "internet6", | ||||
▲ Show 20 Lines • Show All 271 Lines • Show Last 20 Lines |