aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
authorZhu Yi <yi.zhu@intel.com>2009-05-21 09:47:03 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-05-22 14:06:02 -0400
commite31a16d6f64ef0e324c6f54d5112703c3f13a9c4 (patch)
tree4ed30d0ebd1d948aaa14bcd4fb52f29d9bb2e7a8 /include/net/cfg80211.h
parenta971be223f243311a8014ddfc721f68e3ef2da9c (diff)
wireless: move some utility functions from mac80211 to cfg80211
The patch moves some utility functions from mac80211 to cfg80211. Because these functions are doing generic 802.11 operations so they are not mac80211 specific. The moving allows some fullmac drivers to be also benefit from these utility functions. Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: Samuel Ortiz <samuel.ortiz@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r--include/net/cfg80211.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 389f1d20adf4..f20da7d63b1e 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1244,6 +1244,53 @@ extern int ieee80211_radiotap_iterator_init(
1244extern int ieee80211_radiotap_iterator_next( 1244extern int ieee80211_radiotap_iterator_next(
1245 struct ieee80211_radiotap_iterator *iterator); 1245 struct ieee80211_radiotap_iterator *iterator);
1246 1246
1247extern const unsigned char rfc1042_header[6];
1248extern const unsigned char bridge_tunnel_header[6];
1249
1250/**
1251 * ieee80211_get_hdrlen_from_skb - get header length from data
1252 *
1253 * Given an skb with a raw 802.11 header at the data pointer this function
1254 * returns the 802.11 header length in bytes (not including encryption
1255 * headers). If the data in the sk_buff is too short to contain a valid 802.11
1256 * header the function returns 0.
1257 *
1258 * @skb: the frame
1259 */
1260unsigned int ieee80211_get_hdrlen_from_skb(const struct sk_buff *skb);
1261
1262/**
1263 * ieee80211_hdrlen - get header length in bytes from frame control
1264 * @fc: frame control field in little-endian format
1265 */
1266unsigned int ieee80211_hdrlen(__le16 fc);
1267
1268/**
1269 * ieee80211_data_to_8023 - convert an 802.11 data frame to 802.3
1270 * @skb: the 802.11 data frame
1271 * @addr: the device MAC address
1272 * @iftype: the virtual interface type
1273 */
1274int ieee80211_data_to_8023(struct sk_buff *skb, u8 *addr,
1275 enum nl80211_iftype iftype);
1276
1277/**
1278 * ieee80211_data_from_8023 - convert an 802.3 frame to 802.11
1279 * @skb: the 802.3 frame
1280 * @addr: the device MAC address
1281 * @iftype: the virtual interface type
1282 * @bssid: the network bssid (used only for iftype STATION and ADHOC)
1283 * @qos: build 802.11 QoS data frame
1284 */
1285int ieee80211_data_from_8023(struct sk_buff *skb, u8 *addr,
1286 enum nl80211_iftype iftype, u8 *bssid, bool qos);
1287
1288/**
1289 * cfg80211_classify8021d - determine the 802.1p/1d tag for a data frame
1290 * @skb: the data frame
1291 */
1292unsigned int cfg80211_classify8021d(struct sk_buff *skb);
1293
1247/* 1294/*
1248 * Regulatory helper functions for wiphys 1295 * Regulatory helper functions for wiphys
1249 */ 1296 */