[Trac #915] iperf/tcp fails between meshed xo's
Zarro Boogs per Child
bugtracker at laptop.org
Fri Mar 2 05:36:43 EST 2007
#915: iperf/tcp fails between meshed xo's
----------------------+-----------------------------------------------------
Reporter: jcardona | Owner: marcelo
Type: defect | Status: assigned
Priority: high | Milestone: BTest-3
Component: wireless | Resolution:
Keywords: |
----------------------+-----------------------------------------------------
Comment (by jcardona):
A test: in the driver, swap the virtual and the infra interface, such
that mesh
traffic will go through eth0 and infra traffic through msh0. Now msh0
still shows
packet losses even though no mesh traffic is passing through it... and no
losses on
the eth0 interface where mesh traffic is flowing (verified with sniffer).
So the diagnostic is clear: '''transmission flow control on the mesh
virtual interface is broken'''. Patch attached in case someone would like
to confirm the diagnostic (it's a bit late, so I might have dreamed the
whole thing...)
{{{
diff --git a/drivers/net/wireless/libertas/if_usb.c
b/drivers/net/wireless/libertas/if_usb.c
diff --git a/drivers/net/wireless/libertas/main.c
b/drivers/net/wireless/libertas/main.c
index 91bcea9..f5e7f4b 100644
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
@@ -378,7 +378,7 @@ static int mesh_pre_start_xmit(struct sk
{
wlan_private *priv = dev->priv;
ENTER();
- SET_MESH_FRAME(skb);
+ UNSET_MESH_FRAME(skb);
LEAVE();
return wlan_hard_start_xmit(skb, priv->wlan_dev.netdev);
@@ -390,7 +390,7 @@ static int mesh_pre_start_xmit(struct sk
*/
static int wlan_pre_start_xmit(struct sk_buff *skb, struct net_device
*dev) {
ENTER();
- UNSET_MESH_FRAME(skb);
+ SET_MESH_FRAME(skb);
LEAVE();
return wlan_hard_start_xmit(skb, dev);
}
diff --git a/drivers/net/wireless/libertas/rx.c
b/drivers/net/wireless/libertas/rx.c
index abe4b04..c71c121 100644
--- a/drivers/net/wireless/libertas/rx.c
+++ b/drivers/net/wireless/libertas/rx.c
@@ -140,7 +140,7 @@ int libertas_upload_rx_packet(wlan_priva
{
lbs_pr_debug(1, "skb->data=%p\n", skb->data);
- if(IS_MESH_FRAME(skb))
+ if(! IS_MESH_FRAME(skb))
skb->dev = priv->mesh_dev;
else
skb->dev = priv->wlan_dev.netdev;
}}}
--
Ticket URL: <http://dev.laptop.org/ticket/915#comment:9>
One Laptop Per Child <http://laptop.org/>
More information about the Bugs
mailing list