Bug 841194

Summary: pppoe-server has kernel support disabled
Product: Red Hat Enterprise Linux 6 Reporter: Robert Vogelgesang <vogel>
Component: rp-pppoeAssignee: Than Ngo <than>
Status: CLOSED ERRATA QA Contact: Desktop QE <desktop-qa-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.3CC: dstoykov, jkoten, than, tpelka, vogel
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rp-pppoe-3.10-16.el6 Doc Type: Bug Fix
Doc Text:
cause: the previous rp-pppoe was built without kernel mode PPPoE support. Consequence: it's not possible to use kernel mode in pppoe-server. The pppoe-server doesn't load the plugin p-pppoe.so. Fix: the new rp-pppoe version is now built with kernel mode PPPoE support, so that the pppoe-server now can load the plugin rp-pppoe.so. Result: the kernel mode PPPoE now can be used
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-05-11 00:41:23 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1317884    
Bug Blocks:    

Description Robert Vogelgesang 2012-07-18 11:48:26 UTC
Description of problem:
The rp-pppoe pppoe-server of RHEL-6 does not have kernel mode support enabled.  This is a regression from RHEL-5, where kernel mode was enabled.  The ppp package of RHEL-6 already provides the required rp-pppoe.so plugin.

Version-Release number of selected component (if applicable):
rp-pppoe-3.10-8.el6.x86_64
ppp-2.4.5-5.el6.x86_64

How reproducible:
Always.

Steps to Reproduce:
1. Install rp-pppoe and ppp, and configure ppp to accept an incoming connection
2. Start pppoe-server with the commandline option -k
3. Connect with a DSL client to the pppoe-server
  
Actual results:
pppoe-server starts a pppoe subprocess,  The kernel modules pppoe and pppox are not loaded.

Expected results:
Kernel mode should be used instead of the pppoe subprocess.  This would automatically load the kernel modules pppoe and pppox.

Additional info:
Two things need to be done:
First, in the spec file, %configure needs the option --enable-plugin.
Second, either Makefile.in, or pppoe-server.c, must be patched so that the name of the plugin (which is supplied to the pppd process) is just "rp-pppoe.so", without any path components,  This enables pppd to use the plugin that is supplied already with the ppp package.

Comment 2 RHEL Program Management 2012-09-07 05:26:14 UTC
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated
in the current release, Red Hat is unable to address this
request at this time.

Red Hat invites you to ask your support representative to
propose this request, if appropriate, in the next release of
Red Hat Enterprise Linux.

Comment 3 rgrigorov 2014-08-17 18:02:02 UTC
brief description of the Decision

wget http://www.roaringpenguin.com/files/download/rp-pppoe-3.11.tar.gz
tar zxvf rp-pppoe-3.11.tar.gz
cd rp-pppoe-3.11/src
edit pppoe-server.c
Add line;
define HAVE_LINUX_KERNEL_PPPOE 1

./configure

make && make install

Comment 4 rgrigorov 2014-08-17 18:11:53 UTC
(In reply to rgrigorov from comment #3)
> brief description of the Decision
> 
> wget http://www.roaringpenguin.com/files/download/rp-pppoe-3.11.tar.gz
> tar zxvf rp-pppoe-3.11.tar.gz
> cd rp-pppoe-3.11/src
> edit pppoe-server.c
> Add line;
> define HAVE_LINUX_KERNEL_PPPOE 1
> 
> ./configure
> 
> make && make install

Comment 10 Robert Vogelgesang 2016-02-29 10:35:48 UTC
@Tomas Pelka, in response to an email:

The rp-pppoe rpm does not need to provide any modules for other components.  The kernel rpm provides the required kernel modules, and the ppp rpm contains the rp-pppoe.so module.

But yes, it should be --enable-plugin, not -enable-plugin.

Comment 15 Tomas Pelka 2016-03-01 07:50:40 UTC
Now I'm finally able to start pppoe-server with -k option but kernelo modules are still not loaded.

Comment 16 Tomas Pelka 2016-03-01 11:16:16 UTC
So it seems (base on http://darmawan-salihun.blogspot.cz/2008/12/setting-up-basic-pppoe-server-in-linux.html, thanks Than) that module are not supposed to load automatically they need to be loaded before pppoe server is actually loaded.

But now I was able to start pppeo-server with parameter -k, it should be now build with kernel module support.

Robert as I don't have your particular setup would you please check the fixed package? If you agree we will find a way how to deliver rpm's for you.

Also I'm going to request documentation for the need to load modules manually.

Comment 17 Robert Vogelgesang 2016-03-01 14:28:26 UTC
In our setup, all required kernel modules are automatically loaded, no need to load them manually.

In earlier versions of RHEL we had to add "alias net-pf-24 pppoe" to /etc/modules.conf to achieve this, but the current RHEL-6 has this in /lib/modules/$(uname -r)/modules.alias by default.

In my tests back in 2012, before reporting this bug, pppoe-server did start even with option -k, despite the lacking kernel support.  The only thing that reliably indicates that kernel mode is used by pppoe-server is the absence of pppoe subprocesses of pppoe-server, as noted in my initial report.

But I don't remember anymore if the first subprocess got started when pppoe-server was started, or when a pppoe client did connect.  So please try to connect with a client, to be sure.  When multiple clients are connected, you'd definitely have multiple pppoe subprocesses when not using kernel mode.

I cannot promise that I have the time and the resources to actually test your new rpm's in the next days or weeks.  If you cannot test with a client connection for some reason, then get in touch with me, and I'll see what I can do.

Comment 18 Than Ngo 2016-03-01 15:26:23 UTC
as i know the first subprocess got started when a pppoe client did connect. You will see the loading rp-pppoe.so in /var/log/messages when you enable debug in /etc/ppp/pppoe-server-options

Comment 19 Tomas Pelka 2016-03-15 07:30:00 UTC
OK so modules were loaded manually (it is the same as if you add config to /etc/modules.conf), pppoe-server process is started but no other processes are spawned when client connect.

I guess this is fine so moving to verified.

Comment 21 errata-xmlrpc 2016-05-11 00:41:23 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-0923.html