netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5 2.6.21-rc7] l2tp: introduce PPP over L2TP driver
@ 2007-04-23 12:55 James Chapman
  2007-04-23 15:07 ` Patrick McHardy
  0 siblings, 1 reply; 4+ messages in thread
From: James Chapman @ 2007-04-23 12:55 UTC (permalink / raw)
  To: netdev

This patch set adds a driver for PPP over L2TP. Patches to follow.

The following changes have been made since the previous version
submitted 23-MAR-07, addressing review comments received so far:-

- Fold makefile changes into the patches that add new source files.

- Make API structures 64-bit safe by avoiding holes inserted by the
  compiler for field alignment.

- Fix list locking.

- Use inlines rather than macros for obtaining local context
  pointers. (Previous code obscured use of variables and labels in
  macros.)

- Use endian-annotated types where appropriate.

- Use skb_queue_walk() for walking skb lists.

- Add check that session doesn't already exist before allowing it to
  be created.

- Remove unnecessary try_module_get() / put_module() calls.

- No need to check for NULL before calling kfree().

- Use macros in jiffies.h for time/jiffy conversion.

- Minimize size of L2TP's private data that is stored in skb->cb[].

- Change transmit path to build UDP header locally and transmit using
  ip_queue_xmit() rather than use the UDP socket's sendmsg(). This
  change also avoids the use of a kernel thread to do the transmit.

- Fix seq file code to avoid potential buffer overflow when there are
  lots of tunnels/sessions.

- Fix some socket refcount/lock bugs. Fixes derived from recent pppoe
  patches. 

The implementation uses the existing PPPoX subsystem that is currently
used only by PPPoE. A userspace daemon handles all L2TP control
protocol messages, while a PPPoX socket carries user data. The system
architecture is similar to PPPoE, where a pppd plugin uses the PPPoX
socket to send/receive PPP frames over an L2TP tunnel. PPP control
frames are delivered to pppd while data frames are handled entirely by
the kernel.

There are 5 patches in the series:-

1 - pppol2tp driver core. New code. Requires patches 2 & 3.

2 - API changes for L2TP. Adds definitions for L2TP in existing headers.

3 - Introduce skb_queue_walk_safe() macro.

4 - Change to PPPoX core to allow PPPoX protocol modules such as
    pppol2tp to be autoloaded via modprobe.conf.

5 - Adds an entry to MAINTAINERS file.

The driver is being used on x86, ia64, ppc, arm, mips32 and possibly
other architectures. It is also known to work on multi-core SMP boxes.

--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development

^ permalink raw reply	[flat|nested] 4+ messages in thread
* [PATCH 0/5 2.6.21-rc7] l2tp: introduce PPP over L2TP driver
@ 2007-04-23 16:00 James Chapman
  0 siblings, 0 replies; 4+ messages in thread
From: James Chapman @ 2007-04-23 16:00 UTC (permalink / raw)
  To: netdev

This patch set adds a driver for PPP over L2TP. Patches to follow.

The following changes have been made since the previous version
submitted 23-MAR-07, addressing review comments received so far:-

- Fold makefile changes into the patches that add new source files.

- Make API structures 64-bit safe by avoiding holes inserted by the
  compiler for field alignment.

- Fix list locking.

- Use inlines rather than macros for obtaining local context
  pointers. (Previous code obscured use of variables and labels in
  macros.)

- Use endian-annotated types where appropriate.

- Use skb_queue_walk() for walking skb lists.

- Add check that session doesn't already exist before allowing it to
  be created.

- Remove unnecessary try_module_get() / put_module() calls.

- No need to check for NULL before calling kfree().

- Use macros in jiffies.h for time/jiffy conversion.

- Minimize size of L2TP's private data that is stored in skb->cb[].

- Change transmit path to build UDP header locally and transmit using
  ip_queue_xmit() rather than use the UDP socket's sendmsg(). This
  change also avoids the use of a kernel thread to do the transmit.

- Fix seq file code to avoid potential buffer overflow when there are
  lots of tunnels/sessions.

- Fix some socket refcount/lock bugs. Fixes derived from recent pppoe
  patches. 

The implementation uses the existing PPPoX subsystem that is currently
used only by PPPoE. A userspace daemon handles all L2TP control
protocol messages, while a PPPoX socket carries user data. The system
architecture is similar to PPPoE, where a pppd plugin uses the PPPoX
socket to send/receive PPP frames over an L2TP tunnel. PPP control
frames are delivered to pppd while data frames are handled entirely by
the kernel.

There are 5 patches in the series:-

1 - Introduce skb_queue_walk_safe() macro.

2 - API changes for L2TP. Adds definitions for L2TP in existing headers.

3 - pppol2tp driver core. New code. Requires patches 1 & 2.

4 - Change to PPPoX core to allow PPPoX protocol modules such as
    pppol2tp to be autoloaded via modprobe.conf.

5 - Adds an entry to MAINTAINERS file.

The driver is being used on x86, ia64, ppc, arm, mips32 and possibly
other architectures. It is also known to work on multi-core SMP boxes.

--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-04-23 16:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-23 12:55 [PATCH 0/5 2.6.21-rc7] l2tp: introduce PPP over L2TP driver James Chapman
2007-04-23 15:07 ` Patrick McHardy
2007-04-23 15:58   ` James Chapman
  -- strict thread matches above, loose matches on Subject: below --
2007-04-23 16:00 James Chapman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).