+static void
+set_unmanaged_external_down (NMDevice *self)
+{
+ NMUnmanFlagOp ext_flags;
+
+ if (!nm_device_get_unmanaged_mask (self, NM_UNMANAGED_EXTERNAL_DOWN))
+ return;
+
+ ext_flags = is_unmanaged_external_down (self, FALSE);
+ if (ext_flags != NM_UNMAN_FLAG_OP_SET_UNMANAGED) {
+ /* Ensure the assume check is queued before any queued state changes
+ * from the transition to UNAVAILABLE.
+ */
+ nm_device_queue_recheck_assume (self);
+ }
+
+ nm_device_set_unmanaged_by_flags (self,
+ NM_UNMANAGED_EXTERNAL_DOWN,
+ ext_flags,
+ NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED);
+}
+