<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.linux.drivers.hostap">
    <title>gmane.linux.drivers.hostap</title>
    <link>http://blog.gmane.org/gmane.linux.drivers.hostap</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26171"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26170"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26169"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26168"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26167"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26166"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26165"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26164"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26163"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26162"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26161"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26160"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26159"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26158"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26157"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26156"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26155"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26154"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26153"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.drivers.hostap/26152"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26171">
    <title>WPA2 Help</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26171</link>
    <description>&lt;pre&gt;









Hello.



I
use Debian squeeze 6.0.5, kernel 2.6.32-5-amd64.



I
am trying to connect to my phone's router using WPA2 PSK, without
results.



There
is any problem using open protocol, without encryption, but I want to
use WPA.



A
message I have seen is “scanning” as a result of wpa_cli.



Anybody
can help ?



Please
answer to polarship&amp;lt; at &amp;gt;hotmail.com
and you will get a place in heaven.



Usually
I connect to belkin54g
but
sometimes I want to use WPA2 to connect to WLAN02, my phone's router.



And
after using WLAN02, i would like to connect back to belkin54g without
having to reboot.



Any
answers for the reason I have to reboot to connect again to belkin54g
?



=============================================================
###
This File: /etc/network/interfaces



#
This file describes the network interfaces available on your system
#
and how to activate them. For more information, see interfaces(5).
#
The loopback network interface



auto
lo
iface
lo inet loopback



#
The primary network interface. wireless-* options are implemented by
the wireless-tools package



allow-hotplug
wlan0
iface
wlan0 inet dhcp



#
      pre-up wpa_supplicant -B -iwlan0 -Dwext
-c/etc/wpa_supplicant/wpa_supplicant.conf
#
      post-down killall -q wpa_supplicant



        wireless-mode
managed



##
     Address: 00:11:50:35:D8:83
        wireless-essid
belkin54g
##
     wireless-key s:



##
     Address: B0:EC:71:4C:05:A0
#
      wireless-essid WLAN02
##
     wireless-key s:
#
      wireless-key s:xxxxxxxx



        dns-nameservers
80.58.61.250,80.58.61.254



=============================================================



I
use the script NET-RESTART.sh to connect:



=============================================================
##!/bin/sh



#/etc/init.d/networking
stop
#/etc/init.d/networking
start



clear
ifdown
wlan0
sleep
1
echo
===========================================
ifup
wlan0
sleep
1
echo
===========================================
ping
www.google.com



=============================================================



Here
is the config. file:



=============================================================
#
/etc/wpa_supplicant/wpa_supplicant.conf



ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=0
#ap_scan=1
#ap_scan=2
eapol_version=1
fast_reauth=1



network={
        ssid="WLAN02"
#
      bssid=00:##:##:##:##:## Only in case of several routers with
same ssid
        scan_ssid=1
        proto=WPA
#
      proto=WPA RSN
       
key_mgmt=WPA-PSK
#
      group=CCMP TKIP
#
      group=TKIP CCMP
        group=TKIP
#
      pairwise=CCMP TKIP
#
      pairwise=TKIP CCMP
        pairwise=TKIP
#
      psk="xxxxxxxx"          (encrypted psk made with: #
wpa_passphrase WLAN02 xxxxxxxx )
       
psk=85f758905305424d98a5b534f5fb14580f552ba12f0afd5ad1c2879177d17f1d



=============================================================



And
I launch it using:



wpa_supplicant
-B -W -c/etc/wpa_supplicant/wpa_supplicant.conf -Dwext -iwlan0 -dd



Last
time I tried it, the results in several wpa_cli options was: FAIL



wpa_cli
list_networks
wpa_cli
scan
wpa_cli
scan_results
wpa_cli
status
ERROR:(Selected
interface 'wlan0'



wpa_state=SCANNING)



















       _______________________________________________
HostAP mailing list
HostAP&amp;lt; at &amp;gt;lists.shmoo.com
http://lists.shmoo.com/mailman/listinfo/hostap
&lt;/pre&gt;</description>
    <dc:creator>Polarship ·</dc:creator>
    <dc:date>2012-05-25T10:18:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26170">
    <title>How to calculate the percentage of signal strength level from dBm</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26170</link>
    <description>&lt;pre&gt;Hi All,

  Here's a question that I have been searching the Internet but
couldn't get an solution to it. I wanted to know all the wireless
hotspots around me and their signal strengths. I used "wpa_cli scan;
wpa_cli scan_results" to list the hotspots around me with signal
level, which were -75 and -83 in my case. I guess the unit here is
dBm. My question is how to convert dBm to percentage of signal
strength. I'm using ath9k driver. I saw a document on the internet
saying that I can use the following formula to convert dBm to
percentage:

    RSSI - 95 = dBm
    RSSI_MAX for Atheros chips is 60. So, -35 dBm is equivalent to
100%, and -95 dBm to 0%


  It doesn't look right to me because I put an access point very close
to me but got -79 dBm via wpa_cli. Please can anyone help?

Thanks and Best Regards,
CC
&lt;/pre&gt;</description>
    <dc:creator>Chih-Chieh Chou</dc:creator>
    <dc:date>2012-05-24T21:53:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26169">
    <title>[PATCH] P2P When UUID gets changed and more pbc session entriesare created, remove logic should check for loop entry address</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26169</link>
    <description>&lt;pre&gt;When UUID gets changed between a received probe request (for wps) and the M1 message, we might endup creating 2 entries in pbc sessions list (with same device address and different UUID). But when we try to remove the entries, we need to compare that pbc sessions list entry-&amp;gt;address. This will ensure that both entries gets removed.
Please let me know if the below patch is OK or I am missing something in my understanding.

From 1785eabf9c28bcd3012cc18bc510711f7f8febb9 Mon Sep 17 00:00:00 2001
From: Neeraj Garg &amp;lt;neerajkg&amp;lt; at &amp;gt;broadcom.com&amp;gt;
Date: Thu, 24 May 2012 14:01:40 +0530
Subject: [PATCH] Patch:P2P When UUID gets changed and more pbc session entries are created, remove logic should check for loop entry address
Signed-off-by: Neeraj Garg &amp;lt;neerajkg&amp;lt; at &amp;gt;broadcom.com&amp;gt;

---
 src/wps/wps_registrar.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 mode change 100644 =&amp;gt; 100755 src/wps/wps_registrar.c

diff --git a/src/wps/wps_registrar.c b/src/wps/wps_registrar.c
old mode 100644
new mode 100755
index e6ec04c..678375b
--- a/src/wps/wps_registrar.c
+++ b/src/wps/wps_registrar.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -313,8 +313,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void wps_registrar_remove_pbc_session(struct wps_registrar *reg,
 pbc = reg-&amp;gt;pbc_sessions;
 while (pbc) {
 if (os_memcmp(pbc-&amp;gt;uuid_e, uuid_e, WPS_UUID_LEN) == 0 ||
-    (p2p_dev_addr &amp;amp;&amp;amp; !is_zero_ether_addr(reg-&amp;gt;p2p_dev_addr) &amp;amp;&amp;amp;
-     os_memcmp(reg-&amp;gt;p2p_dev_addr, p2p_dev_addr, ETH_ALEN) ==
+    (p2p_dev_addr &amp;amp;&amp;amp; !is_zero_ether_addr(pbc-&amp;gt;addr) &amp;amp;&amp;amp;
+     os_memcmp(pbc-&amp;gt;addr, p2p_dev_addr, ETH_ALEN) ==
      0)) {
 if (prev)
 prev-&amp;gt;next = pbc-&amp;gt;next;
&lt;/pre&gt;</description>
    <dc:creator>Neeraj Kumar Garg</dc:creator>
    <dc:date>2012-05-24T08:37:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26168">
    <title>Re: how to get lists of STAs that connected to hostapd.</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26168</link>
    <description>&lt;pre&gt;How to get stations from MBSSID interfaces?

mail ~ # hostapd_cli all_sta
Selected interface 'wlan0'
f0:7b:cb:a0:f9:8f
dot11RSNAStatsSTAAddress=f0:7b:cb:a0:f9:8f
dot11RSNAStatsVersion=1
dot11RSNAStatsSelectedPairwiseCipher=00-0f-ac-4
dot11RSNAStatsTKIPLocalMICFailures=0
dot11RSNAStatsTKIPRemoveMICFailures=0
hostapdWPAPTKState=11
hostapdWPAPTKGroupState=0
mail ~ # hostapd_cli -i wlan0_0 all_sta
Failed to connect to hostapd - wpa_ctrl_open: No such file or directory
mail ~ # iw wlan0 station dump
Station f0:7b:cb:a0:f9:8f (on wlan0)
[...]
mail ~ # iw wlan0_0 station dump
Station 00:1c:26:ac:89:f1 (on wlan0_0)
[...]
mail ~ #
mail ~ # ls /var/run/hostapd/
wlan0
mail ~ #
&lt;/pre&gt;</description>
    <dc:creator>Alex Vorona</dc:creator>
    <dc:date>2012-05-23T08:42:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26167">
    <title>P2P NOA invalid parameters</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26167</link>
    <description>&lt;pre&gt;Hello,

Parameter list to set NOA contains : count, start_offset, duration,
interval.  Are there any rules regarding invalid ranges or combination
of duration and interval?  Of course interval should be longer than
duration, but if duration consumes 90% of interval does it still
make sense?

Second problem is how long duration is allowed. I think when I define
90% sleep time then interval longer than 1sec also make no sense.
In other words if GO will go to sleep for too much time then there
will be a problem, with connecting/disconnecting to this group-owner.

Should the validation be performed in supplicant or in driver?

Thanks for opinions, Pawel
&lt;/pre&gt;</description>
    <dc:creator>Piszcz Pawel</dc:creator>
    <dc:date>2012-05-23T07:33:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26166">
    <title>HostAP EAP-TLS</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26166</link>
    <description>&lt;pre&gt; Hi,all. I want to use hostap for WPA EAP-TLS. Here is my .conf file:
interface=wlan3
bridge=br0
driver=nl80211
ssid=NormalAP
hw_mode=g
channel=13
ieee8021x=1
eapol_version=1
eap_server=1
eap_user_file=/home/wlan/wlan/hostapd-wpa-tls-tkip/hostapd/hostapd-ap.eap_user
ca_cert=/etc/ssl/demoCA/newcerts/cacert.pem
server_cert=/etc/ssl/demoCA/newcerts/APcert.pem
private_key=/etc/ssl/demoCA/newcerts/serverkey.prv
private_key_passwd=wlanwlan
#dh_file=/etc/ssl/hostapd.dh.pem
wpa=1
wpa_key_mgmt=WPA-EAP
wpa_pairwise=TKIP

But the hostap can not derive the key, here is the error message:
 EAP-TLS: CONTINUE -&amp;gt; SUCCESS
EAP: EAP entering state SEND_REQUEST
EAP: EAP entering state IDLE
EAP: retransmit timeout 3 seconds (from dynamic back off; retransCount=0)
IEEE 802.1X: 00:14:78:71:42:67 BE_AUTH entering state REQUEST
wlan3: STA 00:14:78:71:42:67 IEEE 802.1X: Sending EAP Packet (identifier 166)
IEEE 802.1X: 00:14:78:71:42:67 TX status - version=1 type=0 length=49 - ack=1
IEEE 802.1X: 10 bytes from 00:14:78:71:42:67
   IEEE 802.1X: version=1 type=0 length=6
EAP: code=2 identifier=166 length=6
 (response)
wlan3: STA 00:14:78:71:42:67 IEEE 802.1X: received EAP packet (code=2 id=166 len=6) from STA: EAP Response-TLS (13)
IEEE 802.1X: 00:14:78:71:42:67 BE_AUTH entering state RESPONSE
EAP: EAP entering state RECEIVED
EAP: parseEapResp: rxResp=1 respId=166 respMethod=13 respVendor=0 respVendorMethod=0
EAP: EAP entering state INTEGRITY_CHECK
EAP: EAP entering state METHOD_RESPONSE
SSL: Received packet(len=6) - Flags 0x00
SSL: Received packet: Flags 0x0 Message Length 0
EAP-TLS: Client acknowledged final TLS handshake message
EAP-TLS: Failed to derive key

I use similiar conf file for the WPA2 EAP-TLS, it is OK. Where is problem? Thank you!
_______________________________________________
HostAP mailing list
HostAP&amp;lt; at &amp;gt;lists.shmoo.com
http://lists.shmoo.com/mailman/listinfo/hostap
&lt;/pre&gt;</description>
    <dc:creator>why</dc:creator>
    <dc:date>2012-05-23T05:54:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26165">
    <title>Re: how to get lists of STAs that connected to hostapd.</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26165</link>
    <description>&lt;pre&gt;
If you enable the control interface, you can use the STA-FIRST and
STA-NEXT control interface commands to iterate through the station list.
"hostapd_cli all_sta" is an example how this can be handled.

&lt;/pre&gt;</description>
    <dc:creator>Jouni Malinen</dc:creator>
    <dc:date>2012-05-23T04:54:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26164">
    <title>Re: [WPS] responding with WPS_NACK to M7 from AP</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26164</link>
    <description>&lt;pre&gt;
Yes, this is quite common use case for WPS and it is mentioned in the
Table 34 in WSC 2.0 specification (in the description of "No Error"
Configuration Error).

&lt;/pre&gt;</description>
    <dc:creator>Jouni Malinen</dc:creator>
    <dc:date>2012-05-23T04:53:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26163">
    <title>Re: reconfiguring the access point..</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26163</link>
    <description>&lt;pre&gt;
Which version of wpa_supplicant are you using? It sound slike the
wpa_cli version was not new enough to include WPS support.
 
&lt;/pre&gt;</description>
    <dc:creator>Jouni Malinen</dc:creator>
    <dc:date>2012-05-23T04:47:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26162">
    <title>Re: [RFC 4/4] P2P: Handling single channel concurrency</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26162</link>
    <description>&lt;pre&gt;
Unfortunately these have fallen somewhat of a victim for other projects
and travel taking most of my time. We'll see if I can get to these over
the next weekend, but if not, this may need to wait until I get back
home in couple of weeks.


I'm fine with the D-Bus mechanism being addressed separately, but I
would like to see the needed nl80211 interface changes discussed on
linux-wireless mailing list rather sooner than later. It is important to
make sure that the needed functionality gets accepted to the upstream
kernel to avoid issues in supporting this cleanly with drivers that use
cfg80211.

&lt;/pre&gt;</description>
    <dc:creator>Jouni Malinen</dc:creator>
    <dc:date>2012-05-23T04:46:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26161">
    <title>wpa_supplicant consultant needed</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26161</link>
    <description>&lt;pre&gt;Hello,
I am currently working with wpa_supplicant to build Wi-FI capabilities for a small consumer electronic device which has an RTOS, ARM9 CPU and Atheros Series 6000 chip on board.
The wpa_supplicant source code is release 0.6.9 which was included in the Atheros SDK.
The wpa_supplicant has been successfully ported to our hardware platform.
Currently the device can connect successfully to Wi-Fi Access Points with Atheros chip inside.
However, the device has trouble connecting successfully to Wi-Fi Access Points with Broadcom chip inside.
(It takes up to 2 minutes to connect at distance greater than 50cm)
I am in need of a paid consultant who can help me troubleshoot and fix the above problem.
Thank you
Hien Ha
_______________________________________________
HostAP mailing list
HostAP&amp;lt; at &amp;gt;lists.shmoo.com
http://lists.shmoo.com/mailman/listinfo/hostap
&lt;/pre&gt;</description>
    <dc:creator>Hien Ha</dc:creator>
    <dc:date>2012-05-22T04:28:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26160">
    <title>STA is not connecting to any ap with PIN from Access point</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26160</link>
    <description>&lt;pre&gt;Hi,

STA is sending M1 but receiving M2D. Any possible solution.

Regards,
Ashish
D/wpa_supplicant(  584): EAPOL: startWhen --&amp;gt; 0

D/wpa_supplicant(  584): EAPOL: SUPP_PAE entering state CONNECTING

D/wpa_supplicant(  584): EAPOL: txStart

D/wpa_supplicant(  584): TX EAPOL: dst=00:26:0b:dc:17:8d

D/wpa_supplicant(  584): EAPOL: Received EAP-Packet frame

D/wpa_supplicant(  584): EAPOL: SUPP_PAE entering state RESTART

D/wpa_supplicant(  584): EAP: EAP entering state INITIALIZE

D/wpa_supplicant(  584): EAP: EAP entering state IDLE

D/wpa_supplicant(  584): EAPOL: SUPP_PAE entering state AUTHENTICATING

D/wpa_supplicant(  584): EAPOL: SUPP_BE entering state REQUEST

D/wpa_supplicant(  584): EAPOL: getSuppRsp

D/wpa_supplicant(  584): EAP: EAP entering state RECEIVED

D/wpa_supplicant(  584): EAP: Received EAP-Request id=1 method=1 vendor=0 vendorMethod=0

D/wpa_supplicant(  584): EAP: EAP entering state IDENTITY

I/wpa_supplicant(  584): wlan0: CTRL-EVENT-EAP-STARTED EAP authentication started

D/wpa_supplicant(  584): EAP: EAP entering state SEND_RESPONSE

D/wpa_supplicant(  584): EAP: EAP entering state IDLE

D/wpa_supplicant(  584): EAPOL: SUPP_BE entering state RESPONSE

D/wpa_supplicant(  584): EAPOL: txSuppRsp

D/wpa_supplicant(  584): TX EAPOL: dst=00:26:0b:dc:17:8d

D/wpa_supplicant(  584): EAPOL: SUPP_BE entering state RECEIVE

D/wpa_supplicant(  584): EAPOL: Received EAP-Packet frame

D/wpa_supplicant(  584): EAPOL: SUPP_BE entering state REQUEST

D/wpa_supplicant(  584): EAPOL: getSuppRsp

D/wpa_supplicant(  584): EAP: EAP entering state RECEIVED

D/wpa_supplicant(  584): EAP: Received EAP-Request id=2 method=254 vendor=14122 vendorMethod=1

D/wpa_supplicant(  584): EAP: EAP entering state GET_METHOD

I/wpa_supplicant(  584): wlan0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=14122 method=1

D/wpa_supplicant(  584): EAP: Initialize selected EAP method: vendor 14122 method 1 (WSC)

D/wpa_supplicant(  584): EAP-WSC: Fragment size limit 1398

I/wpa_supplicant(  584): wlan0: CTRL-EVENT-EAP-METHOD EAP vendor 14122 method 1 (WSC) selected

D/wpa_supplicant(  584): EAP: EAP entering state METHOD

D/wpa_supplicant(  584): EAP-WSC: Received packet: Op-Code 1 Flags 0x0 Message Length 0

D/wpa_supplicant(  584): EAP-WSC: Received start

D/wpa_supplicant(  584): EAP-WSC: WAIT_START -&amp;gt; MESG

D/wpa_supplicant(  584): Get randomness: len=16 entropy=182

D/wpa_supplicant(  584): WPS: Building Message M1

D/wpa_supplicant(  584): WPS:  * Version (hardcoded 0x10)

D/wpa_supplicant(  584): WPS:  * Message Type (4)

D/wpa_supplicant(  584): WPS:  * UUID-E

D/wpa_supplicant(  584): WPS:  * MAC Address

D/wpa_supplicant(  584): WPS:  * Enrollee Nonce

D/wpa_supplicant(  584): WPS:  * Public Key

D/wpa_supplicant(  584): WPS: Generate new DH keys

D/wpa_supplicant(  584): WPS:  * Authentication Type Flags

D/wpa_supplicant(  584): WPS:  * Encryption Type Flags

D/wpa_supplicant(  584): WPS:  * Connection Type Flags

D/wpa_supplicant(  584): WPS:  * Config Methods (2108)

D/wpa_supplicant(  584): WPS:  * Wi-Fi Protected Setup State (1)

D/wpa_supplicant(  584): WPS:  * Manufacturer

D/wpa_supplicant(  584): WPS:  * Model Name

D/wpa_supplicant(  584): WPS:  * Model Number

D/wpa_supplicant(  584): WPS:  * Serial Number

D/wpa_supplicant(  584): WPS:  * Primary Device Type

D/wpa_supplicant(  584): WPS:  * Device Name

D/wpa_supplicant(  584): WPS:  * RF Bands (1)

D/wpa_supplicant(  584): WPS:  * Association State

D/wpa_supplicant(  584): WPS:  * Device Password ID (0)

D/wpa_supplicant(  584): WPS:  * Configuration Error (0)

D/wpa_supplicant(  584): WPS:  * OS Version

D/wpa_supplicant(  584): WPS:  * Version2 (0x20)

D/wpa_supplicant(  584): EAP-WSC: MESG -&amp;gt; MESG

D/wpa_supplicant(  584): EAP-WSC: Generating Response

D/wpa_supplicant(  584): EAP-WSC: Sending out 362 bytes (message sent completely)

D/wpa_supplicant(  584): EAP-WSC: MESG -&amp;gt; MESG

D/wpa_supplicant(  584): EAP: method process -&amp;gt; ignore=FALSE methodState=MAY_CONT decision=FAIL

D/wpa_supplicant(  584): EAP: EAP entering state SEND_RESPONSE

D/wpa_supplicant(  584): EAP: EAP entering state IDLE

D/wpa_supplicant(  584): EAPOL: SUPP_BE entering state RESPONSE

D/wpa_supplicant(  584): EAPOL: txSuppRsp

D/wpa_supplicant(  584): TX EAPOL: dst=00:26:0b:dc:17:8d

D/wpa_supplicant(  584): EAPOL: SUPP_BE entering state RECEIVE

D/wpa_supplicant(  584): EAPOL: Received EAP-Packet frame

D/wpa_supplicant(  584): EAPOL: SUPP_BE entering state REQUEST

D/wpa_supplicant(  584): EAPOL: getSuppRsp

D/wpa_supplicant(  584): EAP: EAP entering state RECEIVED

D/wpa_supplicant(  584): EAP: Received EAP-Request id=3 method=254 vendor=14122 vendorMethod=1

D/wpa_supplicant(  584): EAP: EAP entering state METHOD

D/wpa_supplicant(  584): EAP-WSC: Received packet: Op-Code 4 Flags 0x0 Message Length 0

D/wpa_supplicant(  584): WPS: Processing received message (len=310 op_code=4)

D/wpa_supplicant(  584): WPS: Received WSC_MSG

D/wpa_supplicant(  584): WPS: attr type=0x104a len=1

D/wpa_supplicant(  584): WPS: attr type=0x1022 len=1

D/wpa_supplicant(  584): WPS: attr type=0x101a len=16

D/wpa_supplicant(  584): WPS: attr type=0x1039 len=16

D/wpa_supplicant(  584): WPS: attr type=0x1048 len=16

D/wpa_supplicant(  584): WPS: attr type=0x1004 len=2

D/wpa_supplicant(  584): WPS: attr type=0x1010 len=2

D/wpa_supplicant(  584): WPS: attr type=0x100d len=1

D/wpa_supplicant(  584): WPS: attr type=0x1008 len=2

D/wpa_supplicant(  584): WPS: attr type=0x1021 len=32

D/wpa_supplicant(  584): WPS: attr type=0x1023 len=32

D/wpa_supplicant(  584): WPS: attr type=0x1024 len=32

D/wpa_supplicant(  584): WPS: attr type=0x1042 len=32

D/wpa_supplicant(  584): WPS: attr type=0x1054 len=8

D/wpa_supplicant(  584): WPS: attr type=0x1011 len=32

D/wpa_supplicant(  584): WPS: attr type=0x103c len=1

D/wpa_supplicant(  584): WPS: attr type=0x1002 len=2

D/wpa_supplicant(  584): WPS: attr type=0x1009 len=2

D/wpa_supplicant(  584): WPS: attr type=0x102d len=4

D/wpa_supplicant(  584): WPS: Received M2D

I/wpa_supplicant(  584): wlan0: WPS-M2D dev_password_id=0 config_error=0

D/wpa_supplicant(  584): EAP-WSC: MESG -&amp;gt; MESG

D/wpa_supplicant(  584): WPS: Building Message WSC_ACK

D/wpa_supplicant(  584): WPS:  * Version (hardcoded 0x10)

D/wpa_supplicant(  584): WPS:  * Message Type (13)

D/wpa_supplicant(  584): WPS:  * Enrollee Nonce

D/wpa_supplicant(  584): WPS:  * Registrar Nonce

D/wpa_supplicant(  584): WPS:  * Version2 (0x20)

D/wpa_supplicant(  584): EAP-WSC: MESG -&amp;gt; MESG

D/wpa_supplicant(  584): EAP-WSC: Generating Response

D/wpa_supplicant(  584): EAP-WSC: Sending out 60 bytes (message sent completely)

D/wpa_supplicant(  584): EAP-WSC: MESG -&amp;gt; MESG

D/wpa_supplicant(  584): EAP: method process -&amp;gt; ignore=FALSE methodState=MAY_CONT decision=FAIL

D/wpa_supplicant(  584): EAP: EAP entering state SEND_RESPONSE

D/wpa_supplicant(  584): EAP: EAP entering state IDLE

D/wpa_supplicant(  584): EAPOL: SUPP_BE entering state RESPONSE

D/wpa_supplicant(  584): EAPOL: txSuppRsp

D/wpa_supplicant(  584): TX EAPOL: dst=00:26:0b:dc:17:8d

D/wpa_supplicant(  584): EAPOL: SUPP_BE entering state RECEIVE

E/        (  112): MSMFB_HISTOGRAM failed!
_______________________________________________
HostAP mailing list
HostAP&amp;lt; at &amp;gt;lists.shmoo.com
http://lists.shmoo.com/mailman/listinfo/hostap
&lt;/pre&gt;</description>
    <dc:creator>ashish kumar</dc:creator>
    <dc:date>2012-05-21T19:23:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26159">
    <title>reconfiguring the access point..</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26159</link>
    <description>&lt;pre&gt;Hi,

I want to use wpa_cli and wps_reg to reconfigure access point of mine but

when i am doing sudo wpa_cli wps_reg 02:34:56:78:9a:bc 12345670

its showing "unknown command" . I do not why. Is here any help?

&lt;/pre&gt;</description>
    <dc:creator>Harish </dc:creator>
    <dc:date>2012-05-21T11:42:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26158">
    <title>RE: [RFC 4/4] P2P: Handling single channel concurrency</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26158</link>
    <description>&lt;pre&gt;
Hi Jouni,

My understanding was that you have agreed on the below patches. Is there something 
to be done on these patches? Else could we get the basic implementation of single 
channel concurrency checked in?

http://patchwork.ozlabs.org/patch/154020/
http://patchwork.ozlabs.org/patch/151368/
http://patchwork.ozlabs.org/patch/151369/
http://patchwork.ozlabs.org/patch/151368/

There are some works pending (DBUS events and GO channel switch). But these can 
be appended to the hooks provided. If you require them on priority, let me know.



Thanks,

Jithu Jance


________________________________________
From: Jithu Jance
Sent: Friday, April 20, 2012 4:42 PM
To: Jouni Malinen; hostap&amp;lt; at &amp;gt;lists.shmoo.com
Subject: RE: [RFC 4/4] P2P: Handling single channel concurrency

Hi Jouni,

I have updated the patch a bit. So re-sending the mail with updated patch.
I have superseded the previous one in the patchwork list.

Thanks!!

While testing, I found a bug in the patch I sent previously. In the
below piece of code, the "wpas_p2p_disconnect" call is not required as
wpas_p2p_group_delete is explicitly called with appropriate reason
code(FREQ_CONFLICT).
+               if (!wpas_is_p2p_prioritized(iface)) {
+                       /*
+                        * STA connection has priority over existing P2P
+                        * connection, so remove the interface.
+                        */
+                       wpas_p2p_disconnect(iface);
+                       iface-&amp;gt;removal_reason =
+                               P2P_GROUP_REMOVAL_FREQ_CONFLICT;
+                       wpas_p2p_group_delete(iface);


I have generated a new patch including the above change. I am
attaching the patch and also putting it inline. Please see whether it
is fine.

[PATCH] P2P: Handle single channel concurrency

This patch handles cases where a STA connection is attempted after a P2P
connection and the new sta connection detects a freq conflict with the
existing P2P connection. Now based on the priority of the connection
(either sta or p2p), either one of the connection will be terminated

Signed-hostap: Jithu Jance &amp;lt;jithu&amp;lt; at &amp;gt;broadcom.com&amp;gt;
---
 src/common/wpa_ctrl.h             |    2 +
 wpa_supplicant/p2p_supplicant.c   |   49 +++++++++++++++++++++++++++++++++++++
 wpa_supplicant/p2p_supplicant.h   |    2 +
 wpa_supplicant/wpa_supplicant.c   |   28 +++++++++++++++++++++
 wpa_supplicant/wpa_supplicant_i.h |    3 +-
 5 files changed, 83 insertions(+), 1 deletions(-)

diff --git a/src/common/wpa_ctrl.h b/src/common/wpa_ctrl.h
index 2da58c9..8fced7a 100644
--- a/src/common/wpa_ctrl.h
+++ b/src/common/wpa_ctrl.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -56,6 +56,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern "C" {
 #define WPA_EVENT_BSS_ADDED "CTRL-EVENT-BSS-ADDED "
 /** A BSS entry was removed (followed by BSS entry id and BSSID) */
 #define WPA_EVENT_BSS_REMOVED "CTRL-EVENT-BSS-REMOVED "
+/** Notify the Userspace about the freq conflict */
+#define WPA_EVENT_FREQ_CONFLICT "CTRL-EVENT-FREQ-CONFLICT "

 /** WPS overlap detected in PBC mode */
 #define WPS_EVENT_OVERLAP "WPS-OVERLAP-DETECTED "
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index d5c862c..53c3e9e 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -267,6 +267,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void wpas_p2p_group_delete(struct wpa_supplicant *wpa_s)
        case P2P_GROUP_REMOVAL_GO_ENDING_SESSION:
                reason = " reason=GO_ENDING_SESSION";
                break;
+       case P2P_GROUP_REMOVAL_FREQ_CONFLICT:
+               reason = " reason=FREQ_CONFLICT";
+               break;
        default:
                reason = "";
                break;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4713,3 +4716,49 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpas_p2p_notify_ap_sta_authorized(struct wpa_supplicant *wpa_s,
                return;
        wpas_p2p_add_persistent_group_client(wpa_s, addr);
 }
+
+int wpas_p2p_handle_frequency_conflicts(struct wpa_supplicant *wpa_s, int freq)
+{
+       struct wpa_supplicant *iface = NULL;
+
+       for (iface = wpa_s-&amp;gt;global-&amp;gt;ifaces; iface; iface = iface-&amp;gt;next) {
+               if(!iface-&amp;gt;p2p_group_interface || !iface-&amp;gt;current_ssid ||
+                       iface-&amp;gt;current_ssid-&amp;gt;frequency == freq)
+                       continue;
+
+               if (iface-&amp;gt;p2p_group_interface == P2P_GROUP_INTERFACE_GO) {
+                       /*
+                        * Try to see whether we can move the GO. If it
+                        * is not possible, remove the GO interface
+                        */
+                       if(wpa_drv_switch_channel(iface, freq) == 0) {
+                                       wpa_printf(MSG_INFO, "P2P: GO Moved to freq"
+                                       "(%d) MHz", freq);
+                                       iface-&amp;gt;current_ssid-&amp;gt;frequency = freq;
+                                       continue;
+                       }
+               }
+
+               /* If GO cannot be moved or if the conflicting interface is a
+                * P2P Client, remove the interface depending up on the connection
+                * priority
+                */
+               if(!wpas_is_p2p_prioritized(wpa_s)) {
+                       /*
+                        * STA connection has priority over existing
+                        * P2P connection. So remove the interface
+                        */
+                       wpa_printf(MSG_DEBUG, "P2P: Removing P2P connection due to "
+                               "Single channel concurrent mode frequency conflict");
+                       iface-&amp;gt;removal_reason = P2P_GROUP_REMOVAL_FREQ_CONFLICT;
+                       wpas_p2p_group_delete(iface);
+               } else {
+                       /*
+                        * Existing connection has the priority. Disable the newly
+                        * selected network and let the application know about it.
+                        */
+                       return -1;
+               }
+       }
+       return 0;
+}
diff --git a/wpa_supplicant/p2p_supplicant.h b/wpa_supplicant/p2p_supplicant.h
index c15e42a..9b49b01 100644
--- a/wpa_supplicant/p2p_supplicant.h
+++ b/wpa_supplicant/p2p_supplicant.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -25,6 +25,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpas_p2p_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
                                   unsigned int freq, unsigned int duration);
 void wpas_p2p_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
                                          unsigned int freq);
+int wpas_p2p_handle_frequency_conflicts(struct wpa_supplicant *wpa_s,
+                                          int freq);
 int wpas_p2p_group_remove(struct wpa_supplicant *wpa_s, const char *ifname);
 int wpas_p2p_group_add(struct wpa_supplicant *wpa_s, int persistent_group,
                       int freq);
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index c5a7115..2c7ec09 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1100,6 +1100,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
        ibss_rsn_deinit(wpa_s-&amp;gt;ibss_rsn);
        wpa_s-&amp;gt;ibss_rsn = NULL;
 #endif /* CONFIG_IBSS_RSN */
+       int freq = 0;

        if (ssid-&amp;gt;mode == WPAS_MODE_AP || ssid-&amp;gt;mode == WPAS_MODE_P2P_GO ||
            ssid-&amp;gt;mode == WPAS_MODE_P2P_GROUP_FORMATION) {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1404,6 +1405,33 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
        wpa_supplicant_apply_ht_overrides(wpa_s, ssid, &amp;amp;params);
 #endif /* CONFIG_HT_OVERRIDES */

+       /*
+        * If multichannel concurrency is not supported, check for any frequency
+        * conflict and take appropriate action.
+        */
+       if (!(wpa_s-&amp;gt;drv_flags &amp;amp; WPA_DRIVER_FLAGS_MULTI_CHANNEL_CONCURRENT) &amp;amp;&amp;amp;
+               ((freq = wpa_drv_shared_freq(wpa_s)) &amp;gt; 0) &amp;amp;&amp;amp; (freq != params.freq)) {
+               wpa_printf(MSG_DEBUG, "Shared interface with conflicting frequency"
+                       "found (%d != %d)", freq, params.freq);
+#ifdef CONFIG_P2P
+               if (wpas_p2p_handle_frequency_conflicts(wpa_s, params.freq) &amp;lt;
+                       0) {
+                       /*
+                        * Handling conflicts failed. Disable the current
+                        * connect req and notify the userspace to take
+                        * appropriate action.
+                        */
+                       wpa_printf(MSG_DEBUG, "proiritize is not set."
+                               "Notifying user space to handle the case");
+                       wpa_supplicant_disable_network(wpa_s, ssid);
+                       wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_FREQ_CONFLICT
+                               " id=%d", ssid-&amp;gt;id);
+                       os_memset(wpa_s-&amp;gt;pending_bssid, 0, ETH_ALEN);
+                       return;
+               }
+#endif /* CONFIG_P2P */
+       }
+
        ret = wpa_drv_associate(wpa_s, &amp;amp;params);
        if (ret &amp;lt; 0) {
                wpa_msg(wpa_s, MSG_INFO, "Association request to the driver "
diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h
index b25116e..a28fa5a 100644
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -504,7 +504,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct wpa_supplicant {
                P2P_GROUP_REMOVAL_REQUESTED,
                P2P_GROUP_REMOVAL_IDLE_TIMEOUT,
                P2P_GROUP_REMOVAL_UNAVAILABLE,
-               P2P_GROUP_REMOVAL_GO_ENDING_SESSION
+               P2P_GROUP_REMOVAL_GO_ENDING_SESSION,
+               P2P_GROUP_REMOVAL_FREQ_CONFLICT
        } removal_reason;

        unsigned int p2p_cb_on_scan_complete:1;
--
1.7.4.1






- Jithu Jance

________________________________________
From: hostap-bounces&amp;lt; at &amp;gt;lists.shmoo.com [hostap-bounces&amp;lt; at &amp;gt;lists.shmoo.com] on behalf of Jouni Malinen [j&amp;lt; at &amp;gt;w1.fi]
Sent: Monday, April 09, 2012 12:08 AM
To: hostap&amp;lt; at &amp;gt;lists.shmoo.com
Subject: Re: [RFC 4/4] P2P: Handling single channel concurrency

On Tue, Mar 06, 2012 at 10:34:38AM +0530, Jithu Jance wrote:

I applied the driver_nl80211.c part and below is a cleaned up version of
the rest. Though, I did not go through all the details yet.


[PATCH 3/3] P2P: Handle single channel concurrency

This patch handles cases where a STA connection is attempted after a P2P
connection and the new sta connection detects a freq conflict with the
existing P2P connection. Now based on the priority of the connection
(either sta or p2p), either one of the connection will be terminated.

Signed-hostap: Jithu Jance &amp;lt;jithu&amp;lt; at &amp;gt;broadcom.com&amp;gt;
---
 src/common/wpa_ctrl.h             |    2 +
 wpa_supplicant/p2p_supplicant.c   |   50 +++++++++++++++++++++++++++++++++++++
 wpa_supplicant/p2p_supplicant.h   |    2 +
 wpa_supplicant/wpa_supplicant.c   |   27 ++++++++++++++++++++
 wpa_supplicant/wpa_supplicant_i.h |    3 +-
 5 files changed, 83 insertions(+), 1 deletions(-)

diff --git a/src/common/wpa_ctrl.h b/src/common/wpa_ctrl.h
index 35012e8..2e35e9c 100644
--- a/src/common/wpa_ctrl.h
+++ b/src/common/wpa_ctrl.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -56,6 +56,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern "C" {
 #define WPA_EVENT_BSS_ADDED "CTRL-EVENT-BSS-ADDED "
 /** A BSS entry was removed (followed by BSS entry id and BSSID) */
 #define WPA_EVENT_BSS_REMOVED "CTRL-EVENT-BSS-REMOVED "
+/** Notify the Userspace about the freq conflict */
+#define WPA_EVENT_FREQ_CONFLICT "CTRL-EVENT-FREQ-CONFLICT "

 /** WPS overlap detected in PBC mode */
 #define WPS_EVENT_OVERLAP "WPS-OVERLAP-DETECTED "
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index 9d31fdb..3abcee7 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4609,3 +4609,53 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpas_p2p_notify_ap_sta_authorized(struct wpa_supplicant *wpa_s,
                return;
        wpas_p2p_add_persistent_group_client(wpa_s, addr);
 }
+
+
+int wpas_p2p_handle_frequency_conflicts(struct wpa_supplicant *wpa_s, int freq)
+{
+       struct wpa_supplicant *iface;
+
+       for (iface = wpa_s-&amp;gt;global-&amp;gt;ifaces; iface; iface = iface-&amp;gt;next) {
+               if (!iface-&amp;gt;p2p_group_interface || !iface-&amp;gt;current_ssid ||
+                   iface-&amp;gt;current_ssid-&amp;gt;frequency == freq)
+                       continue;
+
+               if (iface-&amp;gt;p2p_group_interface == P2P_GROUP_INTERFACE_GO) {
+                       /*
+                        * Try to see whether we can move the GO. If it is not
+                        * possible, remove the GO interface.
+                        */
+                       if (wpa_drv_switch_channel(iface, freq) == 0) {
+                               wpa_printf(MSG_INFO, "P2P: GO Moved to freq "
+                                          "%d MHz", freq);
+                               iface-&amp;gt;current_ssid-&amp;gt;frequency = freq;
+                               continue;
+                       }
+               }
+
+               /*
+                * If GO cannot be moved or if the conflicting interface is a
+                * P2P Client, remove the interface depending up on the
+                * connection priority.
+                */
+               if (!wpas_is_p2p_prioritized(iface)) {
+                       /*
+                        * STA connection has priority over existing P2P
+                        * connection, so remove the interface.
+                        */
+                       wpas_p2p_disconnect(iface);
+                       iface-&amp;gt;removal_reason =
+                               P2P_GROUP_REMOVAL_FREQ_CONFLICT;
+                       wpas_p2p_group_delete(iface);
+               } else {
+                       /*
+                        * Existing connection has the priority. Disable the
+                        * newly selected network and let the application know
+                        * about it.
+                        */
+                       return -1;
+               }
+       }
+
+       return 0;
+}
diff --git a/wpa_supplicant/p2p_supplicant.h b/wpa_supplicant/p2p_supplicant.h
index 8f8e635..fb0522b 100644
--- a/wpa_supplicant/p2p_supplicant.h
+++ b/wpa_supplicant/p2p_supplicant.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -25,6 +25,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpas_p2p_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
                                   unsigned int freq, unsigned int duration);
 void wpas_p2p_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
                                          unsigned int freq);
+int wpas_p2p_handle_frequency_conflicts(struct wpa_supplicant *wpa_s,
+                                       int freq);
 int wpas_p2p_group_remove(struct wpa_supplicant *wpa_s, const char *ifname);
 int wpas_p2p_group_add(struct wpa_supplicant *wpa_s, int persistent_group,
                       int freq);
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 1c88949..7b4e178 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1091,6 +1091,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
        struct wpa_driver_capa capa;
        int assoc_failed = 0;
        struct wpa_ssid *old_ssid;
+       int freq;
 #ifdef CONFIG_HT_OVERRIDES
        struct ieee80211_ht_capabilities htcaps;
        struct ieee80211_ht_capabilities htcaps_mask;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1404,6 +1405,32 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
        wpa_supplicant_apply_ht_overrides(wpa_s, ssid, &amp;amp;params);
 #endif /* CONFIG_HT_OVERRIDES */

+       /*
+        * If multichannel concurrency is not supported, check for any
+        * frequency conflict and take appropriate action.
+        */
+       if (!(wpa_s-&amp;gt;drv_flags &amp;amp; WPA_DRIVER_FLAGS_MULTI_CHANNEL_CONCURRENT) &amp;amp;&amp;amp;
+           ((freq = wpa_drv_shared_freq(wpa_s)) &amp;gt; 0) &amp;amp;&amp;amp; freq != params.freq) {
+               wpa_printf(MSG_DEBUG, "Shared interface with conflicting "
+                          "frequency found (%d != %d)", freq, params.freq);
+#ifdef CONFIG_P2P
+               if (wpas_p2p_handle_frequency_conflicts(wpa_s, params.freq) &amp;lt;
+                   0) {
+                       /*
+                        * Handling conflicts failed. Disable the current
+                        * connect req and notify the userspace to take
+                        * appropriate action.
+                        */
+                       wpa_printf(MSG_DEBUG, "prioritize is not set. "
+                                  "Notifying user space to handle the case.");
+                       wpa_supplicant_disable_network(wpa_s, ssid);
+                       wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_FREQ_CONFLICT
+                               " id=%d", ssid-&amp;gt;id);
+                       os_memset(wpa_s-&amp;gt;pending_bssid, 0, ETH_ALEN);
+               }
+#endif /* CONFIG_P2P */
+       }
+
        ret = wpa_drv_associate(wpa_s, &amp;amp;params);
        if (ret &amp;lt; 0) {
                wpa_msg(wpa_s, MSG_INFO, "Association request to the driver "
diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h
index 3f1f589..3c86857 100644
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -509,7 +509,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct wpa_supplicant {
                P2P_GROUP_REMOVAL_REQUESTED,
                P2P_GROUP_REMOVAL_IDLE_TIMEOUT,
                P2P_GROUP_REMOVAL_UNAVAILABLE,
-               P2P_GROUP_REMOVAL_GO_ENDING_SESSION
+               P2P_GROUP_REMOVAL_GO_ENDING_SESSION,
+               P2P_GROUP_REMOVAL_FREQ_CONFLICT
        } removal_reason;

        unsigned int p2p_cb_on_scan_complete:1;
--
1.7.4.1


--
Jouni Malinen                                            PGP id EFC895FA
_______________________________________________
HostAP mailing list
HostAP&amp;lt; at &amp;gt;lists.shmoo.com
http://lists.shmoo.com/mailman/listinfo/hostap
&lt;/pre&gt;</description>
    <dc:creator>Jithu Jance</dc:creator>
    <dc:date>2012-05-21T06:44:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26157">
    <title>[PATCH] P2P: Race condition in GO-NEG process if both peersenter p2p_connect at the same time</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26157</link>
    <description>&lt;pre&gt;Hello,

We hit a case where both the peers assumed that other peer will be GO. Let us assume that p2p_connect command was given on both the peers using a script at the same time. Also assume that P1 has higher mac address than P2. 
1. P1 will send a GO-NEG-REQ and P2 will also send a GO-NEG-REQ.
2. Before P2 could get a callback p2p_go_neg_req_cb to update the variable go_neg_req_sent, P2 receives a GO-NEG request of P1 in the dwell time of its own request.
3. So P2 prepares the GO-NEG-RSP and send it even though its mac address is lower than P1 because go_neg_req_sent variable is NOT yet incremented.
4. Now P1 will get P2's GO-NEG-REQ and will reply it since it has higher mac address.
5. Both peers end up in sending GO-CONF frame.

To resolve this race, we propose that we increment go_neg_req_sent as soon as p2p_send_action is called for GO-NEG-REQ. And then decrement go_neg_req_sent if because of some reason the success is not reported in the callback p2p_go_neg_req_cb.

From 65193927d34fbbb9e84109b450268150867adbe5 Mon Sep 17 00:00:00 2001
From: Neeraj Garg &amp;lt;neerajkg&amp;lt; at &amp;gt;broadcom.com&amp;gt;
Date: Mon, 21 May 2012 11:53:46 +0530
Subject: [PATCH] P2P: Race condition in GO-NEG process if both peers enter p2p_connect at the same time
 Signed-off-by: Neeraj Garg &amp;lt;neerajkg&amp;lt; at &amp;gt;broadcom.com&amp;gt;

---
 src/p2p/p2p.c        |    4 +++-
 src/p2p/p2p_go_neg.c |    1 +
 2 files changed, 4 insertions(+), 1 deletions(-)
 mode change 100644 =&amp;gt; 100755 src/p2p/p2p.c
 mode change 100644 =&amp;gt; 100755 src/p2p/p2p_go_neg.c

diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c
old mode 100644
new mode 100755
index deccfc0..37a33dd
--- a/src/p2p/p2p.c
+++ b/src/p2p/p2p.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2704,12 +2704,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void p2p_go_neg_req_cb(struct p2p_data *p2p, int success)
 }
 
 if (success) {
-dev-&amp;gt;go_neg_req_sent++;
 if (dev-&amp;gt;flags &amp;amp; P2P_DEV_USER_REJECTED) {
 p2p_set_state(p2p, P2P_IDLE);
 return;
 }
 }
+else {
+dev-&amp;gt;go_neg_req_sent--;
+}
 
 if (!success &amp;amp;&amp;amp;
     (dev-&amp;gt;info.dev_capab &amp;amp; P2P_DEV_CAPAB_CLIENT_DISCOVERABILITY) &amp;amp;&amp;amp;
diff --git a/src/p2p/p2p_go_neg.c b/src/p2p/p2p_go_neg.c
old mode 100644
new mode 100755
index 2bf48b3..727d445
--- a/src/p2p/p2p_go_neg.c
+++ b/src/p2p/p2p_go_neg.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -220,6 +220,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int p2p_connect_send(struct p2p_data *p2p, struct p2p_device *dev)
 p2p-&amp;gt;go_neg_peer = dev;
 dev-&amp;gt;flags |= P2P_DEV_WAIT_GO_NEG_RESPONSE;
 dev-&amp;gt;connect_reqs++;
+dev-&amp;gt;go_neg_req_sent++;
 if (p2p_send_action(p2p, freq, dev-&amp;gt;info.p2p_device_addr,
     p2p-&amp;gt;cfg-&amp;gt;dev_addr, dev-&amp;gt;info.p2p_device_addr,
     wpabuf_head(req), wpabuf_len(req), 200) &amp;lt; 0) {
&lt;/pre&gt;</description>
    <dc:creator>Neeraj Kumar Garg</dc:creator>
    <dc:date>2012-05-21T06:28:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26156">
    <title>RE: [PATCH] Speed up connection time during ASSOC retry</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26156</link>
    <description>&lt;pre&gt;Forgot to add &amp;lt;signed-hostap&amp;gt; tag in the previous mail. Please Ignore the prev mail.

In current implementation, authentication timer continues to run even after the
driver has reported ASSOC_REJECT. Then the association is retried on authentication
timeout which is 10secs.

The below patch cancels the authentication timeout on ASSOC_REJECT and initiates an
scan for association. Kindly see whether the patch is fine.


[PATCH] Speed up connection time during ASSOC retry

Avoid waiting for authentication timeout, If driver reports
ASSOC-REJECT

Signed-hostap: Jithu Jance &amp;lt;jithu&amp;lt; at &amp;gt;broadcom.com&amp;gt;
---
 wpa_supplicant/events.c           |   19 +++++++++++++++++++
 wpa_supplicant/wpa_supplicant.c   |    3 +++
 wpa_supplicant/wpa_supplicant_i.h |    1 +
 3 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 407407a..25c8f90 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2238,6 +2238,25 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
                                data-&amp;gt;assoc_reject.status_code);
                if (wpa_s-&amp;gt;drv_flags &amp;amp; WPA_DRIVER_FLAGS_SME)
                        sme_event_assoc_reject(wpa_s, data);
+
+               /* If assoc reject is reported by the driver, then avoid
+                * waiting for  the authentication timeout. Cancel the
+                * authentication timeout and retry the assoc.
+                */
+               if(wpa_s-&amp;gt;assoc_retries++ &amp;lt; 3) {
+                       wpa_printf(MSG_ERROR, "Retrying assoc "
+                       "Iteration:%d", wpa_s-&amp;gt;assoc_retries);
+                       wpa_supplicant_cancel_auth_timeout(wpa_s);
+
+                       /* Clear the states */
+                       wpa_sm_notify_disassoc(wpa_s-&amp;gt;wpa);
+                       wpa_supplicant_disassociate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
+
+                       wpa_s-&amp;gt;reassociate = 1;
+                       wpa_supplicant_req_scan(wpa_s, 1, 0);
+               } else {
+                       wpa_s-&amp;gt;assoc_retries = 0;
+               }
                break;
        case EVENT_AUTH_TIMED_OUT:
                if (wpa_s-&amp;gt;drv_flags &amp;amp; WPA_DRIVER_FLAGS_SME)
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 09b1640..12adb1b 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -585,6 +585,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s,
                wpa_supplicant_state_txt(wpa_s-&amp;gt;wpa_state),
                wpa_supplicant_state_txt(state));

+       if(state == WPA_ASSOCIATED || (state &amp;lt;= WPA_INACTIVE))
+               wpa_s-&amp;gt;assoc_retries = 0;
+
        if (state != WPA_SCANNING)
                wpa_supplicant_notify_scanning(wpa_s, 0);

diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h
index 23ffd7d..07837e2 100644
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -286,6 +286,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct wpa_supplicant {
        struct wpa_bss *current_bss;
        int ap_ies_from_associnfo;
        unsigned int assoc_freq;
+       unsigned int assoc_retries;

        /* Selected configuration (based on Beacon/ProbeResp WPA IE) */
        int pairwise_cipher;
--
1.7.4.1


Thanks,

Jithu Jance
_______________________________________________
HostAP mailing list
HostAP&amp;lt; at &amp;gt;lists.shmoo.com
http://lists.shmoo.com/mailman/listinfo/hostap
&lt;/pre&gt;</description>
    <dc:creator>Jithu Jance</dc:creator>
    <dc:date>2012-05-21T06:24:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26155">
    <title>[PATCH] Speed up connection time during ASSOC retry</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26155</link>
    <description>&lt;pre&gt;

In current implementation, authentication timer continues to run even after the
driver has reported ASSOC_REJECT. Then the association is retried on authentication
timeout which is 10secs.

The below patch cancels the authentication timeout on ASSOC_REJECT and initiates an
scan for association. Kindly see whether the patch is fine.


[PATCH] Speed up connection time during ASSOC retry

Avoid waiting for authentication timeout, If driver reports
ASSOC-REJECT

Signed-off-by: Jithu Jance &amp;lt;jithu&amp;lt; at &amp;gt;broadcom.com&amp;gt;
---
 wpa_supplicant/events.c           |   19 +++++++++++++++++++
 wpa_supplicant/wpa_supplicant.c   |    3 +++
 wpa_supplicant/wpa_supplicant_i.h |    1 +
 3 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 407407a..25c8f90 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2238,6 +2238,25 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
 data-&amp;gt;assoc_reject.status_code);
 if (wpa_s-&amp;gt;drv_flags &amp;amp; WPA_DRIVER_FLAGS_SME)
 sme_event_assoc_reject(wpa_s, data);
+
+/* If assoc reject is reported by the driver, then avoid
+ * waiting for  the authentication timeout. Cancel the
+ * authentication timeout and retry the assoc.
+ */
+if(wpa_s-&amp;gt;assoc_retries++ &amp;lt; 3) {
+wpa_printf(MSG_ERROR, "Retrying assoc "
+"Iteration:%d", wpa_s-&amp;gt;assoc_retries);
+wpa_supplicant_cancel_auth_timeout(wpa_s);
+
+/* Clear the states */
+wpa_sm_notify_disassoc(wpa_s-&amp;gt;wpa);
+wpa_supplicant_disassociate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
+
+wpa_s-&amp;gt;reassociate = 1;
+wpa_supplicant_req_scan(wpa_s, 1, 0);
+} else {
+wpa_s-&amp;gt;assoc_retries = 0;
+}
 break;
 case EVENT_AUTH_TIMED_OUT:
 if (wpa_s-&amp;gt;drv_flags &amp;amp; WPA_DRIVER_FLAGS_SME)
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 09b1640..12adb1b 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -585,6 +585,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s,
 wpa_supplicant_state_txt(wpa_s-&amp;gt;wpa_state),
 wpa_supplicant_state_txt(state));
 
+if(state == WPA_ASSOCIATED || (state &amp;lt;= WPA_INACTIVE))
+wpa_s-&amp;gt;assoc_retries = 0;
+
 if (state != WPA_SCANNING)
 wpa_supplicant_notify_scanning(wpa_s, 0);
 
diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h
index 23ffd7d..07837e2 100644
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -286,6 +286,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct wpa_supplicant {
 struct wpa_bss *current_bss;
 int ap_ies_from_associnfo;
 unsigned int assoc_freq;
+unsigned int assoc_retries;
 
 /* Selected configuration (based on Beacon/ProbeResp WPA IE) */
 int pairwise_cipher;
&lt;/pre&gt;</description>
    <dc:creator>Jithu Jance</dc:creator>
    <dc:date>2012-05-21T06:17:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26154">
    <title>[PATCH] Set default P2P_MAX_CLIENT_IDLE to 20</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26154</link>
    <description>&lt;pre&gt;
Consider the disconnect event generated due to EAP-FAILURE(after WPS handshake) during the P2P connection.

In this disconnect context, the group idle timer will be set to 10 and assoc retry starts. If the connection doesn't go through in
the first attempt the group will be removed. This is because the authentication timeout happens at 10secs and the assoc
will be retried only after that.

I feel setting to twenty seconds will help to retry at least two times. Please see whether it is okay.

Setting authentication timeout to 5secs is also another option. But not sure whether there are some systems requiring 10secs
time.


[PATCH] Set default P2P_MAX_CLIENT_IDLE to 20

Signed-hostap: Jithu Jance &amp;lt;jithu&amp;lt; at &amp;gt;broadcom.com&amp;gt;
---
 wpa_supplicant/p2p_supplicant.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index 44aadf1..4054b3b 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -44,7 +44,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
  * How many seconds to try to reconnect to the GO when connection in P2P client
  * role has been lost.
  */
-#define P2P_MAX_CLIENT_IDLE 10
+#define P2P_MAX_CLIENT_IDLE 20
 #endif /* P2P_MAX_CLIENT_IDLE */
 
 #ifndef P2P_MAX_INITIAL_CONN_WAIT
&lt;/pre&gt;</description>
    <dc:creator>Jithu Jance</dc:creator>
    <dc:date>2012-05-21T05:16:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26153">
    <title>[WPS] responding with WPS_NACK to M7 from AP</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26153</link>
    <description>&lt;pre&gt;Hi all,
  I have a question on current WPS code in wpa_supplicant. In
src/wps/wps_registrar.c Function: wps_process_m7...see foll. piece of code.

    if (wps_parse_msg(decrypted, &amp;amp;eattr) &amp;lt; 0 ||
        wps_process_key_wrap_auth(wps, decrypted, eattr.key_wrap_auth) ||
        wps_process_e_snonce2(wps, eattr.e_snonce2) ||
        wps_process_ap_settings_r(wps, &amp;amp;eattr)) {
        wpabuf_free(decrypted);
        wps-&amp;gt;state = SEND_WSC_NACK;
        return WPS_CONTINUE;
    }

Function wps_process_ap_settings_r returns non-zero value, if STA does not
want to re-configure AP. In this case, STA responds to AP by sending
WSC_NACK message.
But, as per WSC 2.0 specification,  WSC_NACK is to be sent to indicate a
authenticating or processing error. Is sending WSC_NACK ok in this case?

Thanks
- Kiran
_______________________________________________
HostAP mailing list
HostAP&amp;lt; at &amp;gt;lists.shmoo.com
http://lists.shmoo.com/mailman/listinfo/hostap
&lt;/pre&gt;</description>
    <dc:creator>Kiran Divekar</dc:creator>
    <dc:date>2012-05-19T06:24:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26152">
    <title>Re: how to get lists of STAs that connected to hostapd.</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26152</link>
    <description>&lt;pre&gt;something like that
iw wlan0 station dump
&lt;/pre&gt;</description>
    <dc:creator>Alex Vorona</dc:creator>
    <dc:date>2012-05-18T10:25:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.drivers.hostap/26151">
    <title>how to get lists of STAs that connected to hostapd.</title>
    <link>http://permalink.gmane.org/gmane.linux.drivers.hostap/26151</link>
    <description>&lt;pre&gt;Hi there, 

We built SoftAP with hostapd.
Does aynone know how to get lists of Wi-Fi STAs that connected to hostapd?

Regards
Keiji
&lt;/pre&gt;</description>
    <dc:creator>Keiji KAWAMURA</dc:creator>
    <dc:date>2012-05-18T02:07:24</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.linux.drivers.hostap">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.linux.drivers.hostap</link>
  </textinput>
</rdf:RDF>

