Index: sys/net/ifdi_if.m =================================================================== --- sys/net/ifdi_if.m +++ sys/net/ifdi_if.m @@ -117,6 +117,12 @@ { return (false); } + + static int + null_get_downreason(if_ctx_t _ctx __unused, struct ifdownreason *_ifdr __unused) + { + return (ENOTSUP); + } }; # @@ -364,3 +370,8 @@ if_ctx_t _ctx; enum iflib_restart_event _event; } DEFAULT null_needs_restart; + +METHOD int get_downreason { + if_ctx_t _ctx; + struct ifdownreason *_ifdr; +} DEFAULT null_get_downreason; Index: sys/net/iflib.c =================================================================== --- sys/net/iflib.c +++ sys/net/iflib.c @@ -4535,6 +4535,11 @@ err = IFDI_PRIV_IOCTL(ctx, command, data); CTX_UNLOCK(ctx); break; + case SIOCGIFDOWNREASON: + CTX_LOCK(ctx); + err = IFDI_GET_DOWNREASON(ctx, (struct ifdownreason *)data); + CTX_UNLOCK(ctx); + break; default: err = ether_ioctl(ifp, command, data); break;