/****************************************************************************** * * Copyright(c) 2007 - 2017 Realtek Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * *****************************************************************************/ #ifndef _RTW_EHT_H_ #define _RTW_EHT_H_ struct mlo_priv { u8 mlo_option; u8 tid2link_nego; /* ToDo */ }; struct eht_priv { u8 eht_option; /* ToDo */ }; #define EHT_ML_CONTROL_LEN 2 /* Min length of common info in basic ML ** Common info length field: 1 */ #define EHT_BASIC_COMMON_INFO_MIN_LEN 1 + ETH_ALEN /* Min length of a legal basic ML element ** Element ID + Element length fields: 2 ** Element ID extension field: 1 */ #define EHT_ML_BASIC_MIN_LEN 2 + 1 + EHT_ML_CONTROL_LEN + EHT_BASIC_COMMON_INFO_MIN_LEN /* Min length of a legal probe req ML element ** Element ID + Element length fields: 2 ** Element ID extension field: 1 ** Common info length field: 1 */ #define EHT_ML_PROBEREQ_MIN_LEN 2 + 1 + EHT_ML_CONTROL_LEN + 1 #define EHT_ML_STA_CONTROL_LEN 2 void rtw_set_assoc_status(_adapter *padapter, struct rtw_phl_mld_t *pmld, u8 link_id, u16 status); /* rtw_update_ies_with_inheritance(): API for core to update the current IEs with the inherited IEs @ cur_ies: current IEs @ cur_ies_len: length of the current IEs @ inh_ies: the inherited IEs @ inh_ies_len: length of the inherited IEs */ void rtw_update_ies_with_inheritance(u8 *cur_ies, u32 *cur_ies_len, u8 *inh_ies, u8 inh_ies_len); u32 rtw_parse_ml_ie(_adapter *padapter, u8 *ies, u32 ies_len, struct rtw_phl_ml_element *ml_ele); /* rtw_eht_ml_ies_handler(): API for core to parse ML related element in Assoc Rsp @ ies: start point of IEs in Assoc Rsp @ ies_len: length of the IEs in Assoc Rsp */ void rtw_eht_ml_ies_handler(struct _ADAPTER *padapter, struct _ADAPTER_LINK *padapter_link, u8 *ies, u32 ies_len); /* rtw_build_ml_ie(): API for core to build ML element @ pkt_type: packet type, e.g., PACKET_AUTH, PACKET_ASSOC_REQUEST, etc @ primary_ies: IEs built in the primary link @ primary_ies_len: length of the IEs in the primary link */ u8 *rtw_build_ml_ies(_adapter *padapter, struct sta_info *psta, u8 *pframe, struct pkt_attrib *pattrib, enum phl_packet_type pkt_type, u8 *primary_ies, u32 primary_ies_len, u8 reserved); u32 rtw_restructure_ml_ie(_adapter *padapter, struct _ADAPTER_LINK *padapter_link, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len); #endif /* _RTW_EHT_H_ */