wireless-regdb: IN DFS ranges result in DFS_UNSET and prevent mt76 CAC

Ankit Dange ankitdange37 at gmail.com
Fri Sep 4 11:09:42 PDT 2026


Hi,

I am seeing an immediate DFS/CAC failure on an OpenWrt 24.10.0 based
system using MT7915E/mt76 with country code IN.

Environment:

  Device: YunCore AX820
  SoC: MediaTek MT7621
  Wi-Fi: MediaTek MT7915E
  OpenWrt: 24.10.0 r28427-6df0e3d02a
  Kernel: 6.6.73
  mt76: 2025.01.14~8e4f72b6
  wireless-regdb: 2024.10.07

The India entry in db.txt is:

  country IN:
      (2402 - 2482 @ 40), (30)
      (5150 - 5250 @ 80), (30)
      (5250 - 5350 @ 80), (24), DFS
      (5470 - 5725 @ 160), (24), DFS
      (5725 - 5875 @ 80), (30)

The DFS frequency ranges are marked with DFS, but the country entry does
not specify DFS-FCC, DFS-ETSI, or DFS-JP.

On the device:

  iw reg get

reports:

  country IN: DFS-UNSET

When I configure channel 100, hostapd reports:

  phy1-ap0: DFS-CAC-START freq=5500 chan=100 sec_chan=0,
             width=0, seg0=0, seg1=0, cac_time=60s
  DFS start_dfs_cac() failed, -1
  phy1-ap0: interface state DFS->DISABLED
  phy1-ap0: AP-DISABLED

The failure is immediate; CAC does not run for 60 seconds.

I instrumented mt76 and during the channel change I see:

  DFSDBG: region=0 dfs_state=1 prev_state=0

The mt76 enum is:

  enum mt76_dfs_state {
      MT_DFS_STATE_UNKNOWN,
      MT_DFS_STATE_DISABLED,
      MT_DFS_STATE_CAC,
      MT_DFS_STATE_ACTIVE,
  };

So the runtime values correspond to:

  prev_state = MT_DFS_STATE_UNKNOWN
  dfs_state  = MT_DFS_STATE_DISABLED

The relevant mt76 code is:

  if (dev->region == NL80211_DFS_UNSET ||
      test_bit(MT76_SCANNING, &phy->state))
      return MT_DFS_STATE_DISABLED;

Therefore the observed path is:

  country IN
    -> DFS_UNSET
    -> mt76 returns MT_DFS_STATE_DISABLED
    -> radar detector/CAC is not started
    -> hostapd start_dfs_cac() fails

I also instrumented the later MT7915 radar initialization functions, but
they are not reached during the failing CAC attempt.

I reproduced this with:

  channel 100 / HT20
  channel 100 / HE80
  channel 52 / HT20

Non-DFS channel 157 works normally.

There is also an existing OpenWrt report with the same symptom:

  openwrt/openwrt#20699

My questions are:

1. Is it intentional that India has DFS-required ranges but no
   DFS-FCC/DFS-ETSI/DFS-JP region?

2. If DFS_UNSET is intentional, how are drivers such as mt76 expected to
   perform DFS CAC?

3. Is mt76 expected to disable DFS when the regulatory region is
   NL80211_DFS_UNSET?

I have not forced DFS-FCC, DFS-ETSI, or DFS-JP locally because I do not
want to select a radar profile without regulatory justification.

I can provide complete iw reg output, iw phy output, hostapd logs, and
the temporary mt76 instrumentation patch if useful.

Thanks,
Ankit Dange



More information about the wireless-regdb mailing list