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