On Wed, Jan 05, 2022 at 10:30:09AM -0500, James Carlson wrote: > On 1/5/22 08:19, Guillaume Nault wrote: > > On Wed, Jan 05, 2022 at 03:48:42AM -0800, Eric Dumazet wrote: > >> From: Eric Dumazet <edumazet@xxxxxxxxxx> > >> > >> It seems pretty clear ppp layer assumed user space > >> would always be kind to provide enough data > >> in their write() to a ppp device. > >> > >> This patch makes sure user provides at least > >> 2 bytes. > >> > >> It adds PPP_PROTO_LEN macro that could replace > >> in net-next many occurrences of hard-coded 2 value. > > > > The PPP header can be compressed to only 1 byte, but since 2 bytes is > > assumed in several parts of the code, rejecting such packets in > > ppp_xmit() is probably the best we can do. > > The only ones that can be compressed are those less than 0x0100, which > are (intentionally) all network layer protocols. We should be getting > only control protocol messages though the user-space interface, not > network layer, so I'd say it's not just the best we can do, but indeed > the right thing to do by design. Well, I know of at least one implementation that used to transmit data by writing on ppp unit file descriptors. That was a hack to work around some other problems. Not a beautiful one, but it worked.