Commit | Line | Data |
---|---|---|
394326e6 | 1 | /* |
c8dfc989 KB |
2 | * Copyright (c) 1988, 1993 |
3 | * The Regents of the University of California. All rights reserved. | |
394326e6 | 4 | * |
dbf0c423 | 5 | * %sccs.include.redist.c% |
394326e6 | 6 | * |
c8dfc989 | 7 | * @(#)if_llc.h 8.1 (Berkeley) %G% |
394326e6 MK |
8 | */ |
9 | ||
10 | /* | |
11 | * IEEE 802.2 Link Level Control headers, for use in conjunction with | |
12 | * 802.{3,4,5} media access control methods. | |
13 | * | |
14 | * Headers here do not use bit fields due to shortcommings in many | |
15 | * compilers. | |
16 | */ | |
17 | ||
18 | struct llc { | |
19 | u_char llc_dsap; | |
20 | u_char llc_ssap; | |
21 | union { | |
22 | struct { | |
23 | u_char control; | |
24 | u_char format_id; | |
25 | u_char class; | |
26 | u_char window_x2; | |
27 | } type_u; | |
28 | struct { | |
29 | u_char num_snd_x2; | |
30 | u_char num_rcv_x2; | |
31 | } type_i; | |
32 | struct { | |
33 | u_char control; | |
34 | u_char num_rcv_x2; | |
35 | } type_s; | |
06df2928 KS |
36 | struct { |
37 | u_char control; | |
38 | struct frmrinfo { | |
39 | u_char rej_pdu_0; | |
40 | u_char rej_pdu_1; | |
41 | u_char frmr_control; | |
42 | u_char frmr_control_ext; | |
43 | u_char frmr_cause; | |
44 | } frmrinfo; | |
45 | } type_frmr; | |
394326e6 MK |
46 | struct { |
47 | u_char control; | |
48 | u_char org_code[3]; | |
49 | u_short ether_type; | |
50 | } type_snap; | |
06df2928 KS |
51 | struct { |
52 | u_char control; | |
53 | u_char control_ext; | |
54 | } type_raw; | |
394326e6 MK |
55 | } llc_un; |
56 | }; | |
06df2928 KS |
57 | #define llc_control llc_un.type_u.control |
58 | #define llc_control_ext llc_un.type_raw.control_ext | |
59 | #define llc_fid llc_un.type_u.format_id | |
60 | #define llc_class llc_un.type_u.class | |
61 | #define llc_window llc_un.type_u.window_x2 | |
62 | #define llc_frmrinfo llc_un.type_frmr.frmrinfo | |
63 | #define llc_frmr_pdu0 llc_un.type_frmr.frmrinfo.rej_pdu0 | |
64 | #define llc_frmr_pdu1 llc_un.type_frmr.frmrinfo.rej_pdu1 | |
65 | #define llc_frmr_control llc_un.type_frmr.frmrinfo.frmr_control | |
66 | #define llc_frmr_control_ext llc_un.type_frmr.frmrinfo.frmr_control_ext | |
67 | #define llc_frmr_cause llc_un.type_frmr.frmrinfo.frmr_control_ext | |
394326e6 | 68 | |
06df2928 KS |
69 | /* |
70 | * Don't use sizeof(struct llc_un) for LLC header sizes | |
71 | */ | |
72 | #define LLC_ISFRAMELEN 4 | |
73 | #define LLC_UFRAMELEN 3 | |
74 | #define LLC_FRMRLEN 7 | |
75 | ||
76 | /* | |
77 | * Unnumbered LLC format commands | |
78 | */ | |
394326e6 MK |
79 | #define LLC_UI 0x3 |
80 | #define LLC_UI_P 0x13 | |
06df2928 KS |
81 | #define LLC_DISC 0x43 |
82 | #define LLC_DISC_P 0x53 | |
83 | #define LLC_UA 0x63 | |
84 | #define LLC_UA_P 0x73 | |
394326e6 MK |
85 | #define LLC_TEST 0xe3 |
86 | #define LLC_TEST_P 0xf3 | |
06df2928 KS |
87 | #define LLC_FRMR 0x87 |
88 | #define LLC_FRMR_P 0x97 | |
89 | #define LLC_DM 0x0f | |
90 | #define LLC_DM_P 0x1f | |
91 | #define LLC_XID 0xaf | |
92 | #define LLC_XID_P 0xbf | |
93 | #define LLC_SABME 0x6f | |
94 | #define LLC_SABME_P 0x7f | |
394326e6 | 95 | |
06df2928 KS |
96 | /* |
97 | * Supervisory LLC commands | |
98 | */ | |
99 | #define LLC_RR 0x01 | |
100 | #define LLC_RNR 0x05 | |
101 | #define LLC_REJ 0x09 | |
102 | ||
103 | /* | |
104 | * Info format - dummy only | |
105 | */ | |
106 | #define LLC_INFO 0x00 | |
107 | ||
108 | /* | |
109 | * ISO PDTR 10178 contains among others | |
110 | */ | |
111 | #define LLC_X25_LSAP 0x7e | |
394326e6 | 112 | #define LLC_SNAP_LSAP 0xaa |
06df2928 KS |
113 | #define LLC_ISO_LSAP 0xfe |
114 | ||
115 | ||
116 | ||
117 | ||
118 | ||
119 |