git: 8c77967ecc58 - main - protosw: retire pr_output method
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 11 Aug 2022 16:20:16 UTC
The branch main has been updated by glebius:
URL: https://cgit.FreeBSD.org/src/commit/?id=8c77967ecc58b5db35bb285013c55492987a9061
commit 8c77967ecc58b5db35bb285013c55492987a9061
Author: Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2022-08-11 16:19:37 +0000
Commit: Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2022-08-11 16:19:37 +0000
protosw: retire pr_output method
The only place to execute this method was raw_usend(). Only those
protocols that used raw socket were able to actually enter that method.
All pr_output assignments being deleted by this commit were a dead code
for many years.
Reviewed by: melifaro
Differential revision: https://reviews.freebsd.org/D36126
---
sys/kern/uipc_debug.c | 1 -
sys/kern/uipc_domain.c | 1 -
sys/netinet/ip_carp.c | 2 --
sys/netinet6/in6_proto.c | 7 -------
sys/netpfil/pf/if_pfsync.c | 1 -
sys/sys/protosw.h | 9 ---------
6 files changed, 21 deletions(-)
diff --git a/sys/kern/uipc_debug.c b/sys/kern/uipc_debug.c
index 0abb5352bed5..ead7d0e506c0 100644
--- a/sys/kern/uipc_debug.c
+++ b/sys/kern/uipc_debug.c
@@ -319,7 +319,6 @@ db_print_protosw(struct protosw *pr, const char *prname, int indent)
db_print_indent(indent);
db_printf("pr_input: %p ", pr->pr_input);
- db_printf("pr_output: %p ", pr->pr_output);
db_printf("pr_ctlinput: %p\n", pr->pr_ctlinput);
db_printf("pr_ctloutput: %p ", pr->pr_ctloutput);
diff --git a/sys/kern/uipc_domain.c b/sys/kern/uipc_domain.c
index 18a682de276e..07e5f829e957 100644
--- a/sys/kern/uipc_domain.c
+++ b/sys/kern/uipc_domain.c
@@ -451,7 +451,6 @@ pf_proto_unregister(int family, int protocol, int type)
dpr->pr_protocol = PROTO_SPACER;
dpr->pr_flags = 0;
dpr->pr_input = NULL;
- dpr->pr_output = NULL;
dpr->pr_ctlinput = NULL;
dpr->pr_ctloutput = NULL;
dpr->pr_fasttimo = NULL;
diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c
index 71558be619d8..013e4ea5c68b 100644
--- a/sys/netinet/ip_carp.c
+++ b/sys/netinet/ip_carp.c
@@ -2182,7 +2182,6 @@ static struct protosw in_carp_protosw = {
.pr_protocol = IPPROTO_CARP,
.pr_flags = PR_ATOMIC|PR_ADDR,
.pr_input = carp_input,
- .pr_output = rip_output,
.pr_ctloutput = rip_ctloutput,
.pr_usrreqs = &rip_usrreqs
};
@@ -2196,7 +2195,6 @@ static struct protosw in6_carp_protosw = {
.pr_protocol = IPPROTO_CARP,
.pr_flags = PR_ATOMIC|PR_ADDR,
.pr_input = carp6_input,
- .pr_output = rip6_output,
.pr_ctloutput = rip6_ctloutput,
.pr_usrreqs = &rip6_usrreqs
};
diff --git a/sys/netinet6/in6_proto.c b/sys/netinet6/in6_proto.c
index 6ccd90ac6fdd..b47b726a9a71 100644
--- a/sys/netinet6/in6_proto.c
+++ b/sys/netinet6/in6_proto.c
@@ -217,7 +217,6 @@ struct protosw inet6sw[] = {
.pr_protocol = IPPROTO_RAW,
.pr_flags = PR_ATOMIC|PR_ADDR,
.pr_input = rip6_input,
- .pr_output = rip6_output,
.pr_ctlinput = rip6_ctlinput,
.pr_ctloutput = rip6_ctloutput,
.pr_usrreqs = &rip6_usrreqs
@@ -228,7 +227,6 @@ struct protosw inet6sw[] = {
.pr_protocol = IPPROTO_ICMPV6,
.pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
.pr_input = icmp6_input,
- .pr_output = rip6_output,
.pr_ctlinput = rip6_ctlinput,
.pr_ctloutput = rip6_ctloutput,
.pr_fasttimo = icmp6_fasttimo,
@@ -266,7 +264,6 @@ struct protosw inet6sw[] = {
.pr_protocol = IPPROTO_IPV4,
.pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
.pr_input = encap6_input,
- .pr_output = rip6_output,
.pr_ctloutput = rip6_ctloutput,
.pr_usrreqs = &rip6_usrreqs
},
@@ -277,7 +274,6 @@ struct protosw inet6sw[] = {
.pr_protocol = IPPROTO_IPV6,
.pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
.pr_input = encap6_input,
- .pr_output = rip6_output,
.pr_ctloutput = rip6_ctloutput,
.pr_usrreqs = &rip6_usrreqs
},
@@ -296,7 +292,6 @@ struct protosw inet6sw[] = {
.pr_protocol = IPPROTO_GRE,
.pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
.pr_input = encap6_input,
- .pr_output = rip6_output,
.pr_ctloutput = rip6_ctloutput,
.pr_usrreqs = &rip6_usrreqs
},
@@ -306,7 +301,6 @@ struct protosw inet6sw[] = {
.pr_protocol = IPPROTO_PIM,
.pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
.pr_input = encap6_input,
- .pr_output = rip6_output,
.pr_ctloutput = rip6_ctloutput,
.pr_usrreqs = &rip6_usrreqs
},
@@ -325,7 +319,6 @@ IP6PROTOSPACER,
.pr_domain = &inet6domain,
.pr_flags = PR_ATOMIC|PR_ADDR,
.pr_input = rip6_input,
- .pr_output = rip6_output,
.pr_ctloutput = rip6_ctloutput,
.pr_usrreqs = &rip6_usrreqs
},
diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c
index 180bf4440455..47d68b3f00a1 100644
--- a/sys/netpfil/pf/if_pfsync.c
+++ b/sys/netpfil/pf/if_pfsync.c
@@ -2429,7 +2429,6 @@ static struct protosw in_pfsync_protosw = {
.pr_protocol = IPPROTO_PFSYNC,
.pr_flags = PR_ATOMIC|PR_ADDR,
.pr_input = pfsync_input,
- .pr_output = rip_output,
.pr_ctloutput = rip_ctloutput,
.pr_usrreqs = &rip_usrreqs
};
diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h
index 85761583c30a..22e057e5691a 100644
--- a/sys/sys/protosw.h
+++ b/sys/sys/protosw.h
@@ -57,19 +57,11 @@ struct sockopt;
* The system will call the pr_drain entry if it is low on space and
* this should throw away any non-critical data.
*
- * Protocols pass data between themselves as chains of mbufs using
- * the pr_input and pr_output hooks. Pr_input passes data up (towards
- * the users) and pr_output passes it down (towards the interfaces); control
- * information passes up and down on pr_ctlinput and pr_ctloutput.
- * The protocol is responsible for the space occupied by any the
- * arguments to these entries and must dispose it.
- *
* In retrospect, it would be a lot nicer to use an interface
* similar to the vnode VOP interface.
*/
/* USE THESE FOR YOUR PROTOTYPES ! */
typedef int pr_input_t (struct mbuf **, int*, int);
-typedef int pr_output_t (struct mbuf *, struct socket *, ...);
typedef void pr_ctlinput_t (int, struct sockaddr *, void *);
typedef int pr_ctloutput_t (struct socket *, struct sockopt *);
typedef void pr_fasttimo_t (void);
@@ -83,7 +75,6 @@ struct protosw {
short pr_flags; /* see below */
/* protocol-protocol hooks */
pr_input_t *pr_input; /* input to protocol (from below) */
- pr_output_t *pr_output; /* output to protocol (from above) */
pr_ctlinput_t *pr_ctlinput; /* control input (from below) */
pr_ctloutput_t *pr_ctloutput; /* control output (from above) */
/* utility hooks */