Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Oct 2000 03:23:31 GMT
From:      "Aaron Hill" <hillaa@hotmail.com>
To:        freebsd-questions@FreeBSD.ORG, freebsd-net@FreeBSD.ORG
Cc:        paulh@chariot.net.au, julian@elischer.org, ao@pobox.com, gcorcoran@lucent.com
Subject:   Solved! R4.1.1 PPPoE with ADSL (Telstra Bigpond)
Message-ID:  <F40X8KShPdHfKsp3MSi000012ea@hotmail.com>

next in thread | raw e-mail | index | archive | help
For those following my problems getting FreeBSD 4.1.1-RELEASE to work with 
ADSL, that problem is now solved. Thank you to everyone on the list who 
responded or just spent some brain time on the problem, I appreciate your 
help.

Please read on for the solution.

What it all comes down to is my ISPs equipment is not RFC 2516 compliant - 
in the way I read the RFC at least. Their Access Concentrator would not work 
correctly with a PPPoE discovery session unless the the Service-Name tag was 
positioned as the last tag in the PPPoE payload. Following is proof of that.

First here's the system I'm working with...

homer# uname -a
FreeBSD homer 4.1.1-RELEASE FreeBSD 4.1.1-RELEASE #2: Fri Oct 27 04:25:15 
EST 2000     root@homer:/usr/src/sys/compile/FWCUSTOM  i386

... next I should say that the only thing that was being changed on this 
system between the following tcpdump captures was a modification of the file 
/usr/src/sys/netgraph/ng_pppoe.c , a re-compile of the kernel and a reboot.

Here's what is happening when I try to start a PPPoE session with the 
standard 4.1.1-RELEASE code...

0:e0:29:73:81:dd Broadcast 8863 60: PPPoE PADI [Service-Name "bigpond"] 
[Host-Uniq UTF8]

0:90:39:47:0:3f 0:e0:29:73:81:dd 8863 192: PPPoE PADO [Service-Name] 
[Service-Name "telstra"] [Service-Name "cmux"] [Service-Name "bigpond"] 
[Service-Name "n7061992k"] [Service-Name "n2155202k"] [Service-Name 
"n2155201k"] [Service-Name "n1011426k"] [Service-Name "n2155203k"] 
[Service-Name "n7061995k"] [Service-Name "n2155205k"] [Service-Name 
"n3120511k"] [Service-Name "n2155206k"] [AC-Name "nkt1-kent"] [Hos
t-Uniq UTF8]

0:e0:29:73:81:dd 0:90:39:47:0:3f 8863 60: PPPoE PADR [Service-Name 
"bigpond"] [AC-Name "nkt1-kent"] [Host-Uniq UTF8]

0:90:39:47:0:3f 0:e0:29:73:81:dd 8863 62: PPPoE PADS [Service-Name-Error 
"SvcNameTag Error"] [AC-Name "nkt1-kent"] [Host-Uniq UTF8]


... so that's not working. You can see FreeBSD makes correct PADI and PADR 
requests of the Access Concentrator but receives nonsense in reply - the AC 
is not hearing what FreeBSD is saying. So next I modified the source code 
for pppoe to put the Service-Name tag after the Host-Uniq tag in the PADI 
frame. Here's the results...

0:e0:29:73:81:dd Broadcast 8863 60: PPPoE PADI [Host-Uniq UTF8] 
[Service-Name "bigpond"]

0:90:39:47:0:3f 0:e0:29:73:81:dd 8863 60: PPPoE PADO [Service-Name 
"bigpond"] [AC-Name "nkt1-kent"] [Host-Uniq UTF8]

0:e0:29:73:81:dd 0:90:39:47:0:3f 8863 60: PPPoE PADR [Service-Name 
"bigpond"] [AC-Name "nkt1-kent"] [Host-Uniq UTF8]

0:90:39:47:0:3f 0:e0:29:73:81:dd 8863 62: PPPoE PADS [Service-Name-Error 
"SvcNameTag Error"] [AC-Name "nkt1-kent"] [Host-Uniq UTF8]


... so now I'm getting somewhere - the Access Concentrator is reading the 
PADI correctly and offering the PADO as it should. Problem is it doesn't 
understand the next PADR frame so another Service-Name-Error is encountered. 
Kicking myself I modify the code again, this time to change the order of the 
tags in the PADR frame as well as the PADI frame. Here's the results...


0:e0:29:73:81:dd Broadcast 8863 60: PPPoE PADI [Host-Uniq UTF8] 
[Service-Name "bigpond"]

0:90:39:47:0:3f 0:e0:29:73:81:dd 8863 60: PPPoE PADO [Service-Name 
"bigpond"] [AC-Name "nkt1-kent"] [Host-Uniq UTF8]

0:e0:29:73:81:dd 0:90:39:47:0:3f 8863 60: PPPoE PADR [Host-Uniq UTF8] 
[AC-Name "nkt1-kent"] [Service-Name "bigpond"]

0:90:39:47:0:3f 0:e0:29:73:81:dd 8863 60: PPPoE PADS [ses 0x1ec] 
[Service-Name "bigpond"] [AC-Name "nkt1-kent"] [Host-Uniq UTF8]


... success! The session then goes on to authenticate and set up IP 
addresses etc. Here's the final result...

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
        inet 61.9.179.226 --> 172.31.18.3 netmask 0xff000000
        Opened by PID 181

...done.

So what do I/we do next with this information? Is it worth changing the 
FreeBSD source to accomodate for dodgy ISP equipment? I can't say what type 
of Access Concentrator it is I'm dealing with but if this Telco is using it 
I'd say others will.

Of course anyone's welcome to the changes I've made but based on the 
descriptions above I'm sure you could replicate it yourself easily. I only 
changed the position of two lines in the file.

Thanks again
Aaron Hill

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at 
http://profiles.msn.com.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F40X8KShPdHfKsp3MSi000012ea>