[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