[haiku-bugs] Re: [Haiku] #6686: Updating the atheroswifi driver to the FreeBSD HEAD svn rev 211330 (from 204100)

  • From: "jstressman" <trac@xxxxxxxxxxxx>
  • Date: Fri, 01 Oct 2010 21:10:59 -0000

#6686: Updating the atheroswifi driver to the FreeBSD HEAD svn rev 211330 (from
204100)
------------------------------+---------------------------------------------
  Reporter:  jstressman       |         Owner:  nobody        
      Type:  enhancement      |        Status:  new           
  Priority:  normal           |     Milestone:  R1            
 Component:  Drivers/Network  |       Version:  R1/Development
Resolution:                   |      Keywords:  atheros       
Blocked By:                   |   Has a Patch:  0             
  Platform:  All              |      Blocking:                
------------------------------+---------------------------------------------

Comment (by jstressman):

 Looks like I forgot to include some of the changelog...

 http://svn.freebsd.org/viewvc/base/head/sys/dev/ath/if_ath.c?view=log

 That includes the changes to if_ath.c, which include the IFQ_MAXLEN ->
 ifqmaxlen change that I was referring to in my previous comment.

 From fbsd revision 207554:
 {{{
 Add new tunable 'net.link.ifqmaxlen' to set default send interface
 queue length. The default value for this parameter is 50, which is
 quite low for many of today's uses and the only way to modify this
 parameter right now is to edit if_var.h file. Also add read-only
 sysctl with the same name, so that it's possible to retrieve the
 current value.
 }}}

 The rest of the changes to if_ath.c are as follows:

 {{{
 /head/sys/dev/ath/if_ath.c

 Revision 211303
 Modified Sat Aug 14 14:18:02 2010 UTC (6 weeks, 6 days ago) by adrian
 Export ath stats via snmp, rather than requiring a debugging interface
 and "athstats".


 Revision 211136
 Modified Tue Aug 10 07:56:56 2010 UTC (7 weeks, 3 days ago) by adrian
 Don't delay updating the longcal timer - instead, update the longcal
 flag immediately so it's only set once per longcal interval.

 Without this, the current AR5416 code will continuously spam NF
 calibrations during a periodic calibration if the longcal flag
 is set. The longcal flag wouldn't be cleared until the calibration
 method indicates that calibrations are "complete".

 This drops the rate of NF calibration updates down from "once every
 shortcal" (ie, every 100ms) during a periodic calibration, to only
 once per "longcal" interval. Spamming NF calibrations every 100ms
 caused some potentially horrific issues in noisy environments as
 NF calibrations can take longer than 100ms and this spamming can
 cause invalid NF calibration results to be read back - leading to
 missed beacons, and thus leading to a stuck beacon situation.

 Stuck beacons cause interface resets, which restart calibrations.
 This means that the longcal calibration runs every 100ms (shortcal)
 until all initial calibrations are completed. This spamming can then
 cause the above issues which leads to stuck beacons, leading to
 interface resets, etc, etc. Quite annoying.


 Revision 209799
 Modified Thu Jul 8 14:08:03 2010 UTC (2 months, 3 weeks ago) by adrian
 Extend the ath debugging a little to log the interface name.

 Some devices have >1 atheros card and the current debug prints
 make it impossible to tell which interface is being unhappy.


 Revision 209156
 Modified Mon Jun 14 08:24:00 2010 UTC (3 months, 2 weeks ago) by bschmidt
 sc_lastrs is also used in case the sending station is not known, for
 example in a split IBSS scenario. Therefore always assign sc_lastrs.
 This removes a hack I committed in r206457.


 Revision 206457
 Modified Sat Apr 10 13:54:00 2010 UTC (5 months, 3 weeks ago) by bschmidt
 Add WPA-None support:
 * WPA-None requires ap_scan=2:
   The major difference between ap_scan=1 (default) and 2 is, that no
   IEEE80211_IOC_SCAN* ioctls/functions are called, though, there is a
   dependency on those. For example the call to wpa_driver_bsd_scan()
   sets the interface UP, this never happens, therefore the interface
   must be marked up in wpa_driver_bsd_associate(). IEEE80211_IOC_SSID
   also is not called, which means that the SSID has not been set prior
   to the IEEE80211_MLME_ASSOC call.
 * WPA-None has no support for sequence number updates, it doesn't make
   sense to check for replay violations..
 * I had some crashes right after the switch to RUN state, issue is
   that sc->sc_lastrs was not yet defined.
 }}}

 Also missed listing the changes for
 http://svn.freebsd.org/viewvc/base?view=revision&revision=211299 which
 changed both if_ath.c and if_athioctl.h

 {{{
 /head/sys/dev/ath/if_ath.c
 /head/sys/dev/ath/if_athioctl.h
 Revision 211299
 Modified Sat Aug 14 14:01:12 2010 UTC (6 weeks, 6 days ago) by adrian
 Add a global counter of missed beacons.

 The existing missed beacon count is reset once a beacon isn't missed.
 }}}

 All of these changes are included in the patch (minus the "ifqmaxlen"
 one), I just forgot to include the change logs here. :) I think that's all
 of it now. ;)

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/6686#comment:3>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: