Subject: Re: [PATCH net-next 2/2] bonding: use the correct ether type for alb

From: Jay Vosburgh <[email-masked]>
Date: Fri, 14 Mar 2014 12:27:19 -0700

David Miller <[email-masked]> wrote:

>From: Veaceslav Falico <[email-masked]>
>Date: Fri, 14 Mar 2014 19:42:52 +0100
>
>> On Fri, Mar 14, 2014 at 02:29:35PM -0400, David Miller wrote:
>>>From: Veaceslav Falico <[email-masked]>
>>>Date: Thu, 13 Mar 2014 12:41:58 +0100
>>>
>>>> @@ -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);
>>>
>>>Had this really never worked properly at all?
>> 
>> Yep, but only in cases where the hw/sw didn't filter out broken
>> packets
>> *before* arp processing, as far as I can tell.
>
>Hmmm... what I meant was, was anyone able to receive these packets?
>I think the answer is no.

	My recollection is that the intended target of the packets was
the switch the system was connected to, and their only function was to
update the MAC table of the switch (via the source MAC of the frame).

	How well they really work today is debateable (meaning that I'm
not even sure they're necessary, at least not as a regular
transmission), but I recall discussing this with somebody at Intel years
ago and these were evidently necessary at one time.

	The ETH_P_LOOP Linux ended up with was (again, as I recall) a
simplification of some kind of active monitoring system on the Intel ANS
product that the alb/tlb code was derived from, wherein some agent would
receive and reply to the frames.  The ANS product used ethertype 0x886d
for its probes, however.

	-J

---
	-Jay Vosburgh, IBM Linux Technology Center, [email-masked]