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) */

Reply via email to