Hi,
Since we have no raw_usrreq anymore, we can retire pr_output.
pfkeyv2 and route can call ther output functions directly.
ok?
bluhm
Index: net/pfkeyv2.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/net/pfkeyv2.c,v
retrieving revision 1.243
diff -u -p -r1.243 pfkeyv2.c
--- net/pfkeyv2.c 27 Aug 2022 20:28:01 -0000 1.243
+++ net/pfkeyv2.c 28 Aug 2022 16:50:24 -0000
@@ -177,8 +177,7 @@ int pfkeyv2_send(struct socket *, struct
struct mbuf *);
int pfkeyv2_usrreq(struct socket *, int, struct mbuf *, struct mbuf *,
struct mbuf *, struct proc *);
-int pfkeyv2_output(struct mbuf *, struct socket *, struct sockaddr *,
- struct mbuf *);
+int pfkeyv2_output(struct mbuf *, struct socket *);
int pfkey_sendup(struct pkpcb *, struct mbuf *, int);
int pfkeyv2_sa_flush(struct tdb *, void *, int);
int pfkeyv2_policy_flush(struct ipsec_policy *, void *, unsigned int);
@@ -218,7 +217,6 @@ const struct protosw pfkeysw[] = {
.pr_domain = &pfkeydomain,
.pr_protocol = PF_KEY_V2,
.pr_flags = PR_ATOMIC | PR_ADDR,
- .pr_output = pfkeyv2_output,
.pr_usrreqs = &pfkeyv2_usrreqs,
.pr_sysctl = pfkeyv2_sysctl,
}
@@ -371,7 +369,7 @@ pfkeyv2_send(struct socket *so, struct m
goto out;
}
- error = (*so->so_proto->pr_output)(m, so, NULL, NULL);
+ error = pfkeyv2_output(m, so);
m = NULL;
out:
@@ -443,8 +441,7 @@ pfkeyv2_usrreq(struct socket *so, int re
}
int
-pfkeyv2_output(struct mbuf *mbuf, struct socket *so,
- struct sockaddr *dstaddr, struct mbuf *control)
+pfkeyv2_output(struct mbuf *mbuf, struct socket *so)
{
void *message;
int error = 0;
Index: net/rtsock.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/net/rtsock.c,v
retrieving revision 1.343
diff -u -p -r1.343 rtsock.c
--- net/rtsock.c 27 Aug 2022 20:28:01 -0000 1.343
+++ net/rtsock.c 28 Aug 2022 16:50:51 -0000
@@ -109,8 +109,7 @@ struct walkarg {
void route_prinit(void);
void rcb_ref(void *, void *);
void rcb_unref(void *, void *);
-int route_output(struct mbuf *, struct socket *, struct sockaddr *,
- struct mbuf *);
+int route_output(struct mbuf *, struct socket *);
int route_ctloutput(int, struct socket *, int, int, struct mbuf *);
int route_usrreq(struct socket *, int, struct mbuf *, struct mbuf *,
struct mbuf *, struct proc *);
@@ -395,7 +394,7 @@ route_send(struct socket *so, struct mbu
goto out;
}
- error = (*so->so_proto->pr_output)(m, so, NULL, NULL);
+ error = route_output(m, so);
m = NULL;
out:
@@ -722,8 +721,7 @@ rtm_report(struct rtentry *rt, u_char ty
}
int
-route_output(struct mbuf *m, struct socket *so, struct sockaddr *dstaddr,
- struct mbuf *control)
+route_output(struct mbuf *m, struct socket *so)
{
struct rt_msghdr *rtm = NULL;
struct rtentry *rt = NULL;
@@ -2455,7 +2453,6 @@ const struct protosw routesw[] = {
.pr_type = SOCK_RAW,
.pr_domain = &routedomain,
.pr_flags = PR_ATOMIC|PR_ADDR|PR_WANTRCVD,
- .pr_output = route_output,
.pr_ctloutput = route_ctloutput,
.pr_usrreqs = &route_usrreqs,
.pr_init = route_prinit,
Index: sys/protosw.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/sys/protosw.h,v
retrieving revision 1.45
diff -u -p -r1.45 protosw.h
--- sys/protosw.h 27 Aug 2022 20:28:01 -0000 1.45
+++ sys/protosw.h 28 Aug 2022 16:52:02 -0000
@@ -43,8 +43,8 @@
* every 500ms through the pr_slowtimo for timer based actions.
*
* Protocols pass data between themselves as chains of mbufs using
- * the pr_input and pr_output hooks. Pr_input passes data up (towards
- * UNIX) and pr_output passes it down (towards the imps); control
+ * the pr_input and pr_send hooks. Pr_input passes data up (towards
+ * UNIX) and pr_send passes it down (towards the imps); 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.
@@ -86,9 +86,6 @@ struct protosw {
/* protocol-protocol hooks */
/* input to protocol (from below) */
int (*pr_input)(struct mbuf **, int *, int, int);
- /* output to protocol (from above) */
- int (*pr_output)(struct mbuf *, struct socket *, struct sockaddr *,
- struct mbuf *);
/* control input (from below) */
void (*pr_ctlinput)(int, struct sockaddr *, u_int, void *);
/* control output (from above) */