1c1d255d3SCy Schubert /* 2c1d255d3SCy Schubert * Broadcom Corporation OUI and vendor specific assignments 3c1d255d3SCy Schubert * Copyright (c) 2020, Broadcom Corporation. 4c1d255d3SCy Schubert * 5c1d255d3SCy Schubert * This software may be distributed under the terms of the BSD license. 6c1d255d3SCy Schubert * See README for more details. 7c1d255d3SCy Schubert */ 8c1d255d3SCy Schubert 9c1d255d3SCy Schubert #ifndef BRCM_VENDOR_H 10c1d255d3SCy Schubert #define BRCM_VENDOR_H 11c1d255d3SCy Schubert 12c1d255d3SCy Schubert /* 13c1d255d3SCy Schubert * This file is a registry of identifier assignments from the Broadcom 14c1d255d3SCy Schubert * OUI 00:10:18 for purposes other than MAC address assignment. New identifiers 15c1d255d3SCy Schubert * can be assigned through normal review process for changes to the upstream 16c1d255d3SCy Schubert * hostap.git repository. 17c1d255d3SCy Schubert */ 18c1d255d3SCy Schubert 19c1d255d3SCy Schubert #define OUI_BRCM 0x001018 20c1d255d3SCy Schubert 21c1d255d3SCy Schubert /** 22c1d255d3SCy Schubert * enum brcm_nl80211_vendor_subcmds - BRCM nl80211 vendor command identifiers 23c1d255d3SCy Schubert * 24c1d255d3SCy Schubert * @BRCM_VENDOR_SCMD_UNSPEC: Reserved value 0 25c1d255d3SCy Schubert * 26c1d255d3SCy Schubert * @BRCM_VENDOR_SCMD_PRIV_STR: Provide vendor private cmds to send to FW. 27c1d255d3SCy Schubert * 28c1d255d3SCy Schubert * @BRCM_VENDOR_SCMD_BCM_STR: Provide vendor cmds to BCMDHD driver. 29c1d255d3SCy Schubert * 30c1d255d3SCy Schubert * @BRCM_VENDOR_SCMD_BCM_PSK: Used to set SAE password. 31c1d255d3SCy Schubert * 32c1d255d3SCy Schubert * @BRCM_VENDOR_SCMD_SET_PMK: Command to check driver support 33c1d255d3SCy Schubert * for DFS offloading. 34c1d255d3SCy Schubert * 35c1d255d3SCy Schubert * @BRCM_VENDOR_SCMD_GET_FEATURES: Command to get the features 36c1d255d3SCy Schubert * supported by the driver. 37c1d255d3SCy Schubert * 38c1d255d3SCy Schubert * @BRCM_VENDOR_SCMD_SET_MAC: Set random mac address for P2P interface. 39c1d255d3SCy Schubert * 40c1d255d3SCy Schubert * @BRCM_VENDOR_SCMD_SET_CONNECT_PARAMS: Set some connect parameters. 41c1d255d3SCy Schubert * Used for the case that FW handle SAE. 42c1d255d3SCy Schubert * 43*a90b9d01SCy Schubert * @BRCM_VENDOR_SCMD_SET_START_AP_PARAMS: Set SoftAP parameters. 44c1d255d3SCy Schubert * Used for the case that FW handle SAE. 45c1d255d3SCy Schubert * 46c1d255d3SCy Schubert * @BRCM_VENDOR_SCMD_ACS: ACS command/event which is used to 47c1d255d3SCy Schubert * invoke the ACS function in device and pass selected channels to 48c1d255d3SCy Schubert * hostapd. Uses enum qca_wlan_vendor_attr_acs_offload attributes. 49c1d255d3SCy Schubert * 50*a90b9d01SCy Schubert * @BRCM_VENDOR_SCMD_MAX: This acts as a tail of cmds list. 51*a90b9d01SCy Schubert * Make sure it is located at the end of the list. 52c1d255d3SCy Schubert * 53c1d255d3SCy Schubert */ 54c1d255d3SCy Schubert enum brcm_nl80211_vendor_subcmds { 55c1d255d3SCy Schubert BRCM_VENDOR_SCMD_UNSPEC = 0, 56c1d255d3SCy Schubert BRCM_VENDOR_SCMD_PRIV_STR = 1, 57c1d255d3SCy Schubert BRCM_VENDOR_SCMD_BCM_STR = 2, 58c1d255d3SCy Schubert BRCM_VENDOR_SCMD_BCM_PSK = 3, 59c1d255d3SCy Schubert BRCM_VENDOR_SCMD_SET_PMK = 4, 60c1d255d3SCy Schubert BRCM_VENDOR_SCMD_GET_FEATURES = 5, 61c1d255d3SCy Schubert BRCM_VENDOR_SCMD_SET_MAC = 6, 62c1d255d3SCy Schubert BRCM_VENDOR_SCMD_SET_CONNECT_PARAMS = 7, 63c1d255d3SCy Schubert BRCM_VENDOR_SCMD_SET_START_AP_PARAMS = 8, 64c1d255d3SCy Schubert BRCM_VENDOR_SCMD_ACS = 9, 65c1d255d3SCy Schubert BRCM_VENDOR_SCMD_MAX = 10 66c1d255d3SCy Schubert }; 67c1d255d3SCy Schubert 68c1d255d3SCy Schubert /** 69*a90b9d01SCy Schubert * enum brcm_nl80211_vendor_events - BRCM nl80211 asynchronous event identifiers 70c1d255d3SCy Schubert * 71c1d255d3SCy Schubert * @BRCM_VENDOR_EVENT_UNSPEC: Reserved value 0 72c1d255d3SCy Schubert * 73c1d255d3SCy Schubert * @BRCM_VENDOR_EVENT_PRIV_STR: String command/event 74c1d255d3SCy Schubert */ 75c1d255d3SCy Schubert enum brcm_nl80211_vendor_events { 76c1d255d3SCy Schubert BRCM_VENDOR_EVENT_UNSPEC = 0, 77c1d255d3SCy Schubert BRCM_VENDOR_EVENT_PRIV_STR = 1, 78c1d255d3SCy Schubert GOOGLE_GSCAN_SIGNIFICANT_EVENT = 2, 79c1d255d3SCy Schubert GOOGLE_GSCAN_GEOFENCE_FOUND_EVENT = 3, 80c1d255d3SCy Schubert GOOGLE_GSCAN_BATCH_SCAN_EVENT = 4, 81c1d255d3SCy Schubert GOOGLE_SCAN_FULL_RESULTS_EVENT = 5, 82c1d255d3SCy Schubert GOOGLE_RTT_COMPLETE_EVENT = 6, 83c1d255d3SCy Schubert GOOGLE_SCAN_COMPLETE_EVENT = 7, 84c1d255d3SCy Schubert GOOGLE_GSCAN_GEOFENCE_LOST_EVENT = 8, 85c1d255d3SCy Schubert GOOGLE_SCAN_EPNO_EVENT = 9, 86c1d255d3SCy Schubert GOOGLE_DEBUG_RING_EVENT = 10, 87c1d255d3SCy Schubert GOOGLE_FW_DUMP_EVENT = 11, 88c1d255d3SCy Schubert GOOGLE_PNO_HOTSPOT_FOUND_EVENT = 12, 89c1d255d3SCy Schubert GOOGLE_RSSI_MONITOR_EVENT = 13, 90c1d255d3SCy Schubert GOOGLE_MKEEP_ALIVE_EVENT = 14, 91c1d255d3SCy Schubert 92c1d255d3SCy Schubert /* 93c1d255d3SCy Schubert * BRCM specific events should be placed after 94c1d255d3SCy Schubert * the Generic events so that enums don't mismatch 95c1d255d3SCy Schubert * between the DHD and HAL 96c1d255d3SCy Schubert */ 97c1d255d3SCy Schubert GOOGLE_NAN_EVENT_ENABLED = 15, 98c1d255d3SCy Schubert GOOGLE_NAN_EVENT_DISABLED = 16, 99c1d255d3SCy Schubert GOOGLE_NAN_EVENT_SUBSCRIBE_MATCH = 17, 100c1d255d3SCy Schubert GOOGLE_NAN_EVENT_REPLIED = 18, 101c1d255d3SCy Schubert GOOGLE_NAN_EVENT_PUBLISH_TERMINATED = 19, 102c1d255d3SCy Schubert GOOGLE_NAN_EVENT_SUBSCRIBE_TERMINATED = 20, 103c1d255d3SCy Schubert GOOGLE_NAN_EVENT_DE_EVENT = 21, 104c1d255d3SCy Schubert GOOGLE_NAN_EVENT_FOLLOWUP = 22, 105c1d255d3SCy Schubert GOOGLE_NAN_EVENT_TRANSMIT_FOLLOWUP_IND = 23, 106c1d255d3SCy Schubert GOOGLE_NAN_EVENT_DATA_REQUEST = 24, 107c1d255d3SCy Schubert GOOGLE_NAN_EVENT_DATA_CONFIRMATION = 25, 108c1d255d3SCy Schubert GOOGLE_NAN_EVENT_DATA_END = 26, 109c1d255d3SCy Schubert GOOGLE_NAN_EVENT_BEACON = 27, 110c1d255d3SCy Schubert GOOGLE_NAN_EVENT_SDF = 28, 111c1d255d3SCy Schubert GOOGLE_NAN_EVENT_TCA = 29, 112c1d255d3SCy Schubert GOOGLE_NAN_EVENT_SUBSCRIBE_UNMATCH = 30, 113c1d255d3SCy Schubert GOOGLE_NAN_EVENT_UNKNOWN = 31, 114c1d255d3SCy Schubert GOOGLE_ROAM_EVENT_START = 32, 115c1d255d3SCy Schubert BRCM_VENDOR_EVENT_HANGED = 33, 116c1d255d3SCy Schubert BRCM_VENDOR_EVENT_SAE_KEY = 34, 117c1d255d3SCy Schubert BRCM_VENDOR_EVENT_BEACON_RECV = 35, 118c1d255d3SCy Schubert BRCM_VENDOR_EVENT_PORT_AUTHORIZED = 36, 119c1d255d3SCy Schubert GOOGLE_FILE_DUMP_EVENT = 37, 120c1d255d3SCy Schubert BRCM_VENDOR_EVENT_CU = 38, 121c1d255d3SCy Schubert BRCM_VENDOR_EVENT_WIPS = 39, 122c1d255d3SCy Schubert NAN_ASYNC_RESPONSE_DISABLED = 40, 123c1d255d3SCy Schubert BRCM_VENDOR_EVENT_RCC_INFO = 41, 124c1d255d3SCy Schubert BRCM_VENDOR_EVENT_ACS = 42, 125c1d255d3SCy Schubert BRCM_VENDOR_EVENT_LAST 126c1d255d3SCy Schubert 127c1d255d3SCy Schubert }; 128c1d255d3SCy Schubert 129c1d255d3SCy Schubert #ifdef CONFIG_BRCM_SAE 130c1d255d3SCy Schubert enum wifi_sae_key_attr { 131c1d255d3SCy Schubert BRCM_SAE_KEY_ATTR_BSSID, 132c1d255d3SCy Schubert BRCM_SAE_KEY_ATTR_PMK, 133c1d255d3SCy Schubert BRCM_SAE_KEY_ATTR_PMKID 134c1d255d3SCy Schubert }; 135c1d255d3SCy Schubert #endif /* CONFIG_BRCM_SAE */ 136c1d255d3SCy Schubert 137c1d255d3SCy Schubert enum wl_vendor_attr_acs_offload { 138c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_CHANNEL_INVALID = 0, 139c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_PRIMARY_FREQ, 140c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_SECONDARY_FREQ, 141c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL, 142c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL, 143c1d255d3SCy Schubert 144c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_HW_MODE, 145c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_HT_ENABLED, 146c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_HT40_ENABLED, 147c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_VHT_ENABLED, 148c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_CHWIDTH, 149c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_CH_LIST, 150c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_FREQ_LIST, 151c1d255d3SCy Schubert 152c1d255d3SCy Schubert BRCM_VENDOR_ATTR_ACS_LAST 153c1d255d3SCy Schubert }; 154c1d255d3SCy Schubert 155c1d255d3SCy Schubert 156c1d255d3SCy Schubert #endif /* BRCM_VENDOR_H */ 157