Thread (14 messages) 14 messages, 6 authors, 2015-11-30

Re: [PATCH] packet: Allow packets with only a header (but no payload)

From: Willem de Bruijn <willemb@google.com>
Date: 2015-07-21 16:51:35

On Tue, Jul 21, 2015 at 12:38 PM, Martin Blumenstingl
[off-list ref] wrote:
Hi Willem,

On Tue, Jul 21, 2015 at 6:28 PM, Willem de Bruijn [off-list ref] wrote:
quoted
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 */
OK, I guess it's best to find out what the purpose of this comment is.
quoted
so allowing a header-only packet while correct in your case may not be
safe in some edge cases (specific device drivers?).
I'm wondering how a good fix would look like (I can think of a few
things, like renaming hard_header_len to something min_packet_size)?
I am open for suggestions since I have zero knowledge about the inner
workings of the packet framework.
I don't see a simple way of verifying the safety of allowing packets
without data short of a code audit, which would be huge, especially
when taking device driver logic into account. Perhaps someone
remembers why that statement was added and what edge case(s)
it refers to. I'm afraid that I don't. It was added in 69e3c75f4d54. I
added the author to this thread.
quoted
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.
I totally agree with you that it's a bad fix if this means that we
could break other drivers.
My primary goal was to fix PPPoE connections - I guess I should have
simply added "RFC" to the subject.


Regards,
Martin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help