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