Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+2 -1
+1 -1
drivers/net/bonding/bond_alb.c
··· 1005 1005 memset(&pkt, 0, size); 1006 1006 ether_addr_copy(pkt.mac_dst, mac_addr); 1007 1007 ether_addr_copy(pkt.mac_src, mac_addr); 1008 - pkt.type = cpu_to_be16(ETH_P_LOOP); 1008 + pkt.type = cpu_to_be16(ETH_P_LOOPBACK); 1009 1009 1010 1010 skb = dev_alloc_skb(size); 1011 1011 if (!skb)
+1
include/uapi/linux/if_ether.h
··· 90 90 #define ETH_P_TDLS 0x890D /* TDLS */ 91 91 #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ 92 92 #define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */ 93 + #define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */ 93 94 #define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ 94 95 #define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ 95 96 #define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */