Since OpenBSD 6.7 npppd(8) can't work over tun(4) anymore. I propose to remove dummy TUNSIFMODE ioctl(2) call.
Index: sys/net/if_pppx.c =================================================================== RCS file: /cvs/src/sys/net/if_pppx.c,v retrieving revision 1.106 diff -u -p -r1.106 if_pppx.c --- sys/net/if_pppx.c 25 Dec 2020 12:59:53 -0000 1.106 +++ sys/net/if_pppx.c 29 Jan 2021 11:10:40 -0000 @@ -920,12 +920,6 @@ pppx_if_ioctl(struct ifnet *ifp, u_long RBT_GENERATE(pppx_ifs, pppx_if, pxi_entry, pppx_if_cmp); /* - * pppac(4) - PPP Access Concentrator interface - */ - -#include <net/if_tun.h> - -/* * Locks used to protect struct members and global data * I immutable after creation * K kernel lock @@ -1188,9 +1182,6 @@ pppacioctl(dev_t dev, u_long cmd, caddr_ NET_LOCK(); switch (cmd) { - case TUNSIFMODE: /* make npppd happy */ - break; - case FIONBIO: break; case FIONREAD: Index: usr.sbin/npppd/npppd/npppd_iface.c =================================================================== RCS file: /cvs/src/usr.sbin/npppd/npppd/npppd_iface.c,v retrieving revision 1.14 diff -u -p -r1.14 npppd_iface.c --- usr.sbin/npppd/npppd/npppd_iface.c 2 Jan 2021 13:15:15 -0000 1.14 +++ usr.sbin/npppd/npppd/npppd_iface.c 29 Jan 2021 11:10:41 -0000 @@ -275,7 +275,6 @@ npppd_iface_reinit(npppd_iface *_this, s int npppd_iface_start(npppd_iface *_this) { - int x; char buf[PATH_MAX]; NPPPD_IFACE_ASSERT(_this != NULL); @@ -285,16 +284,6 @@ npppd_iface_start(npppd_iface *_this) if ((_this->devf = priv_open(buf, O_RDWR | O_NONBLOCK)) < 0) { npppd_iface_log(_this, LOG_ERR, "open(%s) failed: %m", buf); goto fail; - } - - if (_this->using_pppx == 0) { - x = IFF_BROADCAST; - if (ioctl(_this->devf, TUNSIFMODE, &x) != 0) { - npppd_iface_log(_this, LOG_ERR, - "ioctl(TUNSIFMODE=IFF_BROADCAST) failed " - "in %s(): %m", __func__); - goto fail; - } } event_set(&_this->ev, _this->devf, EV_READ | EV_PERSIST,