pppac(4) related `ifnet' has `IFXF_CLONED' set. I guess this was done because we don't collect entropy from pseudo interfaces:
---- cut begin ---- void if_input_process(struct ifnet *ifp, struct mbuf_list *ml) { struct mbuf *m; if (ml_empty(ml)) return; if (!ISSET(ifp->if_xflags, IFXF_CLONED)) enqueue_randomness(ml_len(ml) ^ (uintptr_t)MBUF_LIST_FIRST(ml)); /* skip */ } ---- cut end ---- Should we do the same for pppx(4)? Index: sys/net/if_pppx.c =================================================================== RCS file: /cvs/src/sys/net/if_pppx.c,v retrieving revision 1.91 diff -u -p -r1.91 if_pppx.c --- sys/net/if_pppx.c 6 Jul 2020 20:37:51 -0000 1.91 +++ sys/net/if_pppx.c 7 Jul 2020 11:37:04 -0000 @@ -705,6 +705,7 @@ pppx_add_session(struct pppx_dev *pxd, s snprintf(ifp->if_xname, sizeof(ifp->if_xname), "%s%d", "pppx", unit); ifp->if_mtu = req->pr_peer_mru; /* XXX */ ifp->if_flags = IFF_POINTOPOINT | IFF_MULTICAST | IFF_UP; + ifp->if_xflags = IFXF_CLONED; ifp->if_start = pppx_if_start; ifp->if_output = pppx_if_output; ifp->if_ioctl = pppx_if_ioctl;