lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 1 Oct 2020 09:59:26 +0100 From: James Chapman <jchapman@...alix.com> To: Tom Parkin <tparkin@...alix.com>, netdev@...r.kernel.org Subject: Re: [PATCH net-next 0/6] l2tp: add ac/pppoe driver On 30/09/2020 22:07, Tom Parkin wrote: > L2TPv2 tunnels are often used as a part of a home broadband connection, > using a PPP link to connect the subscriber network into the Internet > Service Provider's network. > > In this scenario, PPPoE is widely used between the L2TP Access > Concentrator (LAC) and the subscriber. The LAC effectively acts as a > PPPoE server, switching PPP frames from incoming PPPoE packets into an > L2TP session. The PPP session is then terminated at the L2TP Network > Server (LNS) on the edge of the ISP's IP network. > > This patchset adds a driver to the L2TP subsystem to support this mode > of operation. > > The new driver, l2tp_ac_pppoe, adds support for the existing pseudowire > type L2TP_PWTYPE_PPP_AC, and is instantiated using the existing L2TP > netlink L2TP_CMD_SESSION_CREATE. It is expected to be used as follows: > > * A userspace PPPoE daemon running on the LAC handles the PPPoE > discovery process up to the point of assigning a PPPoE session ID and > sending the PADS packet to the PPPoE peer to establish the PPPoE > session. > * Userspace code running on the LAC then instantiates an L2TP tunnel > and session with the LNS using the L2TP control protocol. > * Finally, the data path for PPPoE session frames through the L2TP > session to the LAC is instantiated by sending a genetlink > L2TP_CMD_SESSION_CREATE command to the kernel, including > the PPPoE-specific metadata required for L2TP_PWTYPE_PPP_AC sessions > (this is documented in the patch series commit comments). > > Supporting this driver submission we have two examples of userspace > projects which use L2TP_PWTYPE_PPP_AC: > > * https://github.com/katalix/l2tp-ktest > > This is a unit-test suite for the kernel L2TP subsystem which has > been updated to include basic lifetime and datapath tests for > l2tp_ac_pppoe. > > The new tests are automatically enabled when l2tp_ac_pppoe > availability is detected, and hence support for l2tp_ac_pppoe is on > the master branch of the git repository. > > * https://github.com/katalix/go-l2tp > > This is a Go library for building L2TP applications on Linux, and > includes a suite of example daemons which utilise the library. > > The daemon kpppoed implements the PPPoE discovery protocol, and spawns > an instance of a daemon kl2tpd which handles the L2TP control protocol > and instantiates the kernel data path. > > The code utilising l2tp_ac_pppoe is on the branch tp_002_pppoe_1 > pending merge of this patchset in the kernel. > > Notes on the patchset itself: > > * Patches 1-4 lay groundwork for the addition of the new driver, making > tweaks to the l2tp netlink code to allow l2tp_ac_pppoe to access the > netlink attributes it requires. > * Patch 5 adds the new driver itself and hooks it into the kernel > configuration and build system. > * Patch 6 updates the l2tp documentation under Documentation/ to > include information about the new driver. > > Tom Parkin (6): > l2tp: add netlink info to session create callback > l2tp: tweak netlink session create to allow L2TPv2 ac_pppoe > l2tp: allow v2 netlink session create to pass ifname attribute > l2tp: add netlink attributes for ac_ppp session creation > l2tp: add ac_pppoe pseudowire driver > docs: networking: update l2tp.rst to document PPP_AC pseudowires > > Documentation/networking/l2tp.rst | 69 +++-- > include/uapi/linux/l2tp.h | 2 + > net/l2tp/Kconfig | 7 + > net/l2tp/Makefile | 1 + > net/l2tp/l2tp_ac_pppoe.c | 446 ++++++++++++++++++++++++++++++ > net/l2tp/l2tp_core.h | 4 +- > net/l2tp/l2tp_eth.c | 3 +- > net/l2tp/l2tp_netlink.c | 20 +- > net/l2tp/l2tp_ppp.c | 3 +- > 9 files changed, 527 insertions(+), 28 deletions(-) > create mode 100644 net/l2tp/l2tp_ac_pppoe.c > Reviewed-by: James Chapman <jchapman@...alix.com>
Powered by blists - more mailing lists