Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for RFC4638 #572

Closed
andrew-s opened this issue Dec 27, 2015 · 17 comments
Closed

Support for RFC4638 #572

andrew-s opened this issue Dec 27, 2015 · 17 comments
Assignees
Labels
feature Adding new functionality
Milestone

Comments

@andrew-s
Copy link

Been trying to get MTU > 1492 to work on PPPoE connections (my ISP supports that along with the modem i'm using), from some initial investigation I thought it would be the PPP daemon (mpd) but it looks like a few months ago they implemented this;

http://sourceforge.net/p/mpd/bugs/54/

But it seems it requires FreeBSD 10.2 to work (assuming it does work when all the pieces come together) - I believe, everything else has the support for the larger MTU's.

Thanks!

@fichtner fichtner added feature Adding new functionality help wanted Contributor missing / timeout labels Dec 27, 2015
@fichtner fichtner added this to the 16.1 milestone Dec 27, 2015
@fichtner fichtner self-assigned this Dec 27, 2015
@fichtner
Copy link
Member

Hi Andrew,

Thanks for the pointers. The kernel support will be in the upcoming 16.1 in late January and the stable release 15.7.24 in early Januar. :)

The last MPD bump I can see was in August, I don't believe the patches are in the FreeBSD ports tree yet. I've contacted David Wood, but so far I haven't gotten a response.

I think it brings us down to 1 out of 3 issues:

  • kernel support in FreeBSD src
  • daemon support in FreeBSD ports
  • config glue in OPNsense

@andrew-s
Copy link
Author

Thanks for the response @fichtner - I installed opnsense yesterday, it seems to suggest the mpd5 version installed is 5.7 (4-nov-2015) - but I agree, I couldn't really see if that version did contain an MTU fix.

Will try and find some information myself unless anyone else can comment with greater details.

@sthen
Copy link

sthen commented Dec 27, 2015

Hi Franco, the mpd support didn't make it in yet (and I see the last commit to the port was done with maintainer timeout).. looks like you're already in cc list for the PR containing the port patches (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203695)

@fichtner
Copy link
Member

Hi Stuart, you're right. Maybe @koobs can advise as far as FreeBSD ports committing goes?

@andrew-s I will build a test version for you including these patches. I'm not against merging them into OPNsense prior to FreeBSD, but need user confirmation that they work as expected. :)

@koobs
Copy link

koobs commented Dec 28, 2015

@fichtner @sthen How can I help?

@fichtner
Copy link
Member

@koobs how should https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203695 be proceeded? Prodding, timeout? Build logs, etc?

@fichtner
Copy link
Member

@koobs thanks, I will provide portlint and poudriere output

@andrew-s
Copy link
Author

@fichtner Yeah no problem, happy to test and make sure it's all working :)

@davidjwood
Copy link

Kernel support was introduced to FreeBSD 11-CURRENT in r287654 and MFCed to 10-STABLE in r288918. The change should apply to any recent FreeBSD kernel (including 9.x, if that's what you're still using) without changes, as the kernel netgraph code is fairly static and mature.

mpd5 support is yet to be committed to FreeBSD ports, though there is a patch in FreeBSD bug 203695. The revised patch follows comments from @koobs in the bug, and makes the incorporation of the RFC 4638 patches conditional on __FreeBSD_version being sufficiently high to indicate the relevant kernel support exists. If you add RFC 4638 support to an older kernel, you'll need to change net/mpd5/Makefile so that the RFC 4638 patches are included unconditionally.

Once you have kernel and mpd5 support available, the FreeBSD bug tells you how to configure the PPPoE parent interfaces and mpd5.

I believe your interfaces.inc has diverged quite significantly from pfSense's version. My experience of adding RFC 4638 support to pfSense suggests that the logic for setting and testing parent interface MTUs needs careful design. You need to support both physical interfaces and vlans as PPPoE parent interfaces whilst respecting the Principle of Least Astonishment. The vlan case is trickier to get right, not least as other vlans on the same physical interface having MTU > 1500 without explicit configuration is a bad idea!

@fichtner
Copy link
Member

@andrew-s test package for mpd5 is now available. you'll also have to use the new kernel...

# pkg add -f https://pkg.opnsense.org/snapshots/mpd5-5.7_4.txz
# opnsense-update -kr 15.7.24 && reboot

Manual config is necessary still, but it should be functional at least.

@fichtner
Copy link
Member

fichtner commented Jan 7, 2016

mpd 5.8 has been released with the fix and will be available in 15.7.24. The only missing piece is the GUI code additions for writing the proper config file. :)

@fichtner fichtner modified the milestones: 16.7, 16.1 Jan 7, 2016
@davidjwood
Copy link

@andrew-s (or anyone else working on this) My implementation of RFC 4638 support for pfSense has now been merged into pfSense 2.3.

The logic used is documented in the pull request. I hope that information is helpful.

@fichtner
Copy link
Member

fichtner commented Jan 8, 2016

@davidjwood thanks for checking back and congrats for getting the feature merged finally :) I don't think this will make it in time for 16.1, but it'll be shipped in one of the minor updates that follow.

@AdSchellevis AdSchellevis assigned AdSchellevis and unassigned fichtner Jan 8, 2016
@andrew-s
Copy link
Author

andrew-s commented Jan 9, 2016

@fichtner I haven't managed to get this to work, still seem to be getting 1492 regardless - doing "onsense-update -kr 15.7.24 && reboot" did upgrade, but the version numbers still seem to be off on the kernel - any ideas?

@fichtner
Copy link
Member

fichtner commented Jan 9, 2016

Off how? 10.1-RELEASE-p25 is the kernel version. The real 15.7.24 is out on Monday along with MPD 5.8. The core adjustments are missing too, Ad will look at those after his well-deserved holiday. :)

@fichtner fichtner removed the help wanted Contributor missing / timeout label Jan 15, 2016
@syserr0r
Copy link
Contributor

Running 15.7.24 and editing /usr/local/etc/inc/interfaces.inc around line 1750 as follows has allowed me to have a 1500 MTU PPPoE connection (on an otherwise unmodified version of OPNsense).

EOD;

                if (empty($mtus[$pid]))
                        $mtus[$pid] = $defaultmtu;
                        $mpdconf .= <<<EOD
        # set link mtu {$mTus[$pid]}
        set pppoe max-payload 1500

EOD;

                if (!empty($mrus[$pid]))
                        $mpdconf .= <<<EOD
        # set link mru {$mrus[$pid]}
        set link mru 1500
EOD;

In addition I assigned an interface to the same network card as the PPPOE link (in my case em1) as follows:

UNUSED__MTUFIX_ONLY (em1) config:

Image of GUI settings for em1

Interface Assignments (ignore V4ONLY):

Image of GUI settings for interface assignments

AdSchellevis added a commit that referenced this issue Feb 5, 2016
fix mtu parent setting and add max-payload for pppoe
fichtner pushed a commit that referenced this issue Mar 1, 2016
fix mtu parent setting and add max-payload for pppoe

(cherry picked from commit 0953e76)
fichtner pushed a commit that referenced this issue Mar 1, 2016
@fichtner
Copy link
Member

fichtner commented Mar 1, 2016

Confirmed by multiple users, will ship this tomorrow in 16.1.5. Thanks everyone!!! :)

@fichtner fichtner closed this as completed Mar 1, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Adding new functionality
Development

No branches or pull requests

7 participants