296 lines
11 KiB
C
Executable File
296 lines
11 KiB
C
Executable File
/*
|
|
* Infineon Technologies OUI and vendor specific assignments
|
|
*
|
|
* Portions of this code are copyright (c) 2023 Cypress Semiconductor Corporation,
|
|
* an Infineon company
|
|
*
|
|
* This program is the proprietary software of infineon and/or
|
|
* its licensors, and may only be used, duplicated, modified or distributed
|
|
* pursuant to the terms and conditions of a separate, written license
|
|
* agreement executed between you and infineon (an "Authorized License").
|
|
* Except as set forth in an Authorized License, infineon grants no license
|
|
* (express or implied), right to use, or waiver of any kind with respect to
|
|
* the Software, and infineon expressly reserves all rights in and to the
|
|
* Software and all intellectual property rights therein. IF YOU HAVE NO
|
|
* AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY
|
|
* WAY, AND SHOULD IMMEDIATELY NOTIFY INFINEON AND DISCONTINUE ALL USE OF
|
|
* THE SOFTWARE.
|
|
*
|
|
* Except as expressly set forth in the Authorized License,
|
|
*
|
|
* 1. This program, including its structure, sequence and organization,
|
|
* constitutes the valuable trade secrets of infineon, and you shall use
|
|
* all reasonable efforts to protect the confidentiality thereof, and to
|
|
* use this information only in connection with your use of infineon
|
|
* integrated circuit products.
|
|
*
|
|
* 2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED
|
|
* "AS IS" AND WITH ALL FAULTS AND INFINEON MAKES NO PROMISES,
|
|
* REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR
|
|
* OTHERWISE, WITH RESPECT TO THE SOFTWARE. INFINEON SPECIFICALLY
|
|
* DISCLAIMS ANY AND ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
|
|
* NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES,
|
|
* ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
|
|
* CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING
|
|
* OUT OF USE OR PERFORMANCE OF THE SOFTWARE.
|
|
*
|
|
* 3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL
|
|
* INFINEON OR ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL,
|
|
* SPECIAL, INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR
|
|
* IN ANY WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
|
|
* IF INFINEON HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (ii)
|
|
* ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF
|
|
* OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS SHALL APPLY
|
|
* NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
|
|
*
|
|
*
|
|
* <<Infineon-WL-IPTag/Open:>>
|
|
*
|
|
* $Id$
|
|
*/
|
|
|
|
#ifndef IFX_VENDOR_H
|
|
#define IFX_VENDOR_H
|
|
|
|
/*
|
|
* This file is a registry of identifier assignments from the Infineon
|
|
* OUI 00:03:19 for purposes other than MAC address assignment. New identifiers
|
|
* can be assigned through normal review process for changes to the upstream
|
|
* hostap.git repository.
|
|
*/
|
|
#define OUI_IFX 0x000319
|
|
|
|
/*
|
|
* enum ifx_nl80211_vendor_subcmds - IFX nl80211 vendor command identifiers
|
|
*
|
|
* @IFX_VENDOR_SCMD_UNSPEC: Reserved value 0
|
|
*
|
|
* @IFX_VENDOR_SCMD_FRAMEBURST: Vendor command to enable/disable Frameburst
|
|
*
|
|
* @IFX_VENDOR_SCMD_MUEDCA_OPT_ENABLE: Vendor command to enable/disable HE MU-EDCA opt
|
|
*
|
|
* @IFX_VENDOR_SCMD_LDPC_CAP: Vendor command enable/disable LDPC Capability
|
|
*
|
|
* @IFX_VENDOR_SCMD_AMSDU: Vendor command to enable/disable AMSDU on all the TID queues
|
|
*
|
|
* @IFX_VENDOR_SCMD_TWT: Vendor subcommand to configure TWT
|
|
* Uses attributes defined in enum ifx_vendor_attr_twt.
|
|
*
|
|
* @IFX_VENDOR_SCMD_OCE_ENABLE: Vendor command to enable/disable OCE Capability
|
|
*
|
|
* @IFX_VENDOR_SCMD_RANDMAC: Vendor command to enable/disable RANDMAC Capability
|
|
*
|
|
* @IFX_VENDOR_SCMD_MAX: This acts as a the tail of cmds list.
|
|
* Make sure it located at the end of the list.
|
|
*/
|
|
enum ifx_nl80211_vendor_subcmds {
|
|
/*
|
|
* TODO: IFX Vendor subcmd enum IDs between 1-10 are reserved
|
|
* to be be filled later with BRCM Vendor subcmds that are
|
|
* already used by IFX.
|
|
*/
|
|
IFX_VENDOR_SCMD_UNSPEC = 0,
|
|
/* Reserved 1-5 */
|
|
IFX_VENDOR_SCMD_FRAMEBURST = 6,
|
|
/* Reserved 7-9 */
|
|
#ifdef P2P_RAND
|
|
IFX_VENDOR_SCMD_SET_P2P_RAND_MAC = 10,
|
|
#endif /* P2P_RAND */
|
|
IFX_VENDOR_SCMD_MUEDCA_OPT_ENABLE = 11,
|
|
IFX_VENDOR_SCMD_LDPC_CAP = 12,
|
|
IFX_VENDOR_SCMD_AMSDU = 13,
|
|
IFX_VENDOR_SCMD_TWT = 14,
|
|
IFX_VENDOR_SCMD_OCE_ENABLE = 15,
|
|
/* Reserved 16 */
|
|
IFX_VENDOR_SCMD_RANDMAC = 17,
|
|
IFX_VENDOR_SCMD_ACS = 18,
|
|
IFX_VENDOR_SCMD_MAX
|
|
};
|
|
|
|
/*
|
|
* enum ifx_vendor_attr - IFX nl80211 vendor attributes
|
|
*
|
|
* @IFX_VENDOR_ATTR_UNSPEC: Reserved value 0
|
|
*
|
|
* @IFX_VENDOR_ATTR_MAX: This acts as a the tail of attrs list.
|
|
* Make sure it located at the end of the list.
|
|
*/
|
|
enum ifx_vendor_attr {
|
|
/*
|
|
* TODO: IFX Vendor attr enum IDs between 0-10 are reserved
|
|
* to be filled later with BRCM Vendor attrs that are
|
|
* already used by IFX.
|
|
*/
|
|
IFX_VENDOR_ATTR_UNSPEC = 0,
|
|
IFX_VENDOR_ATTR_PAD = 1,
|
|
IFX_VENDOR_ATTR_MAC_ADDR = 2,
|
|
/* Reserved 1-10 */
|
|
IFX_VENDOR_ATTR_MAX = 11
|
|
};
|
|
|
|
/*
|
|
* enum ifx_vendor_attr_twt - Attributes for the TWT vendor command
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_UNSPEC: Reserved value 0
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_OPER: To specify the type of TWT operation
|
|
* to be performed. Uses attributes defined in enum ifx_twt_oper.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAMS: Nester attributes representing the
|
|
* parameters configured for TWT. These parameters are defined in
|
|
* the enum ifx_vendor_attr_twt_param.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_MAX: This acts as a the tail of cmds list.
|
|
* Make sure it located at the end of the list.
|
|
*/
|
|
enum ifx_vendor_attr_twt {
|
|
IFX_VENDOR_ATTR_TWT_UNSPEC,
|
|
IFX_VENDOR_ATTR_TWT_OPER,
|
|
IFX_VENDOR_ATTR_TWT_PARAMS,
|
|
IFX_VENDOR_ATTR_TWT_MAX
|
|
};
|
|
|
|
/*
|
|
* enum ifx_twt_oper - TWT operation to be specified using the vendor
|
|
* attribute IFX_VENDOR_ATTR_TWT_OPER
|
|
*
|
|
* @IFX_TWT_OPER_UNSPEC: Reserved value 0
|
|
*
|
|
* @IFX_TWT_OPER_SETUP: Setup a TWT session. Required parameters are
|
|
* obtained through the nested attrs under IFX_VENDOR_ATTR_TWT_PARAMS.
|
|
*
|
|
* @IFX_TWT_OPER_TEARDOWN: Teardown the already negotiated TWT session.
|
|
* Required parameters are obtained through the nested attrs under
|
|
* IFX_VENDOR_ATTR_TWT_PARAMS.
|
|
*
|
|
* @IFX_TWT_OPER_MAX: This acts as a the tail of the list.
|
|
* Make sure it located at the end of the list.
|
|
*/
|
|
enum ifx_twt_oper {
|
|
IFX_TWT_OPER_UNSPEC,
|
|
IFX_TWT_OPER_SETUP,
|
|
IFX_TWT_OPER_TEARDOWN,
|
|
IFX_TWT_OPER_MAX
|
|
};
|
|
|
|
/*
|
|
* enum ifx_vendor_attr_twt_param - TWT parameters
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_UNSPEC: Reserved value 0
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_NEGO_TYPE: Specifies the type of Negotiation to be
|
|
* done during Setup. The four possible types are
|
|
* 0 - Individual TWT Negotiation
|
|
* 1 - Wake TBTT Negotiation
|
|
* 2 - Broadcast TWT in Beacon
|
|
* 3 - Broadcast TWT Membership Negotiation
|
|
*
|
|
* The possible values are defined in the enum ifx_twt_param_nego_type
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_SETUP_CMD_TYPE: Specifies the type of TWT Setup frame
|
|
* when sent by the TWT Requesting STA
|
|
* 0 - Request
|
|
* 1 - Suggest
|
|
* 2 - Demand
|
|
*
|
|
* when sent by the TWT Responding STA.
|
|
* 3 - Grouping
|
|
* 4 - Accept
|
|
* 5 - Alternate
|
|
* 6 - Dictate
|
|
* 7 - Reject
|
|
*
|
|
* The possible values are defined in the enum ifx_twt_oper_setup_cmd_type.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_DIALOG_TOKEN: Dialog Token used by the TWT Requesting STA to
|
|
* identify the TWT Setup request/response transaction.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_WAKE_TIME: Target Wake Time.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_WAKE_TIME_OFFSET: Target Wake Time Offset.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_MIN_WAKE_DURATION: Nominal Minimum TWT Wake Duration.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_WAKE_INTVL_EXPONENT: TWT Wake Interval Exponent.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_WAKE_INTVL_MANTISSA: TWT Wake Interval Mantissa.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_REQUESTOR: Specify this is a TWT Requesting / Responding STA.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_TRIGGER: Specify Trigger based / Non-Trigger based TWT Session.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_IMPLICIT: Specify Implicit / Explicit TWT session.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_FLOW_TYPE: Specify Un-Announced / Announced TWT session.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_FLOW_ID: Flow ID of an iTWT session.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_BCAST_TWT_ID: Brocast TWT ID of a bTWT session.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_PROTECTION: Specifies whether Tx within SP is protected.
|
|
* Set to 1 to indicate that TXOPs within the TWT SPs shall be initiated
|
|
* with a NAV protection mechanism, such as (MU) RTS/CTS or CTS-to-self frame;
|
|
* otherwise, it shall set it to 0.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_CHANNEL: TWT channel field which is set to 0, unless
|
|
* the HE STA sets up a subchannel selective transmission operation.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_TWT_INFO_FRAME_DISABLED: TWT Information frame RX handing
|
|
* disabled / enabled.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_MIN_WAKE_DURATION_UNIT: Nominal Minimum TWT Wake Duration
|
|
* Unit. 0 represents unit in "256 usecs" and 1 represents unit in "TUs".
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_TEARDOWN_ALL_TWT: Teardown all negotiated TWT sessions.
|
|
*
|
|
* @IFX_VENDOR_ATTR_TWT_PARAM_MAX: This acts as a the tail of the list.
|
|
* Make sure it located at the end of the list.
|
|
*/
|
|
enum ifx_vendor_attr_twt_param {
|
|
IFX_VENDOR_ATTR_TWT_PARAM_UNSPEC,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_NEGO_TYPE,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_SETUP_CMD_TYPE,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_DIALOG_TOKEN,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_WAKE_TIME,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_WAKE_TIME_OFFSET,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_MIN_WAKE_DURATION,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_WAKE_INTVL_EXPONENT,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_WAKE_INTVL_MANTISSA,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_REQUESTOR,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_TRIGGER,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_IMPLICIT,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_FLOW_TYPE,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_FLOW_ID,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_BCAST_TWT_ID,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_PROTECTION,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_CHANNEL,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_TWT_INFO_FRAME_DISABLED,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_MIN_WAKE_DURATION_UNIT,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_TEARDOWN_ALL_TWT,
|
|
IFX_VENDOR_ATTR_TWT_PARAM_MAX
|
|
};
|
|
|
|
enum ifx_twt_param_nego_type {
|
|
IFX_TWT_PARAM_NEGO_TYPE_INVALID = -1,
|
|
IFX_TWT_PARAM_NEGO_TYPE_ITWT = 0,
|
|
IFX_TWT_PARAM_NEGO_TYPE_WAKE_TBTT = 1,
|
|
IFX_TWT_PARAM_NEGO_TYPE_BTWT_IE_BCN = 2,
|
|
IFX_TWT_PARAM_NEGO_TYPE_BTWT = 3,
|
|
IFX_TWT_PARAM_NEGO_TYPE_MAX = 4
|
|
};
|
|
|
|
enum ifx_twt_oper_setup_cmd_type {
|
|
IFX_TWT_OPER_SETUP_CMD_TYPE_INVALID = -1,
|
|
IFX_TWT_OPER_SETUP_CMD_TYPE_REQUEST = 0,
|
|
IFX_TWT_OPER_SETUP_CMD_TYPE_SUGGEST = 1,
|
|
IFX_TWT_OPER_SETUP_CMD_TYPE_DEMAND = 2,
|
|
IFX_TWT_OPER_SETUP_CMD_TYPE_GROUPING = 3,
|
|
IFX_TWT_OPER_SETUP_CMD_TYPE_ACCEPT = 4,
|
|
IFX_TWT_OPER_SETUP_CMD_TYPE_ALTERNATE = 5,
|
|
IFX_TWT_OPER_SETUP_CMD_TYPE_DICTATE = 6,
|
|
IFX_TWT_OPER_SETUP_CMD_TYPE_REJECT = 7,
|
|
IFX_TWT_OPER_SETUP_CMD_TYPE_MAX = 8
|
|
};
|
|
|
|
#endif /* IFX_VENDOR_H */
|