Annotation of embedaddon/iftop/llc.h, revision 1.1

1.1     ! misho       1: /*
        !             2:  * Copyright (c) 1993, 1994, 1997
        !             3:  *     The Regents of the University of California.  All rights reserved.
        !             4:  *
        !             5:  * Redistribution and use in source and binary forms, with or without
        !             6:  * modification, are permitted provided that: (1) source code distributions
        !             7:  * retain the above copyright notice and this paragraph in its entirety, (2)
        !             8:  * distributions including binary code include the above copyright notice and
        !             9:  * this paragraph in its entirety in the documentation or other materials
        !            10:  * provided with the distribution, and (3) all advertising materials mentioning
        !            11:  * features or use of this software display the following acknowledgement:
        !            12:  * ``This product includes software developed by the University of California,
        !            13:  * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
        !            14:  * the University nor the names of its contributors may be used to endorse
        !            15:  * or promote products derived from this software without specific prior
        !            16:  * written permission.
        !            17:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            18:  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            19:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            20:  *
        !            21:  * @(#) $Header: /home/pdw/vcvs/repos/iftop/llc.h,v 1.2 2003/06/06 22:42:35 pdw Exp $ (LBL)
        !            22:  */
        !            23: 
        !            24: /*
        !            25:  * This stuff should come from a system header file, but there's no
        !            26:  * obviously portable way to do that and it's not really going
        !            27:  * to change from system to system.
        !            28:  */
        !            29: 
        !            30: /*
        !            31:  * A somewhat abstracted view of the LLC header
        !            32:  */
        !            33: 
        !            34: struct llc {
        !            35:        u_int8_t dsap;
        !            36:        u_int8_t ssap;
        !            37:        union {
        !            38:                u_int8_t u_ctl;
        !            39:                u_int16_t is_ctl;
        !            40:                struct {
        !            41:                        u_int8_t snap_ui;
        !            42:                        u_int8_t snap_pi[5];
        !            43:                } snap;
        !            44:                struct {
        !            45:                        u_int8_t snap_ui;
        !            46:                        u_int8_t snap_orgcode[3];
        !            47:                        u_int8_t snap_ethertype[2];
        !            48:                } snap_ether;
        !            49:        } ctl;
        !            50: };
        !            51: 
        !            52: #define        llcui           ctl.snap.snap_ui
        !            53: #define        llcpi           ctl.snap.snap_pi
        !            54: #define        llc_orgcode     ctl.snap_ether.snap_orgcode
        !            55: #define        llc_ethertype   ctl.snap_ether.snap_ethertype
        !            56: #define        llcis           ctl.is_ctl
        !            57: #define        llcu            ctl.u_ctl
        !            58: 
        !            59: #define        LLC_U_FMT       3
        !            60: #define        LLC_GSAP        1
        !            61: #define LLC_S_FMT      1
        !            62: 
        !            63: #define        LLC_U_POLL      0x10
        !            64: #define        LLC_IS_POLL     0x0100
        !            65: #define        LLC_XID_FI      0x81
        !            66: 
        !            67: #define        LLC_U_CMD(u)    ((u) & 0xef)
        !            68: #define        LLC_UI          0x03
        !            69: #define        LLC_UA          0x63
        !            70: #define        LLC_DISC        0x43
        !            71: #define        LLC_DM          0x0f
        !            72: #define        LLC_SABME       0x6f
        !            73: #define        LLC_TEST        0xe3
        !            74: #define        LLC_XID         0xaf
        !            75: #define        LLC_FRMR        0x87
        !            76: 
        !            77: #define        LLC_S_CMD(is)   (((is) >> 1) & 0x03)
        !            78: #define        LLC_RR          0x0001
        !            79: #define        LLC_RNR         0x0005
        !            80: #define        LLC_REJ         0x0009
        !            81: 
        !            82: #define LLC_IS_NR(is)  (((is) >> 9) & 0x7f)
        !            83: #define LLC_I_NS(is)   (((is) >> 1) & 0x7f)
        !            84: 
        !            85: #ifndef LLCSAP_NULL
        !            86: #define        LLCSAP_NULL             0x00
        !            87: #endif
        !            88: #ifndef LLCSAP_GLOBAL
        !            89: #define        LLCSAP_GLOBAL           0xff
        !            90: #endif
        !            91: #ifndef LLCSAP_8021B_I
        !            92: #define        LLCSAP_8021B_I          0x02
        !            93: #endif
        !            94: #ifndef LLCSAP_8021B_G
        !            95: #define        LLCSAP_8021B_G          0x03
        !            96: #endif
        !            97: #ifndef LLCSAP_IP
        !            98: #define        LLCSAP_IP               0x06
        !            99: #endif
        !           100: #ifndef LLCSAP_PROWAYNM
        !           101: #define        LLCSAP_PROWAYNM         0x0e
        !           102: #endif
        !           103: #ifndef LLCSAP_8021D
        !           104: #define        LLCSAP_8021D            0x42
        !           105: #endif
        !           106: #ifndef LLCSAP_RS511
        !           107: #define        LLCSAP_RS511            0x4e
        !           108: #endif
        !           109: #ifndef LLCSAP_ISO8208
        !           110: #define        LLCSAP_ISO8208          0x7e
        !           111: #endif
        !           112: #ifndef LLCSAP_PROWAY
        !           113: #define        LLCSAP_PROWAY           0x8e
        !           114: #endif
        !           115: #ifndef LLCSAP_SNAP
        !           116: #define        LLCSAP_SNAP             0xaa
        !           117: #endif
        !           118: #ifndef LLCSAP_IPX
        !           119: #define LLCSAP_IPX             0xe0
        !           120: #endif
        !           121: #ifndef LLCSAP_NETBEUI
        !           122: #define LLCSAP_NETBEUI         0xf0
        !           123: #endif
        !           124: #ifndef LLCSAP_ISONS
        !           125: #define        LLCSAP_ISONS            0xfe
        !           126: #endif
        !           127: 
        !           128: #define        OUI_ENCAP_ETHER 0x000000        /* encapsulated Ethernet */
        !           129: #define        OUI_CISCO       0x00000c        /* Cisco protocols */
        !           130: #define        ETHERTYPE_CISCO_CDP     0x2000  /* Cisco Discovery Protocol */
        !           131: #define        OUI_CISCO_90    0x0000f8        /* Cisco bridging */
        !           132: #define        OUI_APPLETALK   0x080007        /* Appletalk */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>