Bug 837941

Summary: ifup-wireless: wl driver does not like "iwconfig ap any"
Product: [openSUSE] openSUSE 12.3 Reporter: Christopher Yeleighton <giecrilj>
Component: BasesystemAssignee: Marius Tomaschewski <mt>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None CC: mt, pwieczorkiewicz, tilman.vogel
Version: Final   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 12.3   
Whiteboard:
Found By: Community User Services Priority:
Business Priority: Blocker: Yes
Marketing QA Status: --- IT Deployment: ---
Bug Depends on: 555774    
Bug Blocks:    

Description Christopher Yeleighton 2013-08-31 10:25:46 UTC
+++ This bug was initially created as a clone of Bug #555774 +++

User-Agent:       Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.9.0.11) Gecko/2009060200 SUSE/3.0.11-5.2 Firefox/3.0.11

Calling "iwconfig ap any" or "iwconfig ap off" for a Agere Systems card with the "wlags49" driver will cause the card to clear the essid and not associate anymore. 
( This causes problems with AUTH_MODE "open", not with "psk". Probably because the supplicant will scan for the network on its own. )

Proposed patch: Change

                    case "${DRIVER}" in
                        (ath_pci)
                            test -z "$WIRELESS_AP" && WIRELESS_AP='off'
                        ;;
                        (*)
                            test -z "$WIRELESS_AP" && WIRELESS_AP='any'
                        ;;
                    esac

to

                    case "${DRIVER}" in
                        (ath_pci)
                            test -z "$WIRELESS_AP" && WIRELESS_AP='off'
                        ;;
                        (wl*)
                        ;;
                        (*)
                            test -z "$WIRELESS_AP" && WIRELESS_AP='any'
                        ;;
                    esac

This will not set WIRELESS_AP to either off or any for the wl driver. Association then works fine.


Reproducible: Always

Steps to Reproduce:
1. set up wireless card to associate to an open AP with given ESSID
2. try to connect

Actual Results:  
iwconfig will list the card with essid "", not associated.

Expected Results:  
iwconfig lists the card with the correct essid and associated.
Comment 1 Marius Tomaschewski 2013-09-02 08:23:01 UTC
This is all about the old-style setup without wpa_supplicant and inconsistent
driver implementations...

Basically, mac80211 based drivers (=most drivers today), need the "ap any" as
signal to reset the bssid and (re)start scanning (as documented in "iwconfig"
man page).

Other drivers, like ath_pci or the wl staging drivers do not implement this
and break. When I set it to "wl*":

@@ -342,7 +342,7 @@ EOL
         case "$WIRELESS_MODE" in
                 ([M,m]anaged|[A,a]d-[H,h]oc|"")
                     case "${DRIVER}" in
-                        (wl)
+                        (wl*)
                             # bnc#555774, wl driver does not like it
                         ;;
                         (ath_pci)

it would affect wl1251,wl18xx,wl12xx as well which are mac80211/cfg80211
based... This means, have to adjust to use (wl|wlags*) to match the driver
names more exactly...?

Does it work when you set WIRELESS_AP='off' in your ifcfg-XXXX file?
Comment 2 Marius Tomaschewski 2013-09-02 08:25:22 UTC
Further, the old-style manual setup is legacy: does it work when you keep
WIRELESS_AP='' and set the PREFER_WPA_SUPPLICANT=yes variable?
Comment 3 Bernhard Wiedemann 2013-09-27 15:14:21 UTC
This is an autogenerated message for OBS integration:
This bug (837941) was mentioned in
https://build.opensuse.org/request/show/201148 Factory / sysconfig
Comment 4 Marius Tomaschewski 2013-09-27 16:12:04 UTC
Changed to skip "ap any" for wlags49* driver.