From ab7d88ae2d8ea955c6193cc242b9cee4d58f8fd4 Mon Sep 17 00:00:00 2001 From: brian Date: Sat, 8 May 1999 11:07:56 +0000 Subject: o Redesign the layering mechanism and make the aliasing code part of the layering. We now ``stack'' layers as soon as we open the device (when we figure out what we're dealing with). A static set of `dispatch' routines are also declared for dealing with incoming packets after they've been `pulled' up through the stacked layers. Physical devices are now assigned handlers based on the device type when they're opened. For the moment there are three device types; ttys, execs and tcps. o Increment version number to 2.2 o Make an entry in [uw]tmp for non-tty -direct invocations (after pap/chap authentication). o Make throughput counters quad_t's o Account for the absolute number of mbuf malloc()s and free()s in ``show mem''. o ``show modem'' becomes ``show physical''. --- usr.sbin/ppp/layer.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 usr.sbin/ppp/layer.h (limited to 'usr.sbin/ppp/layer.h') diff --git a/usr.sbin/ppp/layer.h b/usr.sbin/ppp/layer.h new file mode 100644 index 0000000..67dde31 --- /dev/null +++ b/usr.sbin/ppp/layer.h @@ -0,0 +1,52 @@ +/*- + * Copyright (c) 1999 Brian Somers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id:$ + */ + +#define LAYER_ASYNC 2 +#define LAYER_SYNC 3 +#define LAYER_HDLC 4 +#define LAYER_ACF 5 +#define LAYER_PROTO 6 +#define LAYER_LQR 7 +#define LAYER_CCP 8 +#define LAYER_VJ 9 +#define LAYER_ALIAS 10 + +#define LAYER_MAX 10 /* How many layers we can handle on a link */ + +struct mbuf; +struct link; +struct bundle; + +struct layer { + int type; + const char *name; + struct mbuf *(*push)(struct bundle *, struct link *, struct mbuf *, + int pri, u_short *proto); + struct mbuf *(*pull)(struct bundle *, struct link *, struct mbuf *, + u_short *); +}; -- cgit v1.1