RASPPPoE 0.98b timeout patch
============================

This is a patch for the RASPPPoE protocol drivers written by Robert
Schlabbach. Starting to use this protocol, noticed that PPP session
timeout (40..50 seconds as mentioned by Robert) is very small for DSL
modem to reconnect. While DSL link is occasionally dropped, the modem
typically need 1..2 minutes to re-establish the link. Many PPPoE
servers are keeping PPP session within 2 minutes before aborting it.
Increasing RASPPPoE timeout to 120..150 seconds, we can help PPP
session to persist during DSL modem reconnection in most cases.

A native RASPPPoE protocol drivers use 10-second timer interval and
send three echo requests. It makes total timeout of 40..50 seconds.
Increasing timer interval to 30 seconds, we make total timeout to be
120..150 seconds.

Here are two difference files: raspppoe10to30.dif and
rmspppoe10to30.dif, for the raspppoe.sys and rmspppoe.sys files. The
patch increases the timer period from 0x2710 (10000) to 0x7530 (30000)
milliseconds.

To apply the patch, place .dif files and idadiff.exe program into
directory where RASPPPoE files are unpacked and type:

idadiff raspppoe10to30.dif
idadiff rmspppoe10to30.dif

In each case, 7 bytes must be patched. Then you can install RASPPPoE as
described in its manual.

If you have already installed RASPPPoE, locate raspppoe.sys and/or
rmsppppoe.sys files in Windows directory tree, apply the patch and
restart Windows to reload patched protocol driver file(s).

You can use your own timer interval value and modify these .dif files
accordingly. But NT/2k/XP/2k3 kernel-mode driver must have a proper
checksum in its header; these .dif files contain patches for checksums,
too. If you change the interval values, you must correct the checksum.
For example, you can do it with "editbin" utility from MS Visual C++
compiler package.

Eugene V. Muzychenko,
eugene@muzychenko.net
