Annotation of embedaddon/iftop/llc.h, revision 1.1.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>