Date: Sun, 15 Jun 1997 14:14:46 +0200 (MET DST) From: Wilko Bulte <wilko@yedi.iaf.nl> To: FreeBSD-hackers@freebsd.org (FreeBSD hackers list), rene@freeze.iaf.nl (Rene 'Freeze' de Vries) Subject: ISDN troubles: it now works Message-ID: <199706151214.OAA00995@yedi.iaf.nl>
next in thread | raw e-mail | index | archive | help
Hello We've finally gotten ISDN/PPP to work. There were multiple problems, including a typo in the kernel config file. But the best brain crusher was the fact that in isdnpppd the whole negotiation/setup stuff about local & remote IP addresses and the default route adding was commented out with #if 0's Which meant that after we finally got the dialling stuff working we saw a message telling us which addresses were assigned to local/remote ends of the connection. The ISP we have uses dynamic addresses. But isdnpppd never used these adresses to re-setup the link. Cute.. The stupid thing is that all options related to handling dynamic adress setup are accepted like in the 'normal' pppd. But are simply ignored. I really don't understand why this is done, because after changing the #if 0 into #if 1 the protocols worked OK. That is, you need also a small hack in the kernel: /* FALLTHROUGH */ case SIOCSIFFLAGS: x= splimp(); if(!(ifr->ifr_flags & IFF_UP)) { if(sc->sc_outstate != STATE_IDLE){ printf("bisdn: SIOCSIFFLAGS disco but fall thru\n"); #if wilko isdn_disconnect(sc->sc_appl, 0); #endif } sc->ipp_ppp_sc->sc_if.if_flags &= ~(IFF_UP|IFF_RUNNING); sc->ipp_ppp_sc->sc_npmode[NP_IP]=NPMODE_ERROR; } else { sc->ipp_ppp_sc->sc_if.if_flags |= (IFF_UP|IFF_RUNNING); sc->ipp_ppp_sc->sc_npmode[NP_IP]=NPMODE_PASS; } splx(x); break; It looks like that if you want to use the address negotiation you need to patch the above in /sys/bisdn/b_isdnipp.c If you don't the connection is broken ('disco') on every attempt to dial. Dial is ok, and then during the re-setup with the assigned addresses (I guess..) the connection is dropped. Since I'm not an expert on this stuff I appreciate knowledgable insight/ comments on why the #if 0 are there and why patch to the ioctl is needed. Thanks to all the kind people who either helped or offered help to get things working (Peter, Gary, Wolfgang, Marc). Wilko _ ____________________________________________________________________ | / o / / _ Bulte email: wilko@yedi.iaf.nl - Arnhem, The Netherlands |/|/ / / /( (_) Do, or do not. There is no 'try' - Yoda --------------------------------------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199706151214.OAA00995>