23 Sep, 2006

2 commits


21 Sep, 2006

2 commits


30 Aug, 2006

5 commits


28 Jul, 2006

6 commits

  • ieee80211_rx_any is new to 2.6.18-rc1, even though it appears this function
    was never completed:

    http://lists.sipsolutions.net/pipermail/softmac-dev/2006-February/000103.html

    This patch changes ieee80211_rx_any to always claim the skb, which avoids
    further driver complexity and the possibility of leaking management frames.
    It also exports the function so that people can actually use it.

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Daniel Drake
     
  • zd1211 needs this functionality, no point duplicating it.

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Daniel Drake
     
  • This patch implements ERP handling in softmac so that the drivers can support
    protection and preambles properly.

    I added a new struct, ieee80211softmac_bss_info, which is used for
    BSS-dependent variables like these.

    A new hook has been added (bssinfo_change), which allows the drivers to be
    notified when anything in bssinfo changes.

    I modified the txrates_change API to match the bssinfo_change API. The
    existing one is a little messy and the usefulness of providing the old rates
    is questionable (and can be implemented at driver level if really necessary).
    No drivers are using this API (yet), so this should be safe.

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Daniel Drake
     
  • This adds a flag to the ieee80211_network structure which indicates whether
    the stored erp_value is valid (a check against 0 is not enough, since an ERP
    of 0 is valid and very meaningful).

    I also added the ERP IE bit-definitions to ieee80211.h.

    This is needed by some upcoming softmac patches.

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Daniel Drake
     
  • ieee80211_crypt_tkip will not work without CRC32.

    LD .tmp_vmlinux1
    net/built-in.o: In function `ieee80211_tkip_encrypt':
    net/ieee80211/ieee80211_crypt_tkip.c:349: undefined reference to `crc32_le'

    Reported by Toralf Foerster

    Signed-off-by: Chuck Ebbert
    Signed-off-by: John W. Linville

    Chuck Ebbert
     
  • Johann Uhrmann reported a bcm43xx crash and Michael Buesch tracked
    it down to a problem with the new shared key auth code (recursive
    calls into the driver)

    This patch (effectively Michael's patch with a couple of small
    modifications) solves the problem by sending the authentication
    challenge response frame from a workqueue entry.

    I also removed a lone \n from the bcm43xx messages relating to
    authentication mode - this small change was previously discussed but
    not patched in.

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville

    Daniel Drake
     

22 Jul, 2006

1 commit


06 Jul, 2006

7 commits

  • Signed-off-by: John W. Linville

    John W. Linville
     
  • WARNING: /lib/modules/2.6.17-mm2/kernel/net/ieee80211/ieee80211.ko
    needs unknown symbol wireless_spy_update

    Someone removed the `#ifdef CONFIG_WIRELESS_EXT' from around the callsite
    in net/ieee80211/ieee80211_rx.c and didn't update Kconfig appropriately.

    The offending patchset seems to be 35c14b855f52c49e4f3d078b9532b056005ed321
    which is tittled

    [PATCH] ieee80211: remove unnecessary CONFIG_WIRELESS_EXT checking

    After a quick look it seems that wireless_spy_update() lives in
    net/core/wirless.c, and that file is only compiled if
    CONFIG_WIRELESS_EXT is set. Perhaps this is Kconig work, but
    in the mean time here is a reversal of the recent change.

    Signed-Off-By: Horms
    Signed-off-by: John W. Linville

    Horms
     
  • The ieee80211softmac_call_events function, when called with event type
    IEEE80211SOFTMAC_EVENT_ASSOCIATE_TIMEOUT should pass the network as the
    third parameter. This patch does that.

    Signed-off-by: Joseph Jezak
    Signed-off-by: John W. Linville

    Joseph Jezak
     
  • This patch addresses the "No queue exists" messages commonly seen during
    authentication and associating. These appear due to scheduling multiple
    authentication attempts on the same network. To prevent this, I added a
    flag to stop multiple authentication attempts by the association layer.
    I also added a check to the wx handler to see if we're connecting to a
    different network than the one already in progress. This scenario was
    causing multiple requests on the same network because the network BSSID
    was not being updated despite the fact that the ESSID changed.

    Signed-off-by: Joseph Jezak
    Signed-off-by: John W. Linville

    Joseph Jezak
     
  • In commit ba9b28d19a3251bb1dfe6a6f8cc89b96fb85f683, routine
    ieee80211softmac_capabilities was added to ieee80211softmac_io.c. As
    denoted by its name, it completes the capabilities IE that is
    needed in the associate and reassociate requests sent to the
    AP. For at least one AP, the Linksys WRT54G V5, the capabilities
    field must set the 'short preamble' bit or the AP refuses to
    associate. In the commit noted above, there is a call to the
    new routine from ieee80211softmac_reassoc_req, but not from
    ieee80211softmac_assoc_req. This patch fixes that oversight.

    As noted in the subject, v2.6.17 is affected. My bcm43xx card had been
    unable to associate since I was forced to buy a new AP. I finally was
    able to get a packet dump and traced the problem to the capabilities
    info. Although I had heard that a patch was "floating around", I had
    not seen it before 2.6.17 was released. As this bug does not affect
    security and I seem to have the only AP affected by it, there should
    be no problem in leaving it for 2.6.18.

    Signed-Off-By: Larry Finger
    Signed-off-by: John W. Linville

    Larry Finger
     
  • this patch fixes coverity id #913. ieee80211_monitor_rx() passes the skb
    to netif_rx() and we should not reference it any longer.

    Signed-off-by: Eric Sesterhenn
    Signed-off-by: John W. Linville

    Eric Sesterhenn
     
  • We should preallocate IV+ICV space when encrypting the frame.
    Currently no problem shows up just because dev_alloc_skb aligns the
    data len to SMP_CACHE_BYTES which can be used for ICV.

    Signed-off-by: Hong Liu
    Signed-off-by: John W. Linville

    Hong Liu
     

01 Jul, 2006

1 commit


16 Jun, 2006

1 commit

  • In net/ieee80211/softmac/ieee80211softmac_wx.c, there is a bug that
    prints extended sign information whenever the byte value exceeds
    0x7f. The following patch changes the printk to use a u8 cast to limit
    the output to 2 digits. This bug was first noticed by Dan Williams
    . This patch applies to the current master branch
    of the Linville tree.

    Signed-Off-By: Larry Finger
    Signed-off-by: John W. Linville

    Larry Finger
     

06 Jun, 2006

4 commits

  • This patch moves the capabilities field computation to a function for clarity
    and adds some previously unimplemented bits.

    Signed off by Joseph Jezak
    Signed-off-by: Daniel Drake
    Acked-By: Johannes Berg
    Signed-off-by: John W. Linville

    Joseph Jezak
     
  • My router blew up earlier, but exhibited some interesting behaviour during
    its dying moments. It was broadcasting beacons but wouldn't respond to
    any authentication requests.

    I noticed that softmac wasn't playing nice with this, as I couldn't make it try
    to connect to other networks after it had timed out authenticating to my ill
    router.

    To resolve this, I modified the softmac event/notify API to pass the event
    code to the callback, so that callbacks being notified from
    IEEE80211SOFTMAC_EVENT_ANY masks can make some judgement. In this case, the
    ieee80211softmac_assoc callback needs to make a decision based upon whether
    the association passed or failed.

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Daniel Drake
     
  • This patch finishes of the partially-complete shared key authentication
    implementation in softmac.

    The complication here is that we need to encrypt a management frame during
    the authentication process. I don't think there are any other scenarios where
    this would have to happen.

    To get around this without causing too many headaches, we decided to just use
    software encryption for this frame. The softmac config option now selects
    IEEE80211_CRYPT_WEP so that we can ensure this available. This also involved
    a modification to some otherwise unused ieee80211 API.

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Daniel Drake
     
  • Got this compiler warning and Johannes Berg
    wrote:

    Yeah, known 'bug', we have that code there but never use it. Feel free
    to submit a patch (to John Linville, CC netdev and softmac-dev) to
    remove it.

    Signed-off-by: Toralf Foerster
    Signed-off-by: John W. Linville

    Toralf Förster
     

06 May, 2006

6 commits

  • This patch is the first step towards rate control inside softmac.

    The txrates substructure has been extended to provide
    different fields for different types of packets (management/data,
    unicast/multicast). These fields are updated on association to values
    compatible with the access point we are associating to.

    Drivers can then use the new ieee80211softmac_suggest_txrate() function
    call when deciding which rate to transmit each frame at. This is
    immensely useful for ZD1211, and bcm can use it too.

    The user can still specify a rate through iwconfig, which is matched
    for all transmissions (assuming the rate they have specified is in
    the rate set required by the AP).

    At a later date, we can incorporate automatic rate management into
    the ieee80211softmac_recalc_txrates() function.

    This patch also removes the mcast_fallback field. Sam Leffler pointed
    out that this field is meaningless, because no driver will ever be
    retransmitting mcast frames (they are not acked).

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Daniel Drake
     
  • Since sec->key_sizes[] is an u8, len can't be < 0.

    Spotted by the Coverity checker.

    Signed-off-by: Adrian Bunk
    Cc: "John W. Linville"
    Signed-off-by: Andrew Morton
    Signed-off-by: John W. Linville

    Adrian Bunk
     
  • The 802.11 specs state that deauthenticating also implies
    disassociating. This patch implements that, which improve the behaviour
    of SIOCSIWMLME.

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Daniel Drake
     
  • John W. Linville
     
  • zd1211 with softmac and wpa_supplicant revealed an issue with softmac
    and the use of workqueues. Some of the work functions actually
    reschedule themselves, so this meant that there could still be
    pending work after flush_scheduled_work() had been called during
    ieee80211softmac_stop().

    This patch introduces a "running" flag which is used to ensure that
    rescheduling does not happen in this situation.

    I also used this flag to ensure that softmac's hooks into ieee80211 are
    non-operational once the stop operation has been started. This simply
    makes softmac a little more robust, because I could crash it easily
    by receiving frames in the short timeframe after shutting down softmac
    and before turning off the ZD1211 radio. (ZD1211 is now fixed as well!)

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Daniel Drake
     
  • When wpa_supplicant exits, it uses SIOCSIWMLME to request
    deauthentication. softmac then tries to reassociate without any user
    intervention, which isn't the desired behaviour of this signal.

    This change makes softmac only attempt reassociation if the remote
    network itself deauthenticated us.

    Signed-off-by: Daniel Drake
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Daniel Drake
     

25 Apr, 2006

5 commits