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>
This commit is contained in:
parent
8ec7886b1c
commit
a7f3a76828
@ -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,
|
void ieee80211_tdls_oper_request(struct ieee80211_vif *vif, const u8 *peer,
|
||||||
enum nl80211_tdls_operation oper,
|
enum nl80211_tdls_operation oper,
|
||||||
u16 reason_code, gfp_t gfp);
|
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 */
|
#endif /* MAC80211_H */
|
||||||
|
@ -1874,8 +1874,6 @@ int __ieee80211_request_smps_ap(struct ieee80211_sub_if_data *sdata,
|
|||||||
void ieee80211_recalc_smps(struct ieee80211_sub_if_data *sdata);
|
void ieee80211_recalc_smps(struct ieee80211_sub_if_data *sdata);
|
||||||
void ieee80211_recalc_min_chandef(struct ieee80211_sub_if_data *sdata);
|
void ieee80211_recalc_min_chandef(struct ieee80211_sub_if_data *sdata);
|
||||||
|
|
||||||
size_t ieee80211_ie_split(const u8 *ies, size_t ielen,
|
|
||||||
const u8 *ids, int n_ids, size_t offset);
|
|
||||||
size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset);
|
size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset);
|
||||||
u8 *ieee80211_ie_build_ht_cap(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap,
|
u8 *ieee80211_ie_build_ht_cap(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap,
|
||||||
u16 cap);
|
u16 cap);
|
||||||
|
@ -2052,31 +2052,6 @@ static bool ieee80211_id_in_list(const u8 *ids, int n_ids, u8 id)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 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,
|
size_t ieee80211_ie_split(const u8 *ies, size_t ielen,
|
||||||
const u8 *ids, int n_ids, size_t offset)
|
const u8 *ids, int n_ids, size_t offset)
|
||||||
{
|
{
|
||||||
@ -2087,6 +2062,7 @@ size_t ieee80211_ie_split(const u8 *ies, size_t ielen,
|
|||||||
|
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(ieee80211_ie_split);
|
||||||
|
|
||||||
size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset)
|
size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user