Re: [PATCH] packet: Allow packets with only a header (but no payload)
From: Willem de Bruijn <willemb@google.com>
Date: 2015-07-21 16:29:14
On Tue, Jul 21, 2015 at 12:14 PM, Martin Blumenstingl [off-list ref] wrote:
9c70776 added validation for the packet size in packet_snd. This change enforced that every packet needs a long enough header and at least one byte payload. However, when trying to establish a PPPoE connection the following message is printed every time a PPPoE discovery packet is sent: pppd: packet size is too short (24 <= 24) From what I can see in the PPPoE code the "PADI" discovery packet can consist of only a header with no payload (when there is neither a service name nor a Host-Uniq configured).
Interesting. 9c7077622dd9 only extended the check from tpacket_snd to
packet_snd to make the two paths equivalent. The existing check had the
ominous statement
/* net device doesn't like empty head */
so allowing a header-only packet while correct in your case may not be
safe in some edge cases (specific device drivers?).
This was also discussed previously
http://www.spinics.net/lists/netdev/msg309677.html
In any case, I don't think that reverting the patch and restoring the old
inconsistent state is a fix.