|
@@ -694,6 +694,12 @@ static struct slave *rlb_arp_xmit(struct sk_buff *skb, struct bonding *bond)
|
|
struct arp_pkt *arp = arp_pkt(skb);
|
|
struct arp_pkt *arp = arp_pkt(skb);
|
|
struct slave *tx_slave = NULL;
|
|
struct slave *tx_slave = NULL;
|
|
|
|
|
|
|
|
+ /* Don't modify or load balance ARPs that do not originate locally
|
|
|
|
+ * (e.g.,arrive via a bridge).
|
|
|
|
+ */
|
|
|
|
+ if (!bond_slave_has_mac(bond, arp->mac_src))
|
|
|
|
+ return NULL;
|
|
|
|
+
|
|
if (arp->op_code == htons(ARPOP_REPLY)) {
|
|
if (arp->op_code == htons(ARPOP_REPLY)) {
|
|
/* the arp must be sent on the selected
|
|
/* the arp must be sent on the selected
|
|
* rx channel
|
|
* rx channel
|