Bug 696704 - Support for MTU 1500 for pppoe (RFC4638)
Summary: Support for MTU 1500 for pppoe (RFC4638)
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: rp-pppoe
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: Than Ngo
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-04-14 16:53 UTC by Robert Laverick
Modified: 2012-08-20 14:37 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-08-20 12:39:50 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
patch mapped to rp_pppoe rpm (9.29 KB, patch)
2011-05-01 23:40 UTC, Robert Laverick
no flags Details | Diff
spec file building ppp plugin version of rp-pppoe (13.04 KB, application/octet-stream)
2012-08-20 14:37 UTC, Robert Laverick
no flags Details

Description Robert Laverick 2011-04-14 16:53:27 UTC
Description of problem:
My ISP (AAISP.org.uk) support PPPoE connections with MTU of 1500 (using mini jumbo frames) as pre RFC 4638 however the version of PPP included doesn't allow for setting the MTU larger than 1492.

there is a patch (from May/Aug 2010) in the upstream ppp codebase (Patch named "rp-pppoe: allow MTU to be increased up to 1500") is there a chance of getting this patch applied?

Additional info:

http://tools.ietf.org/html/rfc4638

http://git.ozlabs.org/?p=ppp.git;a=commit;h=fd1dcdf758418f040da3ed801ab001b5e46854e7

Comment 1 Robert Laverick 2011-04-15 01:50:06 UTC
OK, I've worked through applying this patch to the ppp source code which does work without any errors.

However the patches are actually all actually part of the rp-pppoe plugin which from what I can tell isn't actually used as built in the ppp package (and infact the rp-pppoe.so built just segfaults)

the pppoe in the rp-pppoe package seems quite different and I don't think I know enough about c programming to get this right first time.

I'll keep looking at it and try and work out a fix for rp-pppoe (it's supposed to be the same code so hopefully the differences aren't too big)

Comment 2 Robert Laverick 2011-05-01 23:40:22 UTC
Created attachment 496144 [details]
patch mapped to rp_pppoe rpm

This is my current best effort to convert the patch to apply to rp_pppoe.

I think it's 90% of the way there, but it's not compiling, errors locating lcp_wantoptions and lcp_allowoptions which are externs from lcp.h initilised in lcp.c (from looking at the ppp srpm)

I tried adding lcp.c but I've no idea what I'm doing with Makefile.in to try and get it to compile correctly.

my understanding of C is pretty limited so I'm learning this stuff as I go here, from what I understand of what's going on here we're only using the mtu and mru fields as globals and not rely on lcp here?

I'll keep hacking at it and see if I can work out what's going on, but input from someone who understands these things would be great!

Rob

Comment 3 Than Ngo 2012-08-20 12:39:50 UTC
it's fixed in 3.11 and built in rawhide

Comment 4 Robert Laverick 2012-08-20 14:37:36 UTC
Created attachment 605716 [details]
spec file building ppp plugin version of rp-pppoe

(In reply to comment #3)
> it's fixed in 3.11 and built in rawhide

MTU 1500 requires that rp-pppoe be run in kernel mode (rather than pty user mode), enabling this would require a compile flag, I've attached an updated .spec file which enables the compiling of this.

rp-pppoe by default installs the ppp plugin .so into /etc/ppp/plugins which seems a little odd to me (would have thought that belonged in a lib folder somewhere?) but I can confirm that with this spec kernel mode can be activated by by adding this line to the relevant network device config file:

LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so

David Skoll (rp-pppoe maintainer) indicated that he thought most users would be using the kernel mode due to decreased cpu usage (my test seems to show the a significant benefit my cpu usage drops from 40% of one core on a core i5 processor to <1% when enabling kernel mode when running a 33Mbit pppoe connection) so it seems worth adding the option for users to configure for kernel mode even if we're not enabling it by default.

In addition the pppoe-connect script in the version on rawhide currently sets the MTU to 1500 on the underlying Ethernet interface which would prevent MTU 1500 from working, there are updates in the pppoe-connect script provided with rp-pppoe 3.11 which change this behaviour to only setting the MTU on the interface if the MTU is configured below 1500 on the interface.

Rob


Note You need to log in before you can comment on or make changes to this bug.