[BACK]Return to if_atm.h CVS log [TXT][DIR] Up to [local] / sys / net

Annotation of sys/net/if_atm.h, Revision 1.1

1.1     ! nbrk        1: /*      $OpenBSD: if_atm.h,v 1.12 2006/06/17 10:22:06 henning Exp $       */
        !             2:
        !             3: /*
        !             4:  *
        !             5:  * Copyright (c) 1996 Charles D. Cranor and Washington University.
        !             6:  * All rights reserved.
        !             7:  *
        !             8:  * Redistribution and use in source and binary forms, with or without
        !             9:  * modification, are permitted provided that the following conditions
        !            10:  * are met:
        !            11:  * 1. Redistributions of source code must retain the above copyright
        !            12:  *    notice, this list of conditions and the following disclaimer.
        !            13:  * 2. Redistributions in binary form must reproduce the above copyright
        !            14:  *    notice, this list of conditions and the following disclaimer in the
        !            15:  *    documentation and/or other materials provided with the distribution.
        !            16:  * 3. All advertising materials mentioning features or use of this software
        !            17:  *    must display the following acknowledgement:
        !            18:  *      This product includes software developed by Charles D. Cranor and
        !            19:  *     Washington University.
        !            20:  * 4. The name of the author may not be used to endorse or promote products
        !            21:  *    derived from this software without specific prior written permission.
        !            22:  *
        !            23:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            24:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
        !            25:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
        !            26:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
        !            27:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
        !            28:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        !            29:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        !            30:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        !            31:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
        !            32:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        !            33:  */
        !            34:
        !            35: /*
        !            36:  * net/if_atm.h
        !            37:  */
        !            38: #ifndef _NET_IF_ATM_H_
        !            39: #define _NET_IF_ATM_H_
        !            40:
        !            41: #define RTALLOC1(A,B)          rtalloc1((A),(B), 0)
        !            42:
        !            43: /*
        !            44:  * pseudo header for packet transmission
        !            45:  */
        !            46:
        !            47: struct atm_pseudohdr {
        !            48:   u_int8_t atm_ph[4];  /* flags+VPI+VCI1(msb)+VCI2(lsb) */
        !            49: };
        !            50:
        !            51: #define ATM_PH_FLAGS(X)        ((X)->atm_ph[0])
        !            52: #define ATM_PH_VPI(X)  ((X)->atm_ph[1])
        !            53: #define ATM_PH_VCI(X)  ((((X)->atm_ph[2]) << 8) | ((X)->atm_ph[3]))
        !            54: #define ATM_PH_SETVCI(X,V) { \
        !            55:        (X)->atm_ph[2] = ((V) >> 8) & 0xff; \
        !            56:        (X)->atm_ph[3] = ((V) & 0xff); \
        !            57: }
        !            58:
        !            59: #define ATM_PH_AAL5    0x01    /* use AAL5? (0 == aal0) */
        !            60: #define ATM_PH_LLCSNAP 0x02    /* use the LLC SNAP encoding (iff aal5) */
        !            61:
        !            62: #define ATM_PH_DRIVER7  0x40   /* reserve for driver's use */
        !            63: #define ATM_PH_DRIVER8  0x80   /* reserve for driver's use */
        !            64:
        !            65: #define ATMMTU         9180    /* ATM MTU size for IP */
        !            66:                                /* XXX: could be 9188 with LLC/SNAP according
        !            67:                                        to comer */
        !            68:
        !            69: /* user's ioctl hook for raw atm mode */
        !            70: #define SIOCRAWATM     _IOWR('a', 122, int)    /* set driver's raw mode */
        !            71:
        !            72: /* atm_pseudoioctl: turns on and off RX VCIs  [for internal use only!] */
        !            73: struct atm_pseudoioctl {
        !            74:   struct atm_pseudohdr aph;
        !            75:   void *rxhand;
        !            76: };
        !            77: #define SIOCATMENA     _IOWR('a', 123, struct atm_pseudoioctl) /* enable */
        !            78: #define SIOCATMDIS     _IOWR('a', 124, struct atm_pseudoioctl) /* disable */
        !            79:
        !            80: /*
        !            81:  * XXX forget all the garbage in if_llc.h and do it the easy way
        !            82:  */
        !            83:
        !            84: #define ATMLLC_HDR "\252\252\3\0\0\0"
        !            85: struct atmllc {
        !            86:   u_int8_t llchdr[6];  /* aa.aa.03.00.00.00 */
        !            87:   u_int8_t type[2];    /* "ethernet" type */
        !            88: };
        !            89:
        !            90: /* ATM_LLC macros: note type code in host byte order */
        !            91: #define ATM_LLC_TYPE(X) (((X)->type[0] << 8) | ((X)->type[1]))
        !            92: #define ATM_LLC_SETTYPE(X,V) { \
        !            93:        (X)->type[0] = ((V) >> 8) & 0xff; \
        !            94:        (X)->type[1] = ((V) & 0xff); \
        !            95: }
        !            96:
        !            97: #ifdef _KERNEL
        !            98: void   atm_ifattach(struct ifnet *);
        !            99: void   atm_input(struct ifnet *, struct atm_pseudohdr *,
        !           100:                struct mbuf *, void *);
        !           101: int    atm_output(struct ifnet *, struct mbuf *, struct sockaddr *,
        !           102:                struct rtentry *);
        !           103: #endif /* _KERNEL */
        !           104: #endif /* _NET_IF_ATM_H_ */

CVSweb