123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /*
- * Copyright (c) 2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
- /*
- * DOC: contains MLO manager containing util public api's
- */
- #ifndef _WLAN_UTILS_MLO_H_
- #define _WLAN_UTILS_MLO_H_
- #include "wlan_mlo_mgr_public_structs.h"
- #include <wlan_cm_ucfg_api.h>
- #include <wlan_objmgr_vdev_obj.h>
- #ifdef WLAN_FEATURE_11BE_MLO
- #define FC0_IEEE_MGMT_FRM 0x10
- #define FC1_IEEE_MGMT_FRM 0x00
- /**
- * util_gen_link_assoc_rsp - Generate link association response
- *
- * @frame: association response frame ptr
- * @len: length of assoc rsp frame
- * @link_addr: link mac addr
- * @new_ie: Generated Link assoc rsp
- *
- * Return: true if vdev is a link vdev, false otherwise
- */
- QDF_STATUS
- util_gen_link_assoc_rsp(uint8_t *frame, qdf_size_t len,
- struct qdf_mac_addr link_addr, uint8_t *new_ie);
- /**
- * util_find_mlie - Find the first Multi-Link element or the start of the first
- * Multi-Link element fragment sequence in a given buffer containing elements,
- * if a Multi-Link element or element fragment sequence exists in the given
- * buffer.
- *
- * @buf: Buffer to be searched for the Multi-Link element or the start of the
- * Multi-Link element fragment sequence
- * @buflen: Length of the buffer
- * @mlieseq: Pointer to location where the starting address of the Multi-Link
- * element or Multi-Link element fragment sequence should be updated if found
- * in the given buffer. The value NULL will be updated to this location if the
- * element or element fragment sequence is not found. This should be ignored by
- * the caller if the function returns error.
- * @mlieseqlen: Pointer to location where the total length of the Multi-Link
- * element or Multi-Link element fragment sequence should be updated if found
- * in the given buffer. This should be ignored by the caller if the function
- * returns error, or if the function indicates that the element or element
- * fragment sequence was not found by providing a starting address of NULL.
- *
- * Return: QDF_STATUS_SUCCESS in the case of success, QDF_STATUS value giving
- * the reason for error in the case of failure
- */
- QDF_STATUS
- util_find_mlie(uint8_t *buf, qdf_size_t buflen, uint8_t **mlieseq,
- qdf_size_t *mlieseqlen);
- #else
- static inline QDF_STATUS
- util_gen_link_assoc_rsp(uint8_t *frame, qdf_size_t len,
- struct qdf_mac_addr link_addr, uint8_t *new_ie)
- {
- return QDF_STATUS_E_NOSUPPORT;
- }
- static inline QDF_STATUS
- util_find_mlie(uint8_t *buf, qdf_size_t buflen, uint8_t **mlieseq,
- qdf_size_t *mlieseqlen)
- {
- return QDF_STATUS_E_NOSUPPORT;
- }
- #endif /* WLAN_FEATURE_11BE_MLO */
- #endif /* _WLAN_UTILS_MLO_H_ */
|