aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/net/iflib.c3
-rw-r--r--sys/net/iflib.h5
2 files changed, 6 insertions, 2 deletions
diff --git a/sys/net/iflib.c b/sys/net/iflib.c
index 9cb67fc14afc..4f5744466817 100644
--- a/sys/net/iflib.c
+++ b/sys/net/iflib.c
@@ -3807,7 +3807,8 @@ _task_fn_admin(void *context)
ctx->ifc_flags &= ~(IFC_DO_RESET|IFC_DO_WATCHDOG);
STATE_UNLOCK(ctx);
- if (!running & !oactive)
+ if ((!running & !oactive) &&
+ !(ctx->ifc_sctx->isc_flags & IFLIB_ADMIN_ALWAYS_RUN))
return;
CTX_LOCK(ctx);
diff --git a/sys/net/iflib.h b/sys/net/iflib.h
index 57ba40733e31..6fd71fd52c43 100644
--- a/sys/net/iflib.h
+++ b/sys/net/iflib.h
@@ -358,7 +358,10 @@ typedef enum {
* autogenerate a MAC address
*/
#define IFLIB_GEN_MAC 0x08000
-
+/*
+ * Interface needs admin task to ignore interface up/down status
+ */
+#define IFLIB_ADMIN_ALWAYS_RUN 0x10000
/*