summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/if_cx.c
diff options
context:
space:
mode:
authorjoerg <joerg@FreeBSD.org>1997-05-19 22:03:09 +0000
committerjoerg <joerg@FreeBSD.org>1997-05-19 22:03:09 +0000
commit27ddec53f718ea168a222ceed081cd1a101b23a1 (patch)
treedfad88c2b1e9c2e4a0cded65e393e30e7e9ceffc /sys/i386/isa/if_cx.c
parent13206dfe736ae31106bbaba0db80a492b5b38e67 (diff)
downloadFreeBSD-src-27ddec53f718ea168a222ceed081cd1a101b23a1.zip
FreeBSD-src-27ddec53f718ea168a222ceed081cd1a101b23a1.tar.gz
Major overhaul of the SyncPPP layer. Basically, this comprises now a
full implementation of the sate machine as described in RFC1661, and provides support for plugging in various control protocols. I needed this to provide PPP support for the BISDN project (right now). Unfortunatley, while the existing API was almost up to the point, i needed one minor API change in order to decouple the this-layer- started and this-layer-finished actions from the respective Up and Down events of the lower layer. This requires two additional lines in the attach routines of all existing lower layer interface drivers that are using syncPPP (shortcutting these actions and events). Apart from this, i believe i didn't change the API of all this, so everything should plug in without too many hassles. Please report if i broke something in the existing drivers. For a list of features (including new ones like dial-on-demand), and things still to be done, please refer to the man page i'll commit asap. Encouraged by: Serge Vakulenko <vak@cronyx.ru>
Diffstat (limited to 'sys/i386/isa/if_cx.c')
-rw-r--r--sys/i386/isa/if_cx.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/i386/isa/if_cx.c b/sys/i386/isa/if_cx.c
index d57480b..c7dd4e4 100644
--- a/sys/i386/isa/if_cx.c
+++ b/sys/i386/isa/if_cx.c
@@ -224,6 +224,7 @@ cxattach (struct isa_device *id)
int drq = id->id_drq;
cx_board_t *b = cxboard + unit;
int i;
+ struct sppp *sp;
/* Initialize the board structure. */
cx_init (b, unit, iobase, ffs(irq)-1, drq);
@@ -276,6 +277,13 @@ cxattach (struct isa_device *id)
/* Init routine is never called by upper level? */
sppp_attach (c->ifp);
if_attach (c->ifp);
+ /*
+ * Shortcut the sppp tls/tlf actions to up/down
+ * events since our lower layer is always ready.
+ */
+ sp = (struct sppp*) c->ifp;
+ sp->pp_tls = sp->pp_up;
+ sp->pp_tlf = sp->pp_down;
#if NBPFILTER > 0
/* If BPF is in the kernel, call the attach for it. */
bpfattach (c->ifp, DLT_PPP, PPP_HEADER_LEN);
OpenPOWER on IntegriCloud