diff options
author | Andrei Otcheretianski <andrei.otcheretianski@intel.com> | 2014-10-22 15:22:49 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-10-23 20:39:43 +0200 |
commit | a7f3a768289858f03f5c1866639c8b476c1b8ebc (patch) | |
tree | 1d1d7bb3a79486744d152804605735a7e951c0dc /include/net/mac80211.h | |
parent | 8ec7886b1cd59c6e76a6d8fa413f9d338cfedc96 (diff) | |
download | linux-a7f3a768289858f03f5c1866639c8b476c1b8ebc.tar.gz linux-a7f3a768289858f03f5c1866639c8b476c1b8ebc.tar.bz2 linux-a7f3a768289858f03f5c1866639c8b476c1b8ebc.zip |
mac80211: export IE splitting function
Export ieee80211_ie_split function, so it can be reused by
drivers which need to insert additional elements.
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 9dc5e7606322..96d224357c8c 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -4906,4 +4906,32 @@ void ieee80211_update_p2p_noa(struct ieee80211_noa_data *data, u32 tsf); void ieee80211_tdls_oper_request(struct ieee80211_vif *vif, const u8 *peer, enum nl80211_tdls_operation oper, u16 reason_code, gfp_t gfp); + +/** + * ieee80211_ie_split - split an IE buffer according to ordering + * + * @ies: the IE buffer + * @ielen: the length of the IE buffer + * @ids: an array with element IDs that are allowed before + * the split + * @n_ids: the size of the element ID array + * @offset: offset where to start splitting in the buffer + * + * This function splits an IE buffer by updating the @offset + * variable to point to the location where the buffer should be + * split. + * + * It assumes that the given IE buffer is well-formed, this + * has to be guaranteed by the caller! + * + * It also assumes that the IEs in the buffer are ordered + * correctly, if not the result of using this function will not + * be ordered correctly either, i.e. it does no reordering. + * + * The function returns the offset where the next part of the + * buffer starts, which may be @ielen if the entire (remainder) + * of the buffer should be used. + */ +size_t ieee80211_ie_split(const u8 *ies, size_t ielen, + const u8 *ids, int n_ids, size_t offset); #endif /* MAC80211_H */ |