enc(4) does not use the ifqueue API at all;  IPsec packets are directly
transformed in the IP input/output routines.

enc_start() is never called (by design) so I'd like to remove it for
clarity - similar to lo(4) does not have a start routine defined either.

Tested with various iked(8) tunnels on sparc64 and amd64.

Feedback? OK?


Index: if_enc.c
===================================================================
RCS file: /cvs/src/sys/net/if_enc.c,v
retrieving revision 1.77
diff -u -p -r1.77 if_enc.c
--- if_enc.c    10 Jul 2020 13:22:22 -0000      1.77
+++ if_enc.c    23 Dec 2020 01:37:31 -0000
@@ -44,7 +44,6 @@ void   encattach(int);
 
 int     enc_clone_create(struct if_clone *, int);
 int     enc_clone_destroy(struct ifnet *);
-void    enc_start(struct ifnet *);
 int     enc_output(struct ifnet *, struct mbuf *, struct sockaddr *,
            struct rtentry *);
 int     enc_ioctl(struct ifnet *, u_long, caddr_t);
@@ -85,7 +84,6 @@ enc_clone_create(struct if_clone *ifc, i
        ifp->if_softc = sc;
        ifp->if_type = IFT_ENC;
        ifp->if_xflags = IFXF_CLONED;
-       ifp->if_start = enc_start;
        ifp->if_output = enc_output;
        ifp->if_ioctl = enc_ioctl;
        ifp->if_hdrlen = ENC_HDRLEN;
@@ -157,19 +155,6 @@ enc_clone_destroy(struct ifnet *ifp)
        free(sc, M_DEVBUF, sizeof(*sc));
 
        return (0);
-}
-
-void
-enc_start(struct ifnet *ifp)
-{
-       struct mbuf     *m;
-
-       for (;;) {
-               m = ifq_dequeue(&ifp->if_snd);
-               if (m == NULL)
-                       break;
-               m_freem(m);
-       }
 }
 
 int

Reply via email to