8 Jul 2012 23:49
[RFC PATCH] ppp: add support for L2 multihop / tunnel switching
Benjamin LaHaise <bcrl <at> kvack.org>
2012-07-08 21:49:30 GMT
2012-07-08 21:49:30 GMT
Hello folks, Below is a first cut at implementing multihop L2TP, also known as tunnel switching. The feature is similar in scope to how PPPoE relaying works -- L2 packets that are received on one PPP interface are forwarded to another. This feature is typically used for traffic aggregation and backhaul for ISPs, with incoming sessions (often PPPoE) being partially authenticated by a LAC, and then forwarded over an L2TP session to an LNS (selected by the user's domain) which then provides network access to the client. This is an RFC primarily to get some feedback on the implementation approach being used. At present, this code is intercepting packets as soon as they are received on a PPP channel. The packets are then modified to use a fake ETH_P_PPP protocol type and sent out over another PPP device via dev_queue_xmit(). In theory this enables forwarding of any type of PPP session, although I've only tested L2TPv2 so far. The reasoning behind using dev_queue_xmit() rather than outputting directly to another PPP channel is to enable the use of the traffic shaping and queuing features of the kernel on multihop sessions. Comments / thoughts? A sample test program is available at http://www.kvack.org/~bcrl/pppol2tp/multihop.c . I am in the process of updating the Babylon PPP implementation to use this functionality, and expect to be ready to make those changes available later this week. I have not yet finished testing this code, so I'm sure that there are bugs lurking within. -ben(Continue reading)
RSS Feed