Patchwork P2P: fill bridge interface on GO creation

login
register
mail settings
Submitter Rajkumar Manoharan
Date Aug. 8, 2012, 3:55 p.m.
Message ID <1344441322-2942-1-git-send-email-rmanohar@qca.qualcomm.com>
Download mbox | patch
Permalink /patch/175943/
State Changes Requested
Headers show

Comments

Rajkumar Manoharan - Aug. 8, 2012, 3:55 p.m.
Fill bridge interface name while creating new P2P GO interface. No doing
so, is causing to EAP handshake failure on p2p negotiation when group
interface was brigded.

Signed-hostap: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
---
 wpa_supplicant/p2p_supplicant.c | 1 +
 1 file changed, 1 insertion(+)
Jouni Malinen - Aug. 9, 2012, 11:04 a.m.
On Wed, Aug 08, 2012 at 09:25:22PM +0530, Rajkumar Manoharan wrote:
> Fill bridge interface name while creating new P2P GO interface. No doing
> so, is causing to EAP handshake failure on p2p negotiation when group
> interface was brigded.

Why would a P2P GO interface be in a bridge? The P2P specification
explicitly describes cross connection to use "any mechanism above layer
2" and as such, layer 2 bridging may not be a suitable mechanism for
this. And even if this were allowed, it would be unclear how the new
interface would get added to the bridge.
Rajkumar Manoharan - Aug. 9, 2012, 12:03 p.m.
On Thu, Aug 09, 2012 at 02:04:01PM +0300, Jouni Malinen wrote:
> On Wed, Aug 08, 2012 at 09:25:22PM +0530, Rajkumar Manoharan wrote:
> > Fill bridge interface name while creating new P2P GO interface. No doing
> > so, is causing to EAP handshake failure on p2p negotiation when group
> > interface was brigded.
> 
> Why would a P2P GO interface be in a bridge? The P2P specification
> explicitly describes cross connection to use "any mechanism above layer
> 2" and as such, layer 2 bridging may not be a suitable mechanism for
> this. And even if this were allowed, it would be unclear how the new
> interface would get added to the bridge.
>
I tried to bridge ethernet and P2P GO like we do it for AP and ethernet.
Thanks for the spec. reference. I did my testing by creating a bridge interface
and started supplicant with bridge option then started autonomus GO. Later
add the group interface as bridge member by bridge-utils.

-Rajkumar
Jouni Malinen - Aug. 9, 2012, 12:55 p.m.
On Thu, Aug 09, 2012 at 05:33:52PM +0530, Rajkumar Manoharan wrote:
> I tried to bridge ethernet and P2P GO like we do it for AP and ethernet.
> Thanks for the spec. reference. I did my testing by creating a bridge interface
> and started supplicant with bridge option then started autonomus GO. Later
> add the group interface as bridge member by bridge-utils.

While you could do that that with non-P2P AP interface, the P2P cross
connection is supposed to use masquerading NAT and IP routing instead of
layer 2 bridge.

In addition, the sequence where a new interface gets added to a bridge
is not really something that is handled by wpa_supplicant currently.
This would need to be more like hostapd implementation or some other
ways of more dynamically changing the parameters. Just assuming that the
parent interface and the GO (or any other separately added interface)
will end up getting added to the same bridge does not sound generic
enough.

Patch

diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index 0d94ee0..0b76567 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
@@ -942,6 +942,7 @@  wpas_p2p_init_group_interface(struct wpa_supplicant *wpa_s, int go)
 	}
 
 	os_memset(&iface, 0, sizeof(iface));
+	iface.bridge_ifname = wpa_s->bridge_ifname;
 	iface.ifname = wpa_s->pending_interface_name;
 	iface.driver = wpa_s->driver->name;
 	iface.ctrl_interface = wpa_s->conf->ctrl_interface;