Skip to content

Commit

Permalink
l2tp: Split pppol2tp patch into separate l2tp and ppp parts
Browse files Browse the repository at this point in the history
This patch splits the pppol2tp driver into separate L2TP and PPP parts
to prepare for L2TPv3 support. In L2TPv3, protocols other than PPP can
be carried, so this split creates a common L2TP core that will handle
the common L2TP bits which protocol support modules such as PPP will
use.

Note that the existing pppol2tp module is split into l2tp_core and
l2tp_ppp by this change.

There are no feature changes here. Internally, however, there are
significant changes, mostly to handle the separation of PPP-specific
data from the L2TP session and to provide hooks in the core for
modules like PPP to access.

Signed-off-by: James Chapman <jchapman@katalix.com>
Reviewed-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
j-c-h authored and davem330 committed Apr 3, 2010
1 parent 21b4aaa commit fd558d1
Show file tree
Hide file tree
Showing 10 changed files with 3,175 additions and 2,689 deletions.
7 changes: 1 addition & 6 deletions drivers/net/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3158,17 +3158,12 @@ config PPPOATM

config PPPOL2TP
tristate "PPP over L2TP (EXPERIMENTAL)"
depends on EXPERIMENTAL && PPP && INET
depends on EXPERIMENTAL && L2TP && PPP
help
Support for PPP-over-L2TP socket family. L2TP is a protocol
used by ISPs and enterprises to tunnel PPP traffic over UDP
tunnels. L2TP is replacing PPTP for VPN uses.

This kernel component handles only L2TP data packets: a
userland daemon handles L2TP the control protocol (tunnel
and session setup). One such daemon is OpenL2TP
(http://openl2tp.sourceforge.net/).

config SLIP
tristate "SLIP (serial line) support"
---help---
Expand Down
2 changes: 1 addition & 1 deletion include/linux/if_pppol2tp.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* Linux PPP over L2TP (PPPoL2TP) Socket Implementation (RFC 2661)
*
* This file supplies definitions required by the PPP over L2TP driver
* (pppol2tp.c). All version information wrt this file is located in pppol2tp.c
* (l2tp_ppp.c). All version information wrt this file is located in l2tp_ppp.c
*
* License:
* This program is free software; you can redistribute it and/or
Expand Down
1 change: 1 addition & 0 deletions net/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ source "net/sctp/Kconfig"
source "net/rds/Kconfig"
source "net/tipc/Kconfig"
source "net/atm/Kconfig"
source "net/l2tp/Kconfig"
source "net/802/Kconfig"
source "net/bridge/Kconfig"
source "net/dsa/Kconfig"
Expand Down
2 changes: 1 addition & 1 deletion net/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ obj-$(CONFIG_BT) += bluetooth/
obj-$(CONFIG_SUNRPC) += sunrpc/
obj-$(CONFIG_AF_RXRPC) += rxrpc/
obj-$(CONFIG_ATM) += atm/
obj-$(CONFIG_PPPOL2TP) += l2tp/
obj-$(CONFIG_L2TP) += l2tp/
obj-$(CONFIG_DECNET) += decnet/
obj-$(CONFIG_ECONET) += econet/
obj-$(CONFIG_PHONET) += phonet/
Expand Down
28 changes: 28 additions & 0 deletions net/l2tp/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#
# Layer Two Tunneling Protocol (L2TP)
#

menuconfig L2TP
tristate "Layer Two Tunneling Protocol (L2TP)"
depends on INET
---help---
Layer Two Tunneling Protocol

From RFC 2661 <http://www.ietf.org/rfc/rfc2661.txt>.

L2TP facilitates the tunneling of packets across an
intervening network in a way that is as transparent as
possible to both end-users and applications.

L2TP is often used to tunnel PPP traffic over IP
tunnels. One IP tunnel may carry thousands of individual PPP
connections. L2TP is also used as a VPN protocol, popular
with home workers to connect to their offices.

The kernel component handles only L2TP data packets: a
userland daemon handles L2TP the control protocol (tunnel
and session setup). One such daemon is OpenL2TP
(http://openl2tp.org/).

If you don't need L2TP, say N. To compile all L2TP code as
modules, choose M here.
5 changes: 4 additions & 1 deletion net/l2tp/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@
# Makefile for the L2TP.
#

obj-$(CONFIG_PPPOL2TP) += pppol2tp.o
obj-$(CONFIG_L2TP) += l2tp_core.o

# Build l2tp as modules if L2TP is M
obj-$(subst y,$(CONFIG_L2TP),$(CONFIG_PPPOL2TP)) += l2tp_ppp.o

0 comments on commit fd558d1

Please sign in to comment.