source: rtems-libbsd/freebsd/contrib/libpcap/ieee80211.h @ 8440506

4.1155-freebsd-126-freebsd-12freebsd-9.3
Last change on this file since 8440506 was 8440506, checked in by Chris Johns <chrisj@…>, on 06/15/15 at 07:42:23

Add tcpdump and libpcap.

  • Update the file builder generator to handle generator specific cflags and includes. The tcpdump and libpcap have localised headers and need specific headers paths to see them. There are also module specific flags and these need to be passed to the lex and yacc generators.
  • Add the tcpdump support.
  • Property mode set to 100644
File size: 5.2 KB
Line 
1/*-
2 * Copyright (c) 2001 Atsushi Onoe
3 * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 * 3. The name of the author may not be used to endorse or promote products
15 *    derived from this software without specific prior written permission.
16 *
17 * Alternatively, this software may be distributed under the terms of the
18 * GNU General Public License ("GPL") version 2 as published by the Free
19 * Software Foundation.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 * $FreeBSD$
33 */
34#ifndef _NET80211_IEEE80211_H_
35#define _NET80211_IEEE80211_H_
36
37/*
38 * 802.11 protocol definitions.
39 */
40
41#define IEEE80211_FC0_VERSION_MASK              0x03
42#define IEEE80211_FC0_VERSION_SHIFT             0
43#define IEEE80211_FC0_VERSION_0                 0x00
44#define IEEE80211_FC0_TYPE_MASK                 0x0c
45#define IEEE80211_FC0_TYPE_SHIFT                2
46#define IEEE80211_FC0_TYPE_MGT                  0x00
47#define IEEE80211_FC0_TYPE_CTL                  0x04
48#define IEEE80211_FC0_TYPE_DATA                 0x08
49
50#define IEEE80211_FC0_SUBTYPE_MASK              0xf0
51#define IEEE80211_FC0_SUBTYPE_SHIFT             4
52/* for TYPE_MGT */
53#define IEEE80211_FC0_SUBTYPE_ASSOC_REQ         0x00
54#define IEEE80211_FC0_SUBTYPE_ASSOC_RESP        0x10
55#define IEEE80211_FC0_SUBTYPE_REASSOC_REQ       0x20
56#define IEEE80211_FC0_SUBTYPE_REASSOC_RESP      0x30
57#define IEEE80211_FC0_SUBTYPE_PROBE_REQ         0x40
58#define IEEE80211_FC0_SUBTYPE_PROBE_RESP        0x50
59#define IEEE80211_FC0_SUBTYPE_BEACON            0x80
60#define IEEE80211_FC0_SUBTYPE_ATIM              0x90
61#define IEEE80211_FC0_SUBTYPE_DISASSOC          0xa0
62#define IEEE80211_FC0_SUBTYPE_AUTH              0xb0
63#define IEEE80211_FC0_SUBTYPE_DEAUTH            0xc0
64/* for TYPE_CTL */
65#define IEEE80211_FC0_SUBTYPE_PS_POLL           0xa0
66#define IEEE80211_FC0_SUBTYPE_RTS               0xb0
67#define IEEE80211_FC0_SUBTYPE_CTS               0xc0
68#define IEEE80211_FC0_SUBTYPE_ACK               0xd0
69#define IEEE80211_FC0_SUBTYPE_CF_END            0xe0
70#define IEEE80211_FC0_SUBTYPE_CF_END_ACK        0xf0
71/* for TYPE_DATA (bit combination) */
72#define IEEE80211_FC0_SUBTYPE_DATA              0x00
73#define IEEE80211_FC0_SUBTYPE_CF_ACK            0x10
74#define IEEE80211_FC0_SUBTYPE_CF_POLL           0x20
75#define IEEE80211_FC0_SUBTYPE_CF_ACPL           0x30
76#define IEEE80211_FC0_SUBTYPE_NODATA            0x40
77#define IEEE80211_FC0_SUBTYPE_NODATA_CF_ACK     0x50
78#define IEEE80211_FC0_SUBTYPE_NODATA_CF_POLL    0x60
79#define IEEE80211_FC0_SUBTYPE_NODATA_CF_ACPL    0x70
80#define IEEE80211_FC0_SUBTYPE_QOS               0x80
81#define IEEE80211_FC0_SUBTYPE_QOS_NULL          0xc0
82
83#define IEEE80211_FC1_DIR_MASK                  0x03
84#define IEEE80211_FC1_DIR_NODS                  0x00    /* STA->STA */
85#define IEEE80211_FC1_DIR_TODS                  0x01    /* STA->AP  */
86#define IEEE80211_FC1_DIR_FROMDS                0x02    /* AP ->STA */
87#define IEEE80211_FC1_DIR_DSTODS                0x03    /* AP ->AP  */
88
89#define IEEE80211_FC1_MORE_FRAG                 0x04
90#define IEEE80211_FC1_RETRY                     0x08
91#define IEEE80211_FC1_PWR_MGT                   0x10
92#define IEEE80211_FC1_MORE_DATA                 0x20
93#define IEEE80211_FC1_WEP                       0x40
94#define IEEE80211_FC1_ORDER                     0x80
95
96#define IEEE80211_SEQ_FRAG_MASK                 0x000f
97#define IEEE80211_SEQ_FRAG_SHIFT                0
98#define IEEE80211_SEQ_SEQ_MASK                  0xfff0
99#define IEEE80211_SEQ_SEQ_SHIFT                 4
100
101#define IEEE80211_NWID_LEN                      32
102
103#define IEEE80211_QOS_TXOP                      0x00ff
104/* bit 8 is reserved */
105#define IEEE80211_QOS_ACKPOLICY                 0x60
106#define IEEE80211_QOS_ACKPOLICY_S               5
107#define IEEE80211_QOS_ESOP                      0x10
108#define IEEE80211_QOS_ESOP_S                    4
109#define IEEE80211_QOS_TID                       0x0f
110
111#define IEEE80211_MGT_SUBTYPE_NAMES {                   \
112        "assoc-req",            "assoc-resp",           \
113        "reassoc-req",          "reassoc-resp",         \
114        "probe-req",            "probe-resp",           \
115        "reserved#6",           "reserved#7",           \
116        "beacon",               "atim",                 \
117        "disassoc",             "auth",                 \
118        "deauth",               "reserved#13",          \
119        "reserved#14",          "reserved#15"           \
120}
121
122#define IEEE80211_CTL_SUBTYPE_NAMES {                   \
123        "reserved#0",           "reserved#1",           \
124        "reserved#2",           "reserved#3",           \
125        "reserved#3",           "reserved#5",           \
126        "reserved#6",           "reserved#7",           \
127        "reserved#8",           "reserved#9",           \
128        "ps-poll",              "rts",                  \
129        "cts",                  "ack",                  \
130        "cf-end",               "cf-end-ack"            \
131}
132
133#define IEEE80211_DATA_SUBTYPE_NAMES {                  \
134        "data",                 "data-cf-ack",          \
135        "data-cf-poll",         "data-cf-ack-poll",     \
136        "null",                 "cf-ack",               \
137        "cf-poll",              "cf-ack-poll",          \
138        "qos-data",             "qos-data-cf-ack",      \
139        "qos-data-cf-poll",     "qos-data-cf-ack-poll", \
140        "qos",                  "reserved#13",          \
141        "qos-cf-poll",          "qos-cf-ack-poll"       \
142}
143
144#define IEEE80211_TYPE_NAMES    { "mgt", "ctl", "data", "reserved#4" }
145
146#endif /* _NET80211_IEEE80211_H_ */
Note: See TracBrowser for help on using the repository browser.