diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2022-08-17 18:50:31 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2022-08-17 18:50:31 +0000 |
commit | 78b1fc05b20504ed13aeeb4a5b47443246cabaeb (patch) | |
tree | 9508c47a91e5db3c5de822e8dc43c3d4e841e156 /sys/netinet/ip_carp.h | |
parent | ef8b872301c5fbeeea3b0410b369b8f36584cd65 (diff) | |
download | src-78b1fc05b20504ed13aeeb4a5b47443246cabaeb.tar.gz src-78b1fc05b20504ed13aeeb4a5b47443246cabaeb.zip |
protosw: separate pr_input and pr_ctlinput out of protosw
The protosw KPI historically has implemented two quite orthogonal
things: protocols that implement a certain kind of socket, and
protocols that are IPv4/IPv6 protocol. These two things do not
make one-to-one correspondence. The pr_input and pr_ctlinput methods
were utilized only in IP protocols. This strange duality required
IP protocols that doesn't have a socket to declare protosw, e.g.
carp(4). On the other hand developers of socket protocols thought
that they need to define pr_input/pr_ctlinput always, which lead to
strange dead code, e.g. div_input() or sdp_ctlinput().
With this change pr_input and pr_ctlinput as part of protosw disappear
and IPv4/IPv6 get their private single level protocol switch table
ip_protox[] and ip6_protox[] respectively, pointing at array of
ipproto_input_t functions. The pr_ctlinput that was used for
control input coming from the network (ICMP, ICMPv6) is now represented
by ip_ctlprotox[] and ip6_ctlprotox[].
ipproto_register() becomes the only official way to register in the
table. Those protocols that were always static and unlikely anybody
is interested in making them loadable, are now registered by ip_init(),
ip6_init(). An IP protocol that considers itself unloadable shall
register itself within its own private SYSINIT().
Reviewed by: tuexen, melifaro
Differential revision: https://reviews.freebsd.org/D36157
Diffstat (limited to 'sys/netinet/ip_carp.h')
-rw-r--r-- | sys/netinet/ip_carp.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/netinet/ip_carp.h b/sys/netinet/ip_carp.h index f8ee38ddd82f..f60085af9d61 100644 --- a/sys/netinet/ip_carp.h +++ b/sys/netinet/ip_carp.h @@ -142,8 +142,6 @@ int carp_ioctl(struct ifreq *, u_long, struct thread *); int carp_attach(struct ifaddr *, int); void carp_detach(struct ifaddr *, bool); void carp_carpdev_state(struct ifnet *); -int carp_input(struct mbuf **, int *, int); -int carp6_input (struct mbuf **, int *, int); int carp_output (struct ifnet *, struct mbuf *, const struct sockaddr *); int carp_master(struct ifaddr *); |