<div dir="ltr"><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">--Resending from registered email ID as email bounced from hostap mailing list---<br><br></span><div><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Hi Jouni/Johannes,</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Implementations may vary from vendor to vendor. One vendor implements it this way does not mean all should follow the same, isnt it?</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Interface capabilities/combination advertised by wiphy are per hardware device and there is no restriction on how these this combination can be supported. Single hardware device can be emulated to support multiple virtual interfaces with different capabilities and that&#39;s what we intend to do.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">So when wiphy capabilities indicate support for AP interface, it does not mean we should expect very first interface to be of AP type.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Driver can have multiple virtual interfaces and one of them would support AP operation. So having right to know interface type is something that is not expected??</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Our current implementation cannot modify interface type(AP&lt;=&gt;STA) but still we are able to support simultaneous AP/STA operations using hostapd/wpa_supplicant.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Connman expects to control both using wpa_supplicant and this is where we need to have support from supplicant to know interface type.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Also about notification handlers, if you are not OK with it, I would completely remove notification handler related code.</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Thanks,</span><br style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="color:rgb(0,0,0);font-family:monospace;font-size:12.7273px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Avinash</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 22, 2014 at 2:45 PM, Jouni Malinen <span dir="ltr">&lt;<a href="mailto:j@w1.fi" target="_blank">j@w1.fi</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Dec 18, 2014 at 01:59:18PM +0530, Avinash Patil wrote:<br>
&gt; Simultaneous AP/STA operations are expected using wpa_supplicant.<br>
&gt; Since mlan0 is interface with smaller ifindex, connman tries to start AP<br>
&gt; operation<br>
&gt; on mlan0 interface and fails because it cannot change iftype.<br>
&gt;<br>
&gt; So an approach is expected where current interface type(station/AP) for<br>
&gt; particular ifindex can be known beforehand.<br>
&gt; This information would be used by Connman to decide whether to start AP or<br>
&gt; move to next interface.<br>
<br>
</span>I don&#39;t understand this logic at all. Shouldn&#39;t the known capabilities,<br>
not the current interface type, be used to select which interface is<br>
used? wpas_dbus_getter_capabilities() is already exposing whether an<br>
interface can support AP mode.<br>
<span class=""><br>
&gt; Similar logic can be extended to other interfaces- e.g. start station<br>
&gt; operations only when iftyt)pe is STATION; start<br>
&gt; P2P client operations only when iftype P2P_CLIENT. This is reason why I<br>
&gt; have used  (nl80211_iftype_str() output).<br>
&gt; To ensure output string to dbus application is driver independent, I will<br>
&gt; modify patch so as to send generic strings e.g.-<br>
&gt; AP, STATION, P2P_CLIENT &amp; P2P_GO. All other strings can be moved to<br>
&gt; &quot;UNKNOWN&quot; iftype for now.<br>
<br>
</span>I don&#39;t really see any point in exposing the current interface type. I<br>
would not have any issues with exposing supported interface type(s).<br>
<span class=""><br>
&gt; Notification handlers were suggested by Dan Williams so that connection<br>
&gt; manager or other applications would come to know when iftype changes.<br>
&gt; I have already ensured notification handlers are introduced at minimal<br>
&gt; places- only for functions where mode change operation happens.<br>
&gt; Please let me know if any of these look redundant to you and I would remove<br>
&gt; them.<br>
<br>
</span>What would these be used for? I simply don&#39;t see the benefit or use case<br>
for exposing this. Your use case of being able to know whether AP mode<br>
operation can be used has nothing to do with what the current mode at<br>
any point in time happens to be. It has everything to do what the<br>
interface is capable of.. The current mode of an unused interface is<br>
pretty pointless information and if the interface is in use, you can<br>
already determine what its type is based on what kind of connection it<br>
is used for.<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
Jouni Malinen                                            PGP id EFC895FA<br>
</div></div></blockquote></div><br></div>