aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorZhu Yi <yi.zhu@intel.com>2009-11-30 21:18:37 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-12-22 13:31:15 -0500
commiteaf85ca7fecb218fc41ff57c1642ca73b097aabb (patch)
treead7965715f0cd67fe8946980ae2d1e9f3ea231a1 /include/net
parentca99861d5421c91f5a8fd3a77acb4b7be14f119d (diff)
wireless: add ieee80211_amsdu_to_8023s
Move the A-MSDU handling code from mac80211 to cfg80211 so that more drivers can use it. The new created function ieee80211_amsdu_to_8023s converts an A-MSDU frame to a list of 802.3 frames. Cc: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/cfg80211.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 0884b9a0f778..542a477a94da 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1578,7 +1578,7 @@ unsigned int ieee80211_hdrlen(__le16 fc);
1578 * @addr: the device MAC address 1578 * @addr: the device MAC address
1579 * @iftype: the virtual interface type 1579 * @iftype: the virtual interface type
1580 */ 1580 */
1581int ieee80211_data_to_8023(struct sk_buff *skb, u8 *addr, 1581int ieee80211_data_to_8023(struct sk_buff *skb, const u8 *addr,
1582 enum nl80211_iftype iftype); 1582 enum nl80211_iftype iftype);
1583 1583
1584/** 1584/**
@@ -1589,10 +1589,28 @@ int ieee80211_data_to_8023(struct sk_buff *skb, u8 *addr,
1589 * @bssid: the network bssid (used only for iftype STATION and ADHOC) 1589 * @bssid: the network bssid (used only for iftype STATION and ADHOC)
1590 * @qos: build 802.11 QoS data frame 1590 * @qos: build 802.11 QoS data frame
1591 */ 1591 */
1592int ieee80211_data_from_8023(struct sk_buff *skb, u8 *addr, 1592int ieee80211_data_from_8023(struct sk_buff *skb, const u8 *addr,
1593 enum nl80211_iftype iftype, u8 *bssid, bool qos); 1593 enum nl80211_iftype iftype, u8 *bssid, bool qos);
1594 1594
1595/** 1595/**
1596 * ieee80211_amsdu_to_8023s - decode an IEEE 802.11n A-MSDU frame
1597 *
1598 * Decode an IEEE 802.11n A-MSDU frame and convert it to a list of
1599 * 802.3 frames. The @list will be empty if the decode fails. The
1600 * @skb is consumed after the function returns.
1601 *
1602 * @skb: The input IEEE 802.11n A-MSDU frame.
1603 * @list: The output list of 802.3 frames. It must be allocated and
1604 * initialized by by the caller.
1605 * @addr: The device MAC address.
1606 * @iftype: The device interface type.
1607 * @extra_headroom: The hardware extra headroom for SKBs in the @list.
1608 */
1609void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list,
1610 const u8 *addr, enum nl80211_iftype iftype,
1611 const unsigned int extra_headroom);
1612
1613/**
1596 * cfg80211_classify8021d - determine the 802.1p/1d tag for a data frame 1614 * cfg80211_classify8021d - determine the 802.1p/1d tag for a data frame
1597 * @skb: the data frame 1615 * @skb: the data frame
1598 */ 1616 */