Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Nov 2018 11:28:34 -0800
From:      Adrian Chadd <adrian@freebsd.org>
To:        Steve Kargl <sgk@troutmask.apl.washington.edu>
Cc:        freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: ath(4) issues?
Message-ID:  <CAJ-VmokNNHD1t9NyyLdM5QuFgHUnGpN_Jtgwo7rsLTnDvSm1xg@mail.gmail.com>
In-Reply-To: <CAJ-Vmom2qABSm3t7x1id9EB4OgCX%2BUn6pZwK2-mz5Jn1g1JTeA@mail.gmail.com>
References:  <20181122170520.GA78341@troutmask.apl.washington.edu> <CAJ-Vmom2qABSm3t7x1id9EB4OgCX%2BUn6pZwK2-mz5Jn1g1JTeA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
And I think 0x1b is "1mbit CCK", so I bet that's disabled on your AP?


On Fri, 23 Nov 2018 at 11:28, Adrian Chadd <adrian@freebsd.org> wrote:

> hi!
>
> No. It's a side effect of how ath_rate_sample works. The TL;DR is:
>
> * ath_rate_sample uses a fixed set of rates for each attempt - so say you
> want to transmit at 54MBit OFDM, the second/third/fourth slower rates are
> in a fixed table;
> * net80211 negotiates which rates are acceptable to the hostap;
> * a lot of hostaps these days are increasingly disabling doing the lower
> OFDM/CCK rates so slower clients don't tie up so much air;
> * .. but they'll still RECEIVE and ACK those frames, so:
> * + you'll fail say, 54mbit
> * + and 48mbit
> * + then try something like 12mbit on the third attept, which the hostap
> didn't negotiate with you; and
> * + it ACKs it, cause it still receives it fine; then
> * + ath_rate_sample complains that it got a completion for a rate it's not
> supposed to use.
>
> They're harmless. You can comment it out for now; I really need to fix
> ath_rate_sample to use a dynamic table rather than the array of static
> tables..
>
>
>
> -adrian
>
>
> On Thu, 22 Nov 2018 at 09:05, Steve Kargl <
> sgk@troutmask.apl.washington.edu> wrote:
>
>> I have an old D-Link AirPlus G (DWL-630) pccard card
>> that I have used for years with FreeBSD.  Recently,
>> I see
>>
>> % dmesg | grep ath
>> mobile:kargl[201] dmesg | grep ath
>> [ath_hal] loaded
>> [ath_dfs] loaded
>> [ath_rate] loaded
>> [ath] loaded
>> ath0: <Atheros 2413> irq 19 at device 0.0 on cardbus0
>> ath0: AR2413 mac 7.8 RF2413 phy 4.5
>> ath0: 2GHz radio: 0x0000; 5GHz radio: 0x0056
>> ath0: ath_rate_tx_complete: ts_rate=27 ts_finaltsi=0, final_rix=0
>> ath0: bad series0 hwrate 0x1b, tries 1 ts_status 0x0
>> ath0: ath_rate_tx_complete: ts_rate=27 ts_finaltsi=0, final_rix=0
>> ath0: bad series0 hwrate 0x1b, tries 1 ts_status 0x0
>> ath0: bad series0 hwrate 0x1b, tries 2 ts_status 0x1
>>
>>
>> The "bad series0 hwrate..." message fills syslog.  This message
>> appearred with a month or so old /usr/src and an update to top
>> of tree (r340736) still produces the message.
>>
>> So, is this a hardware-about-to-die issue or did someone break
>> ath(4) with the recent changes to inet?
>>
>> % sysctl -a | grep ath | grep -v path
>> net.wlan.0.%parent: ath0
>> net.wlan.devices: ath0 wpi0
>> hw.ath.bstuck: 4
>> hw.ath.txbuf_mgmt: 32
>> hw.ath.txbuf: 200
>> hw.ath.rxbuf: 40
>> hw.ath.anical: 100
>> hw.ath.resetcal: 1200
>> hw.ath.shortcal: 100
>> hw.ath.longcal: 30
>> irq19: cbb0 ath0:37 @cpu0(domain0): 53227
>> dev.ath.0.hal.serialise_reg_war: 0
>> dev.ath.0.hal.force_full_reset: 0
>> dev.ath.0.hal.swba_backoff: 0
>> dev.ath.0.hal.sw_brt: 10
>> dev.ath.0.hal.dma_brt: 2
>> dev.ath.0.hal.ar5416_biasadj: 0
>> dev.ath.0.hal.debug: 0
>> dev.ath.0.stats.sync_intr.31: 0
>> dev.ath.0.stats.sync_intr.30: 0
>> dev.ath.0.stats.sync_intr.29: 0
>> dev.ath.0.stats.sync_intr.28: 0
>> dev.ath.0.stats.sync_intr.27: 0
>> dev.ath.0.stats.sync_intr.26: 0
>> dev.ath.0.stats.sync_intr.25: 0
>> dev.ath.0.stats.sync_intr.24: 0
>> dev.ath.0.stats.sync_intr.23: 0
>> dev.ath.0.stats.sync_intr.22: 0
>> dev.ath.0.stats.sync_intr.21: 0
>> dev.ath.0.stats.sync_intr.20: 0
>> dev.ath.0.stats.sync_intr.19: 0
>> dev.ath.0.stats.sync_intr.18: 0
>> dev.ath.0.stats.sync_intr.17: 0
>> dev.ath.0.stats.sync_intr.16: 0
>> dev.ath.0.stats.sync_intr.15: 0
>> dev.ath.0.stats.sync_intr.14: 0
>> dev.ath.0.stats.sync_intr.13: 0
>> dev.ath.0.stats.sync_intr.12: 0
>> dev.ath.0.stats.sync_intr.11: 0
>> dev.ath.0.stats.sync_intr.10: 0
>> dev.ath.0.stats.sync_intr.9: 0
>> dev.ath.0.stats.sync_intr.8: 0
>> dev.ath.0.stats.sync_intr.7: 0
>> dev.ath.0.stats.sync_intr.6: 0
>> dev.ath.0.stats.sync_intr.5: 0
>> dev.ath.0.stats.sync_intr.4: 0
>> dev.ath.0.stats.sync_intr.3: 0
>> dev.ath.0.stats.sync_intr.2: 0
>> dev.ath.0.stats.sync_intr.1: 0
>> dev.ath.0.stats.sync_intr.0: 0
>> dev.ath.0.stats.rx_phy_err.63: 0
>> dev.ath.0.stats.rx_phy_err.62: 0
>> dev.ath.0.stats.rx_phy_err.61: 0
>> dev.ath.0.stats.rx_phy_err.60: 0
>> dev.ath.0.stats.rx_phy_err.59: 0
>> dev.ath.0.stats.rx_phy_err.58: 0
>> dev.ath.0.stats.rx_phy_err.57: 0
>> dev.ath.0.stats.rx_phy_err.56: 0
>> dev.ath.0.stats.rx_phy_err.55: 0
>> dev.ath.0.stats.rx_phy_err.54: 0
>> dev.ath.0.stats.rx_phy_err.53: 0
>> dev.ath.0.stats.rx_phy_err.52: 0
>> dev.ath.0.stats.rx_phy_err.51: 0
>> dev.ath.0.stats.rx_phy_err.50: 0
>> dev.ath.0.stats.rx_phy_err.49: 0
>> dev.ath.0.stats.rx_phy_err.48: 0
>> dev.ath.0.stats.rx_phy_err.47: 0
>> dev.ath.0.stats.rx_phy_err.46: 0
>> dev.ath.0.stats.rx_phy_err.45: 0
>> dev.ath.0.stats.rx_phy_err.44: 0
>> dev.ath.0.stats.rx_phy_err.43: 0
>> dev.ath.0.stats.rx_phy_err.42: 0
>> dev.ath.0.stats.rx_phy_err.41: 0
>> dev.ath.0.stats.rx_phy_err.40: 0
>> dev.ath.0.stats.rx_phy_err.39: 0
>> dev.ath.0.stats.rx_phy_err.38: 0
>> dev.ath.0.stats.rx_phy_err.37: 0
>> dev.ath.0.stats.rx_phy_err.36: 0
>> dev.ath.0.stats.rx_phy_err.35: 0
>> dev.ath.0.stats.rx_phy_err.34: 0
>> dev.ath.0.stats.rx_phy_err.33: 0
>> dev.ath.0.stats.rx_phy_err.32: 0
>> dev.ath.0.stats.rx_phy_err.31: 1875
>> dev.ath.0.stats.rx_phy_err.30: 0
>> dev.ath.0.stats.rx_phy_err.29: 0
>> dev.ath.0.stats.rx_phy_err.28: 0
>> dev.ath.0.stats.rx_phy_err.27: 0
>> dev.ath.0.stats.rx_phy_err.26: 0
>> dev.ath.0.stats.rx_phy_err.25: 0
>> dev.ath.0.stats.rx_phy_err.24: 0
>> dev.ath.0.stats.rx_phy_err.23: 19
>> dev.ath.0.stats.rx_phy_err.22: 0
>> dev.ath.0.stats.rx_phy_err.21: 0
>> dev.ath.0.stats.rx_phy_err.20: 0
>> dev.ath.0.stats.rx_phy_err.19: 0
>> dev.ath.0.stats.rx_phy_err.18: 0
>> dev.ath.0.stats.rx_phy_err.17: 0
>> dev.ath.0.stats.rx_phy_err.16: 0
>> dev.ath.0.stats.rx_phy_err.15: 0
>> dev.ath.0.stats.rx_phy_err.14: 0
>> dev.ath.0.stats.rx_phy_err.13: 0
>> dev.ath.0.stats.rx_phy_err.12: 0
>> dev.ath.0.stats.rx_phy_err.11: 0
>> dev.ath.0.stats.rx_phy_err.10: 0
>> dev.ath.0.stats.rx_phy_err.9: 0
>> dev.ath.0.stats.rx_phy_err.8: 0
>> dev.ath.0.stats.rx_phy_err.7: 0
>> dev.ath.0.stats.rx_phy_err.6: 0
>> dev.ath.0.stats.rx_phy_err.5: 0
>> dev.ath.0.stats.rx_phy_err.4: 0
>> dev.ath.0.stats.rx_phy_err.3: 0
>> dev.ath.0.stats.rx_phy_err.2: 0
>> dev.ath.0.stats.rx_phy_err.1: 0
>> dev.ath.0.stats.rx_phy_err.0: 0
>> dev.ath.0.stats.ast_tx_ldpc: 0
>> dev.ath.0.stats.ast_tx_stbc: 0
>> dev.ath.0.stats.ast_rx_stbc: 0
>> dev.ath.0.stats.ast_tx_nodeq_overflow: 0
>> dev.ath.0.stats.ast_tx_swfiltered: 0
>> dev.ath.0.stats.ast_rx_keymiss: 0
>> dev.ath.0.stats.ast_tx_mcastq_overflow: 0
>> dev.ath.0.stats.ast_tx_intr: 4342
>> dev.ath.0.stats.ast_rx_intr: 48850
>> dev.ath.0.stats.ast_tx_aggr_fail: 0
>> dev.ath.0.stats.ast_tx_aggr_ok: 0
>> dev.ath.0.stats.ast_tx_aggr_failall: 0
>> dev.ath.0.stats.ast_tx_delim_underrun: 0
>> dev.ath.0.stats.ast_tx_data_underrun: 0
>> dev.ath.0.stats.ast_tx_swretrymax: 0
>> dev.ath.0.stats.ast_tx_swretries: 0
>> dev.ath.0.stats.ast_tx_desccfgerr: 0
>> dev.ath.0.stats.ast_tx_timerexpired: 0
>> dev.ath.0.stats.ast_tx_xtxop: 0
>> dev.ath.0.stats.ast_tx_cst: 0
>> dev.ath.0.stats.ast_tx_timeout: 0
>> dev.ath.0.stats.ast_rx_hitqueueend: 0
>> dev.ath.0.stats.ast_tx_htprotect: 0
>> dev.ath.0.stats.ast_rx_hi_rx_chain: 0
>> dev.ath.0.stats.ast_rx_decrypt_busy_err: 0
>> dev.ath.0.stats.ast_rx_post_crc_err: 0
>> dev.ath.0.stats.ast_rx_pre_crc_err: 0
>> dev.ath.0.stats.ast_rx_2040: 0
>> dev.ath.0.stats.ast_rx_halfgi: 0
>> dev.ath.0.stats.ast_rx_agg: 0
>> dev.ath.0.stats.ast_ani_cal: 5852
>> dev.ath.0.stats.ast_be_missed: 0
>> dev.ath.0.stats.ast_tx_nofrag: 0
>> dev.ath.0.stats.ast_tx_raw_fail: 0
>> dev.ath.0.stats.ast_tdma_ack: 0
>> dev.ath.0.stats.ast_tdma_tsf: 0
>> dev.ath.0.stats.ast_tdma_timers: 0
>> dev.ath.0.stats.ast_tdma_update: 0
>> dev.ath.0.stats.ast_tx_nobuf: 0
>> dev.ath.0.stats.ast_tx_qfull: 0
>> dev.ath.0.stats.ast_ff_flush: 0
>> dev.ath.0.stats.ast_ff_rx: 0
>> dev.ath.0.stats.ast_ff_txerr: 0
>> dev.ath.0.stats.ast_ff_txok: 0
>> dev.ath.0.stats.ast_tx_raw: 59
>> dev.ath.0.stats.ast_cabq_busy: 0
>> dev.ath.0.stats.ast_cabq_xmit: 0
>> dev.ath.0.stats.ast_ant_txswitch: 0
>> dev.ath.0.stats.ast_ant_defswitch: 347
>> dev.ath.0.stats.ast_rate_drop: 0
>> dev.ath.0.stats.ast_rate_raise: 0
>> dev.ath.0.stats.ast_rate_calls: 0
>> dev.ath.0.stats.ast_per_rfgain: 0
>> dev.ath.0.stats.ast_per_calfail: 0
>> dev.ath.0.stats.ast_per_cal: 20
>> dev.ath.0.stats.ast_be_nombuf: 0
>> dev.ath.0.stats.ast_be_xmit: 0
>> dev.ath.0.stats.ast_rx_ctl: 0
>> dev.ath.0.stats.ast_rx_mgt: 0
>> dev.ath.0.stats.ast_rx_packets: 0
>> dev.ath.0.stats.ast_rx_toobig: 0
>> dev.ath.0.stats.ast_rx_tooshort: 0
>> dev.ath.0.stats.ast_rx_phyerr: 1894
>> dev.ath.0.stats.ast_rx_badmic: 0
>> dev.ath.0.stats.ast_rx_badcrypt: 0
>> dev.ath.0.stats.ast_rx_fifoerr: 0
>> dev.ath.0.stats.ast_rx_crcerr: 1646
>> dev.ath.0.stats.ast_rx_orn: 0
>> dev.ath.0.stats.ast_rx_busdma: 0
>> dev.ath.0.stats.ast_rx_nombuf: 0
>> dev.ath.0.stats.ast_tx_ctsext: 0
>> dev.ath.0.stats.ast_tx_ctsburst: 0
>> dev.ath.0.stats.ast_tx_protect: 0
>> dev.ath.0.stats.ast_tx_altrate: 60
>> dev.ath.0.stats.ast_tx_shortpre: 2203
>> dev.ath.0.stats.ast_tx_cts: 0
>> dev.ath.0.stats.ast_tx_rts: 0
>> dev.ath.0.stats.ast_tx_noack: 0
>> dev.ath.0.stats.ast_tx_badrate: 0
>> dev.ath.0.stats.ast_tx_longretry: 744
>> dev.ath.0.stats.ast_tx_shortretry: 0
>> dev.ath.0.stats.ast_tx_filtered: 0
>> dev.ath.0.stats.ast_tx_fifoerr: 0
>> dev.ath.0.stats.ast_tx_xretries: 1
>> dev.ath.0.stats.ast_tx_busdma: 0
>> dev.ath.0.stats.ast_tx_nodata: 0
>> dev.ath.0.stats.ast_tx_linear: 0
>> dev.ath.0.stats.ast_tx_nomcl: 0
>> dev.ath.0.stats.ast_tx_nombuf: 0
>> dev.ath.0.stats.ast_tx_nonode: 0
>> dev.ath.0.stats.ast_tx_encap: 0
>> dev.ath.0.stats.ast_tx_qstop: 0
>> dev.ath.0.stats.ast_tx_discard: 0
>> dev.ath.0.stats.ast_tx_mgmt: 0
>> dev.ath.0.stats.ast_tx_packets: 0
>> dev.ath.0.stats.ast_intrcoal: 0
>> dev.ath.0.stats.ast_mib: 34
>> dev.ath.0.stats.ast_txurn: 0
>> dev.ath.0.stats.ast_rxeol: 0
>> dev.ath.0.stats.ast_rxorn: 0
>> dev.ath.0.stats.ast_bstuck: 0
>> dev.ath.0.stats.ast_bmiss_phantom: 0
>> dev.ath.0.stats.ast_bmiss: 0
>> dev.ath.0.stats.ast_hardware: 0
>> dev.ath.0.stats.ast_watchdog: 0
>> dev.ath.0.clear_stats: 0
>> dev.ath.0.txq_node_maxdepth: 50
>> dev.ath.0.txq_mcastq_maxdepth: 50
>> dev.ath.0.txq_data_minfree: 10
>> dev.ath.0.delim_min_pad: 0
>> dev.ath.0.rts_aggr_limit: 0
>> dev.ath.0.aggr_limit: 65530
>> dev.ath.0.tid_hwq_hi: 4
>> dev.ath.0.tid_hwq_lo: 2
>> dev.ath.0.hwq_limit_aggr: 2
>> dev.ath.0.hwq_limit_nonaggr: 32
>> dev.ath.0.monpass: 24
>> dev.ath.0.intmit: 1
>> dev.ath.0.hangcheck: 0
>> dev.ath.0.forcebstuck: 0
>> dev.ath.0.txagg: 0
>> dev.ath.0.tpcts: 63
>> dev.ath.0.tpack: 63
>> dev.ath.0.tpc: 0
>> dev.ath.0.tpscale: 0
>> dev.ath.0.diag: 0
>> dev.ath.0.txintrperiod: 5
>> dev.ath.0.diversity: 1
>> dev.ath.0.rxantenna: 1
>> dev.ath.0.txantenna: 0
>> dev.ath.0.led_pwr_pin: -1
>> dev.ath.0.led_net_pin: -1
>> dev.ath.0.hardled: 0
>> dev.ath.0.ledidle: 2700
>> dev.ath.0.ledon: 0
>> dev.ath.0.ledpin: 0
>> dev.ath.0.softled: 0
>> dev.ath.0.ctstimeout: 48
>> dev.ath.0.acktimeout: 48
>> dev.ath.0.slottime: 9
>> dev.ath.0.regdomain: 16
>> dev.ath.0.countrycode: 0
>> dev.ath.0.sample_stats: 0
>> dev.ath.0.sample_rate: 10
>> dev.ath.0.smoothing_rate: 75
>> dev.ath.0.%parent: cardbus0
>> dev.ath.0.%pnpinfo: vendor=0x168c device=0x001a subvendor=0x1186
>> subdevice=0x3b08 class=0x020000
>> dev.ath.0.%location: slot=0 function=0 dbsf=pci0:4:0:0
>> dev.ath.0.%driver: ath
>> dev.ath.0.%desc: Atheros 2413
>> dev.ath.%parent:
>>
>>
>> --
>> Steve
>> _______________________________________________
>> freebsd-current@freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org
>> "
>>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmokNNHD1t9NyyLdM5QuFgHUnGpN_Jtgwo7rsLTnDvSm1xg>