summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-03-15 06:21:04 +0400
committerDavid S. Miller <davem@davemloft.net>2014-03-15 06:21:04 +0400
commit4c4e4113db249c828fffb286bc95ffb255e081f5 (patch)
treece8994f50bbedb7bf194814d0e491dc0de5d10f7
parent21396689cc093f2ab7ae29c9937e94e51ae96732 (diff)
parent96a0922c2349ccfbf5583708c3602945a755c874 (diff)
downloadlinux-4c4e4113db249c828fffb286bc95ffb255e081f5.tar.xz
Merge branch 'alb_learning'
Veaceslav Falico says: ==================== bonding: use correct ether type for alb There have been reports that, while using the ETH_P_LOOP ether type (0x0060), the ether type is treated as its packet length. To avoid that and to not break already existing apps - add new ether type ETH_P_LOOPBACK that contains the correct id - 0x9000. ==================== Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
-rw-r--r--drivers/net/bonding/bond_alb.c2
-rw-r--r--include/uapi/linux/if_ether.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
index 9cf836b67b15..060b6117aeac 100644
--- a/drivers/net/bonding/bond_alb.c
+++ b/drivers/net/bonding/bond_alb.c
@@ -1005,7 +1005,7 @@ static void alb_send_lp_vid(struct slave *slave, u8 mac_addr[],
memset(&pkt, 0, size);
ether_addr_copy(pkt.mac_dst, mac_addr);
ether_addr_copy(pkt.mac_src, mac_addr);
- pkt.type = cpu_to_be16(ETH_P_LOOP);
+ pkt.type = cpu_to_be16(ETH_P_LOOPBACK);
skb = dev_alloc_skb(size);
if (!skb)
diff --git a/include/uapi/linux/if_ether.h b/include/uapi/linux/if_ether.h
index 750ba67e0dc3..0f8210b8e0bc 100644
--- a/include/uapi/linux/if_ether.h
+++ b/include/uapi/linux/if_ether.h
@@ -90,6 +90,7 @@
#define ETH_P_TDLS 0x890D /* TDLS */
#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
#define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */
+#define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */
#define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
#define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
#define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */