Add a section to the PPPoE stuff about the 3Com Home Connect Dual Link

ADSL Modem.

Submitted by:	lioux
This commit is contained in:
Jim Mock 2001-04-13 02:59:00 +00:00
parent 4657ae5ca6
commit a1790180c5
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=9187
2 changed files with 426 additions and 6 deletions

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.30 2000/11/11 19:24:47 ben Exp $
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.31 2001/04/09 00:33:55 dd Exp $
-->
<chapter id="ppp-and-slip">
@ -1652,7 +1652,7 @@ exit 1
</sect1>
<sect1 id="pppoe">
<title>Using PPP over Ethernet (PPPoE)</title>
<title>Using <application>PPP</application> over Ethernet (PPPoE)</title>
<para><emphasis>Contributed by &a.jim; (from <ulink
url="http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html">node.to</ulink>) 10 Jan 2000.</emphasis></para>
@ -1715,7 +1715,7 @@ exit 1
<filename>ppp.conf</filename>:</para>
<programlisting>default: # or name_of_service_provider
set device PPPoE:xl1 # replace xl1 with your ethernet device
set device PPPoE:<replaceable>xl1</replaceable> # replace xl1 with your ethernet device
set mru 1492
set mtu 1492
set authname YOURLOGINNAME
@ -1759,6 +1759,216 @@ ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="default" # or your provider</programlisting>
</sect2>
<sect2>
<title>PPPoE with a 3Com HomeConnect ADSL Modem Dual Link</title>
<para><emphasis>Contributed by &a.lioux;, 07 Apr
2001.</emphasis></para>
<para>In short, it does not work. It should, but unfortunately,
that is not the case. For whatever reason, this modem does not
follow <ulink url="http://www.faqs.org/rfcs/rfc2516.html">RFC
2516</ulink> (<emphasis>A Method for transmitting PPP over
Ethernet (PPPoE)</emphasis>, written by L. Mamakos, K. Lidl,
J. Evarts, D. Carrel, D. Simone, and R. Wheeler).</para>
<para>Since it does not follow the specification, FreeBSD's PPPoE
implementation will not talk to it. It is very likely that it will
not work under other unixes for that same reason. Complain to <ulink
url="http://www.3com.com/">3Com</ulink> if you think it should
comply with the PPPoE specification.</para>
<para>If you absolutely want to use your ADSL connection with
FreeBSD and are stuck with this modem, you can either:</para>
<itemizedlist>
<listitem>
<para>Try replacing the modem with a different brand or model
if your DSL provider permits you to do so. If you are not
sure which brand(s) will work, the &a.questions; is a good
place to ask.</para>
</listitem>
<listitem>
<para>Try to get it working. Keep in mind that there is no
guarantee it will work, your mileage may vary.</para>
</listitem>
</itemizedlist>
<para>If you want to try to make it work, you can do the
following, but please keep in mind that you do this <emphasis>at
your own risk</emphasis>! Just because it worked for me does
not mean it will work for you.</para>
<para>There are three steps to the process. They are:</para>
<procedure>
<step>
<para>Make sure you already have <filename>ppp.conf</filename>
set up. See the beginning of this chapter for more details
on doing so.</para>
</step>
<step>
<para>Since the modem does not speak the correct protocol, we
need to learn how to speak its variant of the protocol.
This information was obtained from a <ulink
url="http://www.dslreports.com/forum/remark,367540;root=equip,16;mode=flat">DSLreports
forum message</ulink>.</para>
<para>The modem speaks <literal>0x3c12</literal> for
<literal>DISCOVERY</literal>, and <literal>0x3c13</literal>
for <literal>PAYLOAD</literal> identifiers instead of
<literal>0x8863</literal> and <literal>0x8864</literal>
respectively, as mandated by the PPPoE specification.</para>
<informaltable>
<tgroup cols="3">
<thead>
<row>
<entry>Code</entry>
<entry>RFC's Code</entry>
<entry>Dual Link Modem's Code</entry>
</row>
</thead>
<tbody>
<row>
<entry>PAYLOAD</entry>
<entry>0x8863</entry>
<entry>0x3c12</entry>
</row>
<row>
<entry>PAYLOAD</entry>
<entry>0x8864</entry>
<entry>0x3c13</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>So, now what? You need to recompile the
<literal>NETGRAPH_PPPOE</literal> code with the modem's
codes. For this, you should have installed the full kernel
sources.</para>
<para>Find the
<filename>/usr/src/sys/netgraph/ng_pppoe.h</filename> file.
Be careful while editing this file. You have to modify both
the little and the big endian entries.</para>
<itemizedlist>
<listitem>
<para>For big endian, find the line with
<literal>0x8863</literal> in it, and replace the number
with <literal>0x3c12</literal>. Do the same with
<literal>0x8864</literal>, replacing it with
<literal>0x3c13</literal>.</para>
</listitem>
<listitem>
<para>For little endian, find the line with
<literal>0x6388</literal>in it, and replace the number
with <literal>0x123c</literal>. Do the same with
<literal>0x6488</literal>, replacing it with
<literal>0x133c</literal>.</para>
</listitem>
</itemizedlist>
<para>Here is a <command>diff</command> of how the new file
should look:</para>
<screen>&prompt.user; <userinput>diff -u ng_pppoe.h.orig ng_pppoe.h</userinput></screen>
<programlisting>
--- ng_pppoe.h.orig Thu Apr 12 13:42:46 2001
+++ ng_pppoe.h Thu Apr 12 13:44:47 2001
@@ -148,8 +148,8 @@
#define PTT_SYS_ERR (0x0202)
#define PTT_GEN_ERR (0x0203)
-#define ETHERTYPE_PPPOE_DISC 0x8863 /* pppoe discovery packets */
-#define ETHERTYPE_PPPOE_SESS 0x8864 /* pppoe session packets */
+#define ETHERTYPE_PPPOE_DISC 0x3c12 /* pppoe discovery packets */
+#define ETHERTYPE_PPPOE_SESS 0x3c13 /* pppoe session packets */
#else
#define PTT_EOL (0x0000)
#define PTT_SRV_NAME (0x0101)
@@ -162,8 +162,8 @@
#define PTT_SYS_ERR (0x0202)
#define PTT_GEN_ERR (0x0302)
-#define ETHERTYPE_PPPOE_DISC 0x6388 /* pppoe discovery packets */
-#define ETHERTYPE_PPPOE_SESS 0x6488 /* pppoe session packets */
+#define ETHERTYPE_PPPOE_DISC 0x123c /* pppoe discovery packets */
+#define ETHERTYPE_PPPOE_SESS 0x133c /* pppoe session packets */
#endif
struct pppoe_tag {</programlisting>
<para>Then do the following as
<username>root</username>:</para>
<screen>&prompt.root; <userinput>cd /usr/src/sys/modules/netgraph/pppoe</userinput>
&prompt.root; <userinput>make clean depend all install</userinput>
&prompt.root; <userinput>make clean</userinput></screen>
<para>Now you can speak the modem's variant of the PPPoE
specification.</para>
<para>The third step is to figure out the name of the profile
your ISP assigned to the modem. The information for this
step was obtained from the <ulink
url="http://www.roaringpenguin.com/pppoe/">Roaring Penguin
PPPoE</ulink> program which can be found in the <link
linkend="ports">ports collection</link>. If you still are
not able to find it, ask your ISP's tech support.</para>
<para>If they do not know it either, and you are feeling bold
(this may de-program your modem and render it useless, so
think twice about doing it).</para>
<para>Install the program shipped with the modem by your
provider. Then, access the <literal>System</literal> menu
from the program. The name of your profile should be
listed there. It is usually <emphasis>ISP</emphasis>.</para>
<para>The profile name will be used in the PPPoE configuration
inside <filename>ppp.conf</filename> as the provider
parameter. See the &man.ppp.8; manual page for more
information.</para>
<para>The PPPoE line in your <filename>ppp.conf</filename>
should look like this:</para>
<programlisting>set device PPPoE:<replaceable>xl1</replaceable>:<replaceable>ISP</replaceable></programlisting>
<para>Do not forget to change <replaceable>xl1</replaceable>
to the proper device for your ethernet card.</para>
<para>Do not forget to change <replaceable>ISP</replaceable>
to the profile you have just found above.</para>
</step>
</procedure>
<para>For additional information, you can try:</para>
<itemizedlist>
<listitem>
<para><ulink
url="http://www.daemonnews.org/200101/pppoe.html">Cheaper
Broadband with FreeBSD on DSL</ulink> by <ulink
url="http://www.daemonnews.org/200101/pppoe.html#author">Renauld
Waldura</ulink> in <ulink url="http://www.daemonnews.org/">Daemon
News</ulink>.</para>
</listitem>
<listitem>
<para>Another PPPoE tutorial by <ulink
url="http://www.sympaticousers.org/faq/freebsd_howto.htm">Sympatico
Corp</ulink>.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="slip">

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.30 2000/11/11 19:24:47 ben Exp $
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.31 2001/04/09 00:33:55 dd Exp $
-->
<chapter id="ppp-and-slip">
@ -1652,7 +1652,7 @@ exit 1
</sect1>
<sect1 id="pppoe">
<title>Using PPP over Ethernet (PPPoE)</title>
<title>Using <application>PPP</application> over Ethernet (PPPoE)</title>
<para><emphasis>Contributed by &a.jim; (from <ulink
url="http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html">node.to</ulink>) 10 Jan 2000.</emphasis></para>
@ -1715,7 +1715,7 @@ exit 1
<filename>ppp.conf</filename>:</para>
<programlisting>default: # or name_of_service_provider
set device PPPoE:xl1 # replace xl1 with your ethernet device
set device PPPoE:<replaceable>xl1</replaceable> # replace xl1 with your ethernet device
set mru 1492
set mtu 1492
set authname YOURLOGINNAME
@ -1759,6 +1759,216 @@ ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="default" # or your provider</programlisting>
</sect2>
<sect2>
<title>PPPoE with a 3Com HomeConnect ADSL Modem Dual Link</title>
<para><emphasis>Contributed by &a.lioux;, 07 Apr
2001.</emphasis></para>
<para>In short, it does not work. It should, but unfortunately,
that is not the case. For whatever reason, this modem does not
follow <ulink url="http://www.faqs.org/rfcs/rfc2516.html">RFC
2516</ulink> (<emphasis>A Method for transmitting PPP over
Ethernet (PPPoE)</emphasis>, written by L. Mamakos, K. Lidl,
J. Evarts, D. Carrel, D. Simone, and R. Wheeler).</para>
<para>Since it does not follow the specification, FreeBSD's PPPoE
implementation will not talk to it. It is very likely that it will
not work under other unixes for that same reason. Complain to <ulink
url="http://www.3com.com/">3Com</ulink> if you think it should
comply with the PPPoE specification.</para>
<para>If you absolutely want to use your ADSL connection with
FreeBSD and are stuck with this modem, you can either:</para>
<itemizedlist>
<listitem>
<para>Try replacing the modem with a different brand or model
if your DSL provider permits you to do so. If you are not
sure which brand(s) will work, the &a.questions; is a good
place to ask.</para>
</listitem>
<listitem>
<para>Try to get it working. Keep in mind that there is no
guarantee it will work, your mileage may vary.</para>
</listitem>
</itemizedlist>
<para>If you want to try to make it work, you can do the
following, but please keep in mind that you do this <emphasis>at
your own risk</emphasis>! Just because it worked for me does
not mean it will work for you.</para>
<para>There are three steps to the process. They are:</para>
<procedure>
<step>
<para>Make sure you already have <filename>ppp.conf</filename>
set up. See the beginning of this chapter for more details
on doing so.</para>
</step>
<step>
<para>Since the modem does not speak the correct protocol, we
need to learn how to speak its variant of the protocol.
This information was obtained from a <ulink
url="http://www.dslreports.com/forum/remark,367540;root=equip,16;mode=flat">DSLreports
forum message</ulink>.</para>
<para>The modem speaks <literal>0x3c12</literal> for
<literal>DISCOVERY</literal>, and <literal>0x3c13</literal>
for <literal>PAYLOAD</literal> identifiers instead of
<literal>0x8863</literal> and <literal>0x8864</literal>
respectively, as mandated by the PPPoE specification.</para>
<informaltable>
<tgroup cols="3">
<thead>
<row>
<entry>Code</entry>
<entry>RFC's Code</entry>
<entry>Dual Link Modem's Code</entry>
</row>
</thead>
<tbody>
<row>
<entry>PAYLOAD</entry>
<entry>0x8863</entry>
<entry>0x3c12</entry>
</row>
<row>
<entry>PAYLOAD</entry>
<entry>0x8864</entry>
<entry>0x3c13</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>So, now what? You need to recompile the
<literal>NETGRAPH_PPPOE</literal> code with the modem's
codes. For this, you should have installed the full kernel
sources.</para>
<para>Find the
<filename>/usr/src/sys/netgraph/ng_pppoe.h</filename> file.
Be careful while editing this file. You have to modify both
the little and the big endian entries.</para>
<itemizedlist>
<listitem>
<para>For big endian, find the line with
<literal>0x8863</literal> in it, and replace the number
with <literal>0x3c12</literal>. Do the same with
<literal>0x8864</literal>, replacing it with
<literal>0x3c13</literal>.</para>
</listitem>
<listitem>
<para>For little endian, find the line with
<literal>0x6388</literal>in it, and replace the number
with <literal>0x123c</literal>. Do the same with
<literal>0x6488</literal>, replacing it with
<literal>0x133c</literal>.</para>
</listitem>
</itemizedlist>
<para>Here is a <command>diff</command> of how the new file
should look:</para>
<screen>&prompt.user; <userinput>diff -u ng_pppoe.h.orig ng_pppoe.h</userinput></screen>
<programlisting>
--- ng_pppoe.h.orig Thu Apr 12 13:42:46 2001
+++ ng_pppoe.h Thu Apr 12 13:44:47 2001
@@ -148,8 +148,8 @@
#define PTT_SYS_ERR (0x0202)
#define PTT_GEN_ERR (0x0203)
-#define ETHERTYPE_PPPOE_DISC 0x8863 /* pppoe discovery packets */
-#define ETHERTYPE_PPPOE_SESS 0x8864 /* pppoe session packets */
+#define ETHERTYPE_PPPOE_DISC 0x3c12 /* pppoe discovery packets */
+#define ETHERTYPE_PPPOE_SESS 0x3c13 /* pppoe session packets */
#else
#define PTT_EOL (0x0000)
#define PTT_SRV_NAME (0x0101)
@@ -162,8 +162,8 @@
#define PTT_SYS_ERR (0x0202)
#define PTT_GEN_ERR (0x0302)
-#define ETHERTYPE_PPPOE_DISC 0x6388 /* pppoe discovery packets */
-#define ETHERTYPE_PPPOE_SESS 0x6488 /* pppoe session packets */
+#define ETHERTYPE_PPPOE_DISC 0x123c /* pppoe discovery packets */
+#define ETHERTYPE_PPPOE_SESS 0x133c /* pppoe session packets */
#endif
struct pppoe_tag {</programlisting>
<para>Then do the following as
<username>root</username>:</para>
<screen>&prompt.root; <userinput>cd /usr/src/sys/modules/netgraph/pppoe</userinput>
&prompt.root; <userinput>make clean depend all install</userinput>
&prompt.root; <userinput>make clean</userinput></screen>
<para>Now you can speak the modem's variant of the PPPoE
specification.</para>
<para>The third step is to figure out the name of the profile
your ISP assigned to the modem. The information for this
step was obtained from the <ulink
url="http://www.roaringpenguin.com/pppoe/">Roaring Penguin
PPPoE</ulink> program which can be found in the <link
linkend="ports">ports collection</link>. If you still are
not able to find it, ask your ISP's tech support.</para>
<para>If they do not know it either, and you are feeling bold
(this may de-program your modem and render it useless, so
think twice about doing it).</para>
<para>Install the program shipped with the modem by your
provider. Then, access the <literal>System</literal> menu
from the program. The name of your profile should be
listed there. It is usually <emphasis>ISP</emphasis>.</para>
<para>The profile name will be used in the PPPoE configuration
inside <filename>ppp.conf</filename> as the provider
parameter. See the &man.ppp.8; manual page for more
information.</para>
<para>The PPPoE line in your <filename>ppp.conf</filename>
should look like this:</para>
<programlisting>set device PPPoE:<replaceable>xl1</replaceable>:<replaceable>ISP</replaceable></programlisting>
<para>Do not forget to change <replaceable>xl1</replaceable>
to the proper device for your ethernet card.</para>
<para>Do not forget to change <replaceable>ISP</replaceable>
to the profile you have just found above.</para>
</step>
</procedure>
<para>For additional information, you can try:</para>
<itemizedlist>
<listitem>
<para><ulink
url="http://www.daemonnews.org/200101/pppoe.html">Cheaper
Broadband with FreeBSD on DSL</ulink> by <ulink
url="http://www.daemonnews.org/200101/pppoe.html#author">Renauld
Waldura</ulink> in <ulink url="http://www.daemonnews.org/">Daemon
News</ulink>.</para>
</listitem>
<listitem>
<para>Another PPPoE tutorial by <ulink
url="http://www.sympaticousers.org/faq/freebsd_howto.htm">Sympatico
Corp</ulink>.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="slip">