This library negotiates a PPPoE channel. It handles the discovery stage and leaves the session stage to the kernel. A further PPP library is needed to actually set up a PPP unit (negotatie LCP, IPCP and do authentication), so in isolation this is not yet very useful.
The test program has two modes:
# ./test-pppoe
will create a veth tunnel in a new network namespace, start pppoe-server on one end and this client library on the other. The pppd server will time out as no LCP is performed, and the client will then shut down gracefully.
# ./test-pppoe eth0
will run the client on eth0 (or any other netdev), and requires a PPPoE server to be reachable on the local link.
cda391c libsystemd-networkd: introduce sd-pppoe library
.gitignore | 1 +
Makefile.am | 13 +
src/libsystemd-network/sd-pppoe.c | 808 +++++++++++++++++++++++++++++++++++
src/libsystemd-network/test-pppoe.c | 181 ++++++++
src/systemd/sd-pppoe.h | 53 +++
5 files changed, 1056 insertions(+)
Upstream: github.com