xref: /csrg-svn/sys/net/if_llc.h (revision 38969)
1*38969Skarels /*
2*38969Skarels  * Copyright (c) 1988 Regents of the University of California.
3*38969Skarels  * All rights reserved.
4*38969Skarels  *
5*38969Skarels  * Redistribution and use in source and binary forms are permitted
6*38969Skarels  * provided that the above copyright notice and this paragraph are
7*38969Skarels  * duplicated in all such forms and that any documentation,
8*38969Skarels  * advertising materials, and other materials related to such
9*38969Skarels  * distribution and use acknowledge that the software was developed
10*38969Skarels  * by the University of California, Berkeley.  The name of the
11*38969Skarels  * University may not be used to endorse or promote products derived
12*38969Skarels  * from this software without specific prior written permission.
13*38969Skarels  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14*38969Skarels  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15*38969Skarels  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16*38969Skarels  *
17*38969Skarels  *      @(#)if_llc.h	7.1 (Berkeley) 09/04/89
18*38969Skarels  */
19*38969Skarels 
20*38969Skarels /*
21*38969Skarels  * IEEE 802.2 Link Level Control headers, for use in conjunction with
22*38969Skarels  * 802.{3,4,5} media access control methods.
23*38969Skarels  *
24*38969Skarels  * Headers here do not use bit fields due to shortcommings in many
25*38969Skarels  * compilers.
26*38969Skarels  */
27*38969Skarels 
28*38969Skarels struct llc {
29*38969Skarels 	u_char	llc_dsap;
30*38969Skarels 	u_char	llc_ssap;
31*38969Skarels 	union {
32*38969Skarels 	    struct {
33*38969Skarels 		u_char control;
34*38969Skarels 		u_char format_id;
35*38969Skarels 		u_char class;
36*38969Skarels 		u_char window_x2;
37*38969Skarels 	    } type_u;
38*38969Skarels 	    struct {
39*38969Skarels 		u_char num_snd_x2;
40*38969Skarels 		u_char num_rcv_x2;
41*38969Skarels 	    } type_i;
42*38969Skarels 	    struct {
43*38969Skarels 		u_char control;
44*38969Skarels 		u_char num_rcv_x2;
45*38969Skarels 	    } type_s;
46*38969Skarels 	    struct {
47*38969Skarels 		u_char control;
48*38969Skarels 		u_char org_code[3];
49*38969Skarels 		u_short ether_type;
50*38969Skarels 	    } type_snap;
51*38969Skarels 	} llc_un;
52*38969Skarels };
53*38969Skarels #define llc_control llc_un.type_u.control
54*38969Skarels #define llc_fid llc_un.type_u.format_id
55*38969Skarels #define llc_class llc_un.type_u.class
56*38969Skarels #define llc_window llc_un.type_u.window_x2
57*38969Skarels 
58*38969Skarels #define LLC_UI		0x3
59*38969Skarels #define LLC_UI_P	0x13
60*38969Skarels #define LLC_XID		0xaf
61*38969Skarels #define LLC_XID_P	0xbf
62*38969Skarels #define LLC_TEST	0xe3
63*38969Skarels #define LLC_TEST_P	0xf3
64*38969Skarels 
65*38969Skarels #define LLC_ISO_LSAP	0xfe
66*38969Skarels #define LLC_SNAP_LSAP	0xaa
67