On Patrick's request, I'm resending this patch set. There are no changes since they were posted 3 weeks ago. Please review. Thanks.
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-APR-07. - Hold list lock while processing reorder queue in pppol2tp_recv_dequeue(). - Fix more __be type annotations. - Add a new UDP encapsulation socket type for L2TP (new patch). Modify driver receive path so that it hooks on udp_encap_rcv() rather than overload the socket's sk_data_ready() for skb reception. - Remove pppol2tp_fget() and friends. Previous code needed to find the tunnel fd from a context other than the one that created the socket. I now use the PPPoX management socket creation (which is done by the same process that creates the UDP socket, i.e. l2tpd) to derive the socket of the UDP tunnel using sockfd_lookup(). - Reorder some functions in proc file handling code to avoid needing function prototypes. - Remove code that sorted entries which are output in /proc/net/pppol2tp. Output now shows tunnels and sessions unordered. - Remove stupid userland conditional includes from the if_pppox.h changes. - Remove skb_queue_walk_safe and pppox-autoload patches from the series since they have now been applied. - Add in-kernel documentation (new patch). - Rebased to 2.6.21. The code still uses sk->sk_destruct() on the tunnel socket to cleanup internal contexts if the tunnel UDP socket is destroyed. About this patch series: 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 new UDP encapsulation type for L2TP. 2 - API changes for L2TP. Adds definitions for L2TP in existing headers. 3 - pppol2tp driver core. New code. Requires patches 1, 2, and the recently applied skb_queue_walk_safe patch. 4 - Add an entry to MAINTAINERS file for this driver. 5 - Add in-kernel documentation. 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 - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html