One from the stupid L2TP clients department...
We've got L2TP routers that speak just enough L2TP to get the tunnel going, then basically just encapsulate PPP packets in L2TP wrappers. What they don't do is actually acknowledge (let alone do anything useful with) any L2TP control packets received after the initial tunnel and session handshakes.
SLI packets and periodic HELLOs sent after the tunnel and session are established need to be acknowledged by the other end; failure to respond to HELLOs and SLIs means rp-l2tp has no option but to terminate the PPP sessions silently, since absence of control packets means the other guy has gone away. The result is that L2TP links to these clients don't stand up.
To deal with this, the attached patch adds the following configuration statements to the peer section:
sli boolean (default yes)
Enables/disables sending ACCM SLI messages if ACCM LCP messages are seen in the PPP stream. This allows the LNS to tell the LAC what ACCM has been negotiated. If disabled, ACCM SLI messages are not sent.
hello integer (default 60)
Sets the interval between sending HELLO (keepalive) packets. If set to 0, keepalive packets are not sent.
Setting "sli no" and "hello 0" means no unsolicited L2TP control packets get sent by rp-l2tp, and stupid clients that don't acknowledge them stand up. (The clients do handle PPP keepalives correctly, so dead sessions do get torn down eventually.)
Patch file to add hello and sli statements