Re: [RFC net-next] pppoe: remove session socket receive support

From: Qingfang Deng

Date: Sun Aug 09 2026 - 12:17:50 EST


Hi Pali,

On 8/9/2026 10:58 PM, Pali Rohár wrote:
Hello, I would like to point out that "no know open source
userspace implementation" does not have to mean that there cannot be
some closed source or not publicly available. But I agree that
probability is too low.

Anyway, could you describe what is this functionality (which is being
removed) doing? Or how to use it? From the code and description I have
not figure out how it is suppose to be used or for what kind of scenario
or use case can be it hypothetically used.

Would be nice to know what exactly is being removing and what userspace
applications cannot do after applying this change.

pppoe_recvmsg()/sendmsg() can be used to receive/send PPPoE session packets without the generic layer. I just found out that the RP-PPPoE package, maintained by Dianne Skoll, actually provides a standalone PPPoE client that does not depend on pppd and instead uses these syscalls. So long as the package is still being maintained, these syscalls should not be removed.

The state transition still needs to be fixed, though. It's done by the PPPIOCGCHAN ioctl. Note that despite the "Getter" semantic, it actually alters a socket's internal state by setting the PPPOX_BOUND bit, to indicate that the socket is now "bound" to the generic PPP layer. The code is carried over from the very first version of the PPPoX driver and the intention of this behavior was not known. A fix may move the transition to a non-getter ioctl and drain the socket receive queue once a socket is bound.

Best regards,
Qingfang