]> git.hungrycats.org Git - linux/commitdiff
[bonding 2.6] fix 802.3ad long fail over with high UDP Tx stress
authorAmir Noam <amir.noam@intel.com>
Thu, 11 Sep 2003 10:52:20 +0000 (06:52 -0400)
committerStephen Hemminger <shemminger@osdl.org>
Thu, 11 Sep 2003 10:52:20 +0000 (06:52 -0400)
drivers/net/bonding/bond_3ad.c
drivers/net/bonding/bond_3ad.h

index aaeb0178cd0a38f2b1a874eed229ad600009e42b..3431b2e0899616aec7c7f208ca72aaf450897e35 100644 (file)
  * 2003/05/01 - Shmulik Hen <shmulik.hen at intel dot com>
  *     - Renamed bond_3ad_link_status_changed() to
  *       bond_3ad_handle_link_change() for compatibility with TLB.
+ *
+ * 2003/05/20 - Amir Noam <amir.noam at intel dot com>
+ *     - Fix long fail over time when releasing last slave of an active
+ *       aggregator - send LACPDU on unbind of slave to tell partner this
+ *       port is no longer aggregatable.
+ *
+ * 2003/06/25 - Tsippy Mendelson <tsippy.mendelson at intel dot com>
+ *     - Send LACPDU as highest priority packet to further fix the above
+ *       problem on very high Tx traffic load where packets may get dropped
+ *       by the slave.
  */
 
 #include <linux/skbuff.h>
@@ -45,6 +55,7 @@
 #include <linux/spinlock.h>
 #include <linux/ethtool.h>
 #include <linux/if_bonding.h>
+#include <linux/pkt_sched.h>
 #include "bonding.h"
 #include "bond_3ad.h"
 
@@ -905,6 +916,7 @@ static int ad_lacpdu_send(struct port *port)
        skb->mac.raw = skb->data;
        skb->nh.raw = skb->data + ETH_HLEN;
        skb->protocol = PKT_TYPE_LACPDU;
+       skb->priority = TC_PRIO_CONTROL;
 
        lacpdu_header = (struct lacpdu_header *)skb_put(skb, length);
 
index 58dde6673193f5b440358d7e173c9761accf75cf..12a5d20ca1b71a133e609a3c5656f1405ca24a7d 100644 (file)
@@ -165,7 +165,7 @@ typedef struct marker {
        //  = 0x02  (marker response information)
        u8 marker_length;        //  = 0x16
        u16 requester_port;      //   The number assigned to the port by the requester
-       struct mac_addr requester_system;      //   The requester\92s system id
+       struct mac_addr requester_system;      //   The requester's system id
        u32 requester_transaction_id;   //   The transaction id allocated by the requester,
        u16 pad;                 //  = 0
        u8 tlv_type_terminator;      //  = 0x00