Bug #659
openarn fails to transmit traffic on some channels
Added by Albert Lee over 12 years ago. Updated about 12 years ago.
0%
Description
A 802.11n AP normally works fine with a client using arn
on channel 1, but when configured to use channel 6 (which has another AP in this range), the client using arn
is able to associate but any outgoing Ethernet frames are not received by the AP. snoop
shows both incoming and outgoing traffic on the AP but no traffic sent from the client (ARP and DHCP/BOOTP requests) is ever received by the endpoints. Other clients are not affected. It's not clear if the problem is the channel specifically, or that it is also occupied by another AP.
Updated by Albert Lee over 12 years ago
I should mention that the tx power is also very low.
Here's the configuration; I believe ah_currentRD = 0x60
and ah_countryCode = 0
means it's using a U.S. regulatory configuration.
{ ah_magic = 0x19641014 ah_devid = 0x2b ah_subvendorid = 0 ah_macVersion = 0xc0 ah_macRev = 0x2 ah_phyRev = 0xe0 ah_analog5GhzRev = 0xc0 ah_analog2GhzRev = 0 ah_sh = 0xffffff01729d8000 ah_sc = 0xffffff01b92db000 ah_opmode = 1 (ATH9K_M_STA) ah_config = { dma_beacon_response_time = 0x2 sw_beacon_response_time = 0xa additional_swba_backoff = 0 ack_6mb = 0 cwm_ignore_extcca = 0 pcie_powersave_enable = 0 pcie_l1skp_enable = 0 pcie_clock_req = 0 pcie_waen = 0 pcie_power_reset = 0x100 pcie_restore = 0 analog_shiftreg = 0x1 ht_enable = 0x1 ofdm_trig_low = 0xc8 ofdm_trig_high = 0x1f4 cck_trig_high = 0xc8 cck_trig_low = 0x64 enable_ani = 0x1 noise_immunity_level = 0x4 ofdm_weaksignal_det = 0x1 cck_weaksignal_thr = 0 spur_immunity_level = 0x2 firstep_level = 0 rssi_thr_high = '(' rssi_thr_low = '\a' diversity_control = 0 antenna_switch_swap = 0 serialize_regmode = 0 intr_mitigation = 0x1 spurmode = 0x2 spurchans = [ [ 0x8000, 0x8000 ] [ 0x8000, 0x8000 ] [ 0x8000, 0x8000 ] [ 0x8000, 0x8000 ] [ 0x8000, 0x8000 ] ] } ah_caps = { hw_caps = 0x2f71db wireless_modes = [ 0x8c, 0xc, 0, 0 ] total_queues = 0xa keycache_size = 0x80 low_5ghz_chan = 0x1338 high_5ghz_chan = 0x17d4 low_2ghz_chan = 0x908 high_2ghz_chan = 0xaac num_mr_retries = 0x4 rts_aggr_limit = 0xffff tx_chainmask = 0x1 rx_chainmask = 0x1 tx_triglevel_max = 0x3f reg_cap = 0xbc0 num_gpio_pins = 0xa num_antcfg_2ghz = 0x1 num_antcfg_5ghz = 0x1 } ah_countryCode = 0 ah_flags = 0x1 ah_powerLimit = 0x3f ah_maxPowerLevel = 0x13 ah_tpScale = 0 ah_currentRD = 0x60 ah_currentRDExt = 0x1f ah_currentRDInUse = 0x10 ah_currentRD5G = 0x110 ah_currentRD2G = 0xa10 ah_iso = [ "NA" ] ah_channels = [ { channel = 0x96c channelFlags = 0x300e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x20080 CalValid = 0xe oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0x971 channelFlags = 0x300e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x20080 CalValid = 0 oneTimeCalsDone = 0x1 (B_TRUE) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0x976 channelFlags = 0x300e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x20080 CalValid = 0 oneTimeCalsDone = 0x1 (B_TRUE) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0x97b channelFlags = 0x300e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x20080 CalValid = 0 oneTimeCalsDone = 0x1 (B_TRUE) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0x980 channelFlags = 0x700e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x20080 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0x985 channelFlags = 0x700e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x20080 CalValid = 0 oneTimeCalsDone = 0x1 (B_TRUE) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0x98a channelFlags = 0x700e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x20080 CalValid = 0 oneTimeCalsDone = 0x1 (B_TRUE) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0x98f channelFlags = 0x500e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x40080 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0x994 channelFlags = 0x500e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x40080 CalValid = 0 oneTimeCalsDone = 0x1 (B_TRUE) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0x999 channelFlags = 0x500e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x40080 CalValid = 0 oneTimeCalsDone = 0x1 (B_TRUE) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0x99e channelFlags = 0x500e0 privFlags = 0 maxRegTxPower = '\033' maxTxPower = '?' minTxPower = '?' chanmode = 0x40080 CalValid = 0 oneTimeCalsDone = 0x1 (B_TRUE) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0xff89 antennaMax = '\006' regDmnFlags = 0 conformanceTestLimit = [ 0, 0x11, 0x12 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, { channel = 0 channelFlags = 0 privFlags = 0 maxRegTxPower = '\0' maxTxPower = '\0' minTxPower = '\0' chanmode = 0 CalValid = 0 oneTimeCalsDone = 0 (0) iCoff = '\0' qCoff = '\0' rawNoiseFloor = 0 antennaMax = '\0' regDmnFlags = 0 conformanceTestLimit = [ 0, 0, 0 ] }, ... ] ah_curchan = 0xffffff01ba6130dc ah_nchan = 0xb ah_isPciExpress = 0x1 (B_TRUE) ah_txTrigLevel = 0x4 ah_rfsilent = 0 ah_rfkill_gpio = 0 ah_rfkill_polarity = 0 nfCalHist = [ { nfCalBuffer = [ 0xff89, 0xff89, 0xff89, 0xff8a, 0xff8a ] currIndex = 0x2 privNF = 0xff89 invalidNFcount = 0 }, { nfCalBuffer = [ 0, 0, 0, 0, 0 ] currIndex = 0x2 privNF = 0xff8a invalidNFcount = 0x5 }, { nfCalBuffer = [ 0, 0, 0, 0, 0 ] currIndex = 0x2 privNF = 0xff8a invalidNFcount = 0x5 }, { nfCalBuffer = [ 0xff8a, 0xff8a, 0xff8a, 0xff8a, 0xff8a ] currIndex = 0x2 privNF = 0xff8a invalidNFcount = 0 }, { nfCalBuffer = [ 0, 0, 0, 0, 0 ] currIndex = 0x2 privNF = 0xff8a invalidNFcount = 0x5 }, { nfCalBuffer = [ 0, 0, 0, 0, 0 ] currIndex = 0x2 privNF = 0xff8a invalidNFcount = 0x5 }, ] }
Updated by Albert Lee about 12 years ago
- Difficulty set to Medium
- Tags set to needs-triage
Further investigation shows that the problem manifests as extremely low transmit power on some or all channels. I've tried backporting tx power related changes from later versions of Linux arn drivers, but haven't narrowed down the issue yet. There is embedded firmware in the driver which may need updating.