138969Skarels /* 2*58233Ssklower * Copyright (c) 1988, 1993 Regents of the University of California. 338969Skarels * All rights reserved. 438969Skarels * 544464Sbostic * %sccs.include.redist.c% 638969Skarels * 7*58233Ssklower * @(#)if_llc.h 7.3 (Berkeley) 02/25/93 838969Skarels */ 938969Skarels 1038969Skarels /* 1138969Skarels * IEEE 802.2 Link Level Control headers, for use in conjunction with 1238969Skarels * 802.{3,4,5} media access control methods. 1338969Skarels * 1438969Skarels * Headers here do not use bit fields due to shortcommings in many 1538969Skarels * compilers. 1638969Skarels */ 1738969Skarels 1838969Skarels struct llc { 1938969Skarels u_char llc_dsap; 2038969Skarels u_char llc_ssap; 2138969Skarels union { 2238969Skarels struct { 2338969Skarels u_char control; 2438969Skarels u_char format_id; 2538969Skarels u_char class; 2638969Skarels u_char window_x2; 2738969Skarels } type_u; 2838969Skarels struct { 2938969Skarels u_char num_snd_x2; 3038969Skarels u_char num_rcv_x2; 3138969Skarels } type_i; 3238969Skarels struct { 3338969Skarels u_char control; 3438969Skarels u_char num_rcv_x2; 3538969Skarels } type_s; 3638969Skarels struct { 37*58233Ssklower u_char control; 38*58233Ssklower struct frmrinfo { 39*58233Ssklower u_char rej_pdu_0; 40*58233Ssklower u_char rej_pdu_1; 41*58233Ssklower u_char frmr_control; 42*58233Ssklower u_char frmr_control_ext; 43*58233Ssklower u_char frmr_cause; 44*58233Ssklower } frmrinfo; 45*58233Ssklower } type_frmr; 46*58233Ssklower struct { 4738969Skarels u_char control; 4838969Skarels u_char org_code[3]; 4938969Skarels u_short ether_type; 5038969Skarels } type_snap; 51*58233Ssklower struct { 52*58233Ssklower u_char control; 53*58233Ssklower u_char control_ext; 54*58233Ssklower } type_raw; 5538969Skarels } llc_un; 5638969Skarels }; 57*58233Ssklower #define llc_control llc_un.type_u.control 58*58233Ssklower #define llc_control_ext llc_un.type_raw.control_ext 59*58233Ssklower #define llc_fid llc_un.type_u.format_id 60*58233Ssklower #define llc_class llc_un.type_u.class 61*58233Ssklower #define llc_window llc_un.type_u.window_x2 62*58233Ssklower #define llc_frmrinfo llc_un.type_frmr.frmrinfo 63*58233Ssklower #define llc_frmr_pdu0 llc_un.type_frmr.frmrinfo.rej_pdu0 64*58233Ssklower #define llc_frmr_pdu1 llc_un.type_frmr.frmrinfo.rej_pdu1 65*58233Ssklower #define llc_frmr_control llc_un.type_frmr.frmrinfo.frmr_control 66*58233Ssklower #define llc_frmr_control_ext llc_un.type_frmr.frmrinfo.frmr_control_ext 67*58233Ssklower #define llc_frmr_cause llc_un.type_frmr.frmrinfo.frmr_control_ext 6838969Skarels 69*58233Ssklower /* 70*58233Ssklower * Don't use sizeof(struct llc_un) for LLC header sizes 71*58233Ssklower */ 72*58233Ssklower #define LLC_ISFRAMELEN 4 73*58233Ssklower #define LLC_UFRAMELEN 3 74*58233Ssklower #define LLC_FRMRLEN 7 75*58233Ssklower 76*58233Ssklower /* 77*58233Ssklower * Unnumbered LLC format commands 78*58233Ssklower */ 7938969Skarels #define LLC_UI 0x3 8038969Skarels #define LLC_UI_P 0x13 81*58233Ssklower #define LLC_DISC 0x43 82*58233Ssklower #define LLC_DISC_P 0x53 83*58233Ssklower #define LLC_UA 0x63 84*58233Ssklower #define LLC_UA_P 0x73 85*58233Ssklower #define LLC_TEST 0xe3 86*58233Ssklower #define LLC_TEST_P 0xf3 87*58233Ssklower #define LLC_FRMR 0x87 88*58233Ssklower #define LLC_FRMR_P 0x97 89*58233Ssklower #define LLC_DM 0x0f 90*58233Ssklower #define LLC_DM_P 0x1f 9138969Skarels #define LLC_XID 0xaf 9238969Skarels #define LLC_XID_P 0xbf 93*58233Ssklower #define LLC_SABME 0x6f 94*58233Ssklower #define LLC_SABME_P 0x7f 9538969Skarels 96*58233Ssklower /* 97*58233Ssklower * Supervisory LLC commands 98*58233Ssklower */ 99*58233Ssklower #define LLC_RR 0x01 100*58233Ssklower #define LLC_RNR 0x05 101*58233Ssklower #define LLC_REJ 0x09 102*58233Ssklower 103*58233Ssklower /* 104*58233Ssklower * Info format - dummy only 105*58233Ssklower */ 106*58233Ssklower #define LLC_INFO 0x00 107*58233Ssklower 108*58233Ssklower /* 109*58233Ssklower * ISO PDTR 10178 contains among others 110*58233Ssklower */ 111*58233Ssklower #define LLC_X25_LSAP 0x7e 112*58233Ssklower #define LLC_SNAP_LSAP 0xaa 11338969Skarels #define LLC_ISO_LSAP 0xfe 114*58233Ssklower 115*58233Ssklower 116*58233Ssklower 117*58233Ssklower 118*58233Ssklower 119*58233Ssklower 120