Opened 6 years ago

Last modified 3 years ago

#10095 assigned enhancement

more usefull patches for ppp

Reported by: Igor Rudchenko <igor@…> Owned by: jow
Priority: normal Milestone: Barrier Breaker 14.07
Component: packages Version: Trunk
Keywords: ppp pppd pppoe Cc:


I consider their useful, so added to my local build of ppp package (2.4.5-1 from trunk) and tested for a month on all my hosts with pppoe/pptp (mostly backfire).


pppd: Terminate correctly if lcp_lowerup delayed calling fsm_lowerup

Cameron Hutchison noticed that if pppd gets asked to terminate the
link in the period between when lcp_lowerup() is called and when
fsm_lowerup() is called from lcp_delayed_up() (i.e. when listen_time
is non-zero), pppd never exits.

The reason is that lcp_close() doesn't handle the delayed-up case
properly.  Since the FSM is still in STOPPED state, we don't call
lcp_finished() and therefore never exit the main event loop.

This fixes it by handling the delayed-up case in lcp_close() as if
we had done the lowerup but the OPT_SILENT bit was set.  We use the
silent case because we don't want to actually send a configure-request at this point.


rp_pppoe: Copy acName and pppd_pppoe_service after option parsing

At present, the access concentrator name (acName) and service name
(pppd_pppoe_service) are set by option parsing, but are used at the
point of PPPOEInitDevice(), which gets called when the ethernet
device name is seen.  So if the rp_pppoe_service or rp_pppoe_ac
options appear after the device name, they are ignored.

This fixes it by using acName and pppd_pppoe_service in
PPPOEConnectDevice, which gets called after all options have been

I backport changes from latest stable rp-pppoe to pppd's plugin. Includes such important changes:

  • Added proper timeout handling while waiting for PADO/PADS.
  • Fix race condition with some access concentrators that move very quickly into session mode (problem noted by Luigi Sgro)


to prevent pppd persist from exiting in the event of a PPPoE PADO timeout.


always create a new process group.


support sending LCP echo requests only if the link is idle.

Attachments (2)

ppp_patches.tgz (3.9 KB) - added by Igor Rudchenko <igor@…> 6 years ago.
520-git_import_fixes_rp-pppoe-3.10.patch (5.2 KB) - added by Igor Rudchenko <igor@…> 5 years ago.
new version of patch to update rp-pppoe plugin, taken from ppp's git

Download all attachments as: .zip

Change History (5)

Changed 6 years ago by Igor Rudchenko <igor@…>

comment:1 Changed 6 years ago by swalker

  • Owner changed from developers to jow
  • Status changed from new to assigned

Changed 5 years ago by Igor Rudchenko <igor@…>

new version of patch to update rp-pppoe plugin, taken from ppp's git

comment:2 Changed 4 years ago by jow

  • Milestone changed from Attitude Adjustment 12.09 to Barrier Breaker 14.07

Milestone Attitude Adjustment 12.09 deleted

comment:3 Changed 3 years ago by anonymous

I wonder if these patches are still relevant for trunk:

The following patches appear to be already applied:

  • 500-git_terminate_correctly_lcp_lowerup.patch
  • 510-git_fix_rp-pppoe_options_parsing.patch
  • 550-debian_adaptive_echos.patch

This patch seems to be partially applied:

  • 520-rp-pppoe_plugin_3.10.patch

The following patches are definetly not applied:

  • 530-debian_dont_exit_pado_timeout.patch
  • 540-debian_always_setsid.patch

Add Comment

Modify Ticket

as assigned .

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.