[RFC] P2P: Handling single channel concurrency

Jithu Jance jithujance
Wed Jan 11 10:40:26 PST 2012


Thanks Jouni & Reinette for your comments. Please find my comments inline.
* *

>
> > 3. If GO is not able to move the channel or the driver doesn't support
> the functionality, remove the P2P GO interface.
> > 4. If the conflicting interface is a P2P Client, disconnect & remove the
> client interface.
>
> How about rejecting the new STA connection instead of killing existing
> connection? In other words, some entity above wpa_supplicant would need
> to kill the group first before being able to get the STA connection in
> such a case.
>

Do you mean that we will keep the BSS disabled and then let the
application/entity above know about the frequency conflict. Then the
application would take a call whether to remove the p2p group or not. If
application choose to remove p2p_group, it may need to enable the disabled
BSS so that the STA connection can proceed. If this is what you meant, then
i guess probably we might have to define a new event which will notify the
application of the frequency conflict with enough data [the network id of
the bss in conflict so that the application can enable the network blob
after removing the P2P group]. Please correct me if my understanding is
wrong.
If this is fine with you, i shall generate a new patch and send it to you.


>
> > diff --git a/src/drivers/driver.h b/src/drivers/driver.h
> > @@ -2483,6 +2483,17 @@ struct wpa_driver_ops {
> > +     /**
> > +      * go_switch_channel - Announce channel switch and migrate the GO
> to a
> > +      * given frequency.
> > +      * @priv: Private driver interface data
> > +      * @freq: frequency in MHz
> > +      * Returns: 0 on success, -1 on failure
> > +      *
> > +      * This function is used to move the GO to the legacy STA channel
> to avoid
> > +      * frequency conflict in single channel concurrency.
> > +      */
> > +     int (*go_switch_channel)(void *priv, unsigned int freq);
>
> I would assume that this could be made generic to both non-P2P AP and
> P2P GO, so the same could be just switch_channels instead of something
> P2P specific.
>

I will update this part.


>
> > diff --git a/wpa_supplicant/wpa_supplicant.c
> b/wpa_supplicant/wpa_supplicant.c
> > @@ -1415,6 +1416,16 @@ void wpa_supplicant_associate(struct
> wpa_supplicant *wpa_s,
> > +     /* If multichannel concurrency is not supported, check for any
> frequency
> > +      * conflict and take appropriate action.
> > +      */
> > +     if (((freq = wpa_drv_shared_freq(wpa_s)) > 0) && (freq !=
> params.freq) &&
> > +             !(wpa_s->drv_flags &
> WPA_DRIVER_FLAGS_MULTI_CHANNEL_CONCURRENT)) {
>
> I would reorder those conditions to avoid the wpa_drv_shared_freq() call
> is multi-channel concurrency is supported.
>

Agreed. :)





- Jithu Jance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.shmoo.com/pipermail/hostap/attachments/20120111/3795fe45/attachment-0001.htm 



More information about the Hostap mailing list