Subject: ML-PPP protocol in kernel PPP
To: None <tech-net@netbsd.org>
From: Brad du Plessis <bradd@cat.co.za>
List: tech-net
Date: 07/21/2003 11:48:47
Hi,
I posted a mail to netbsd-help earlier outlining a problem I've come acro=
ss=20
connecting two ISDN TA's using ML-PPP protocol. I'd only managed to make =
the=20
connection in the past with userland-ppp because once the TA's had connec=
ted,=20
to complete the connection required forcing userland-ppp into packet mode=
=20
(basically open up LCP negotiaions).
Now as far as I could find in the pppd man pages, there is no way to forc=
e=20
pppd (version 2.4.0) to startup LCP negotiations so I undertook to hack=20
through the code to force it to do this.
I managed to get it to work doing the following:
In /usr/src/usr.sbin/pppd/pppd/main.c
I added the line:
lcp_open(0); // <------ added this in line 505 main.c
before the 'while (phase !=3D PHASE_DEAD)' loop.
Then in fsm.c:
Now with lcp already opened before (lcp_open(0) already called in line 50=
1=20
main.c) we're in the 'OPENED' state so 'case OPENED:' is selected.
I added the lines:
fsm_sconfreq(f, 0); //line: 188 fsm.c
f->state =3D REQSENT; //line: 189 fsm.c
after the 'if( f->flags & OPT_RESTART )' branch in 'case OPENED:'
Now this all forces a LCP re-negotiation (as far as I can see).
And now the connection is completed.
My questions are:
1) Am I going to cause any other problems in pppd by doing this?
2) Is this a bug that should've been fixed to deal with an ISDN connectio=
n
using ML-PPP?
Thanks,
Brad du Plessis