Skip to content

DFS Channels

Dynamic Frequency Selection (DFS) is a regulatory requirement for operating on certain 5 GHz WiFi channels. This document explains how DFS works on MikroTik devices, common issues, and deployment strategies.

DFS protects radar systems (weather radar, military, air traffic control) from WiFi interference. When a MikroTik AP detects radar on a DFS channel, it must:

  1. Vacate immediately - Switch to a different channel within 10 seconds
  2. Block the channel - Cannot use that frequency for 30 minutes (per FCC/ETSI regulations)
  3. Resume after period - May use the channel again after the non-occupancy period
RegionDFS ChannelsNon-DFS Channels
US (FCC)52-64, 100-14436-48, 149-165
EU (ETSI)52-14436-48
Most regions52-14436-48, 149-165
  • UNII-1 (5150-5250 MHz): Channels 36-48 - Non-DFS, indoor use
  • UNII-2 (5250-5330 MHz): Channels 52-64 - DFS required
  • UNII-2 Extended (5470-5725 MHz): Channels 100-144 - DFS required
  • UNII-3 (5725-5850 MHz): Channels 149-165 - Non-DFS, higher power allowed

When using DFS channels, MikroTik devices must comply with:

  • CAC (Channel Availability Check): Scans for radar before using a DFS channel (typically 60 seconds)
  • In-Service Monitoring: Continuous radar detection during operation
  • Channel Move Time: Must vacate within 10 seconds of radar detection
  • Non-Occupancy Period: Cannot use the channel for 30 minutes after radar detection
# Enable DFS with static mode
/interface wireless set wlan1 dfs-mode=static
# Use DFS channels (default)
/interface wireless set wlan1 skip-dfs-channels=no
# Skip all DFS channels
/interface wireless set wlan1 skip-dfs-channels=yes
# Check DFS status
/interface wireless monitor wlan1
# Create channel with DFS enabled (default)
/interface wifi channel
add frequency=5500,5700 name=DFS-Channels width=20/40/80mhz
# Skip DFS channels entirely
/interface wifi channel
add frequency=5180,5260 name=Non-DFS width=20/40/80mhz skip-dfs-channels=all
# Check current channel and DFS status
/interface wifi monitor [find]
OptionDescription
skip-dfs-channels=noUse all supported channels including DFS (default)
skip-dfs-channels=10-percentageSkip 10% of DFS channels
skip-dfs-channels=allSkip all DFS channels
# Mixed approach - primary non-DFS, secondary DFS
/interface wifi channel
add frequency=5180,5260,5500 name=5G-Primary width=20/40/80mhz skip-dfs-channels=all
/interface wifi channel
add frequency=5600,5700 name=5G-Secondary width=20/40/80mhz

DFS can trigger on non-radar sources:

  • Weather phenomena: Rain, snow, heavy clouds (especially in 5 GHz)
  • High-power nearby transmitters: Non-WiFi devices operating nearby
  • Neighboring networks: Interference from nearby wireless deployments

When DFS triggers:

  1. AP detects “radar” event
  2. Logs the event (check with /log print)
  3. Switches to a non-DFS or alternate channel
  4. Channel blocked for 30 minutes

Community feedback: “DFS issues… radar false positives, 30-minute lockouts ruining deployments”

The 30-minute lockout is the primary concern - once blocked, significant 5 GHz spectrum becomes unavailable.

  • Unplanned channel changes, especially during rain/snow
  • “radar detected” messages in logs
  • Clients disconnecting unexpectedly
  • Reduced available channels during certain weather conditions

For maximum reliability, skip DFS channels entirely:

# RouterOS 7.x - Non-DFS only
/interface wifi channel
add frequency=5180,5260,5500,5765,5825 name=5G-NoDFS width=20/40/80mhz skip-dfs-channels=all

Pros: No unexpected channel changes, no 30-minute lockouts
Cons: Fewer available channels, may be congested

Use both DFS and non-DFS with fallback:

# Primary - non-DFS for reliability
/interface wifi channel
add frequency=5180,5260,5500 name=5G-Primary width=20/40/80mhz skip-dfs-channels=all
# Secondary - DFS for additional capacity
/interface wifi channel
add frequency=5600,5700 name=5G-Secondary width=20/40/80mhz

Pros: Access to more spectrum when stable
Cons: More complex, risk of disruptions

Let the AP select from all available channels:

/interface wifi channel
add frequency=5180,5200,5220,5240,5260,5280,5300,5320,5500,5520,5540,5560,5580,5600,5620,5640,5660,5680,5700 \
name=5G-Auto width=20/40/80mhz

Pros: Maximum flexibility
Cons: DFS events may cause disruptions

/log print where message~"dfs"

Or look for messages containing:

  • radar detected on channel
  • switching to channel
  • DFS: channel blocked
# RouterOS 6.x
/interface wireless monitor wlan1
# RouterOS 7.x
/interface wifi monitor [find]
# Check registration table
/interface wifi registration-table print

If experiencing frequent false positives:

  1. Reduce TX power - Lower power reduces false detection
  2. Use narrower channel width - 20 MHz has less false positive risk
  3. Position antennas carefully - Avoid pointing at potential radar sources

If channels are unavailable:

  1. Check country setting (/ip cloud or /system identity)
  2. Verify DFS configuration
  3. Confirm regulatory domain settings
  • Non-DFS: 36-48 (U-NII-1), 149-165 (U-NII-3)
  • DFS: 52-64 (U-NII-2), 100-144 (U-NII-2 Extended)
  • Max power varies by channel
  • Non-DFS: 36-48 only
  • DFS: 52-144 (more restrictive than FCC)
  • Typically 30-minute non-occupancy

Check local telecommunications regulations. Many countries follow FCC or ETSI rules.

  1. Start with Non-DFS: 36-48 (and 149-165 in US)
  2. Test DFS: Enable and monitor for issues
  3. Enable if stable: If no false positives, use both
  • Avoid DFS entirely
  • Accept reduced channel options
  • Use 80 MHz channel width for more capacity
  • Use all available channels (both DFS and non-DFS)
  • Monitor actively for DFS events
  • Have fallback plans when DFS triggers
ApproachProsCons
Non-DFS OnlyReliable, no blockingFewer channels
DFS EnabledMore spectrum availableRisk of 30-minute block
MixedBest of both worldsMore complex configuration

Recommendation: Start with non-DFS channels. Add DFS only after testing and monitoring in your specific environment.

/interface wifi channel # Channel definitions
/interface wifi monitor # Current status
/interface wifi configuration # Channel assignment
/log print # Check for DFS events