Penguin
Blame: 3ComDualLinkPPPoE
EditPageHistoryDiffInfoLikePages
Annotated edit history of 3ComDualLinkPPPoE version 3, including all changes. View license author blame.
Rev Author # Line
2 JamesSpooner 1 When 3Com decided to build a PPPoE <-> ADSL modem - [3ComDualLink], they decided that conforming to the PPPoE [ RFC | http://www.faqs.org/rfcs/rfc2516.html ] was entirely too plain. Instead of using boring ASSIGNED values for the [PPPoE] session and discovery protocols, they decided ones starting with 0x3c would be much more customer orientated! So, instead of 0x8863 and 0x8864 for Discovery and Session packets respectively, they decided to use 0x3c12 and 0x3c13... insanity!
1 JamesSpooner 2
3 !User Mode
4 ----
5
6 Luckily enough, rp-pppoe was kind enough to allow us to specifiy different frame headers. So if you're using rp-pppoe just add "-f 3c12:3c13" to the pppoe command line.
7
8 From the [LinuxPPPoENotes] page, heres how pppd would run pppoe now:
9
10 /usr/sbin/pppoe -p /var/run/pppoe.conf-adsl.pid.pppoe -I eth0 -f 3c12:3c13 -U -m 1412 -T 80 -S ISP
11
12 !Kernel Mode
13 ----
14
15 Unfortunately, things are not so simple in kernel mode.
16
17 I've made a diff you can apply to the ppp-2.4.2 tarball, or put it in the debian/patches directory and re-build the deb.
18 Here's the [ unified diff | http://www.wlug.org.nz/~james/060-pppoe-frame-opt.diff ].
19
20 Man, if only thats where it ended. It seems that linux/if_ether.h has ..
21 #define ETH_P_PPP_SES 0x8864
22 and the kernel module uses that!
23
24 But we can get around this (hackishly for now, hopefully someone will add an IOCTL to do this), by using the following [ patch | http://www.wlug.org.nz/~james/pppoe.diff ].
25
26 Now, you add the following lines to your /etc/ppp/peers/''myisp'' file, and you should have kernel mode pppoe:
27 rp_pppoe_disc 3c12
28 rp_pppoe_sess 3c13
29
30 Uncomment ''debug'' in that file, if you have any problems.
31
32 Good Luck
3 PhilMurray 33
34 !FreeBSD
35 ----
36
37 To use this modem with FreeBSD set
38 sysctl net.graph.nonstandard_pppoe=1
39
40 After you have the ng_pppoe moduled loaded. Put it in /etc/sysctl.conf to make it persistent. For more information about using PPPoE in FreeBSD see the [handbook|http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/pppoe.html].