1  /*
2   * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
3   * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4   *
5   * Permission to use, copy, modify, and/or distribute this software for
6   * any purpose with or without fee is hereby granted, provided that the
7   * above copyright notice and this permission notice appear in all
8   * copies.
9   *
10   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11   * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12   * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13   * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14   * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15   * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16   * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17   * PERFORMANCE OF THIS SOFTWARE.
18   */
19  
20  #ifndef __WLAN_POLICY_MGR_PUBLIC_STRUCT_H
21  #define __WLAN_POLICY_MGR_PUBLIC_STRUCT_H
22  
23  /**
24   * DOC: wlan_policy_mgr_public_struct.h
25   *
26   * Concurrenct Connection Management entity
27   */
28  
29  /* Include files */
30  #include <wmi_unified_api.h>
31  
32  /*
33   *  Some max value greater than the max length of the channel list
34   */
35  #define MAX_WEIGHT_OF_PCL_CHANNELS 255
36  /*
37   *  Some fixed weight difference between the groups
38   */
39  #define PCL_GROUPS_WEIGHT_DIFFERENCE 20
40  
41  /*
42   * Currently max, only 3 groups are possible as per 'enum policy_mgr_pcl_type'.
43   * i.e., in a PCL only 3 groups of channels can be present
44   * e.g., SCC channel on 2.4 Ghz, SCC channel on 5 Ghz & 5 Ghz channels.
45   * Group 1 has highest priority, group 2 has the next higher priority
46   * and so on.
47   */
48  #define WEIGHT_OF_GROUP1_PCL_CHANNELS MAX_WEIGHT_OF_PCL_CHANNELS
49  #define WEIGHT_OF_GROUP2_PCL_CHANNELS \
50  	(WEIGHT_OF_GROUP1_PCL_CHANNELS - PCL_GROUPS_WEIGHT_DIFFERENCE)
51  #define WEIGHT_OF_GROUP3_PCL_CHANNELS \
52  	(WEIGHT_OF_GROUP2_PCL_CHANNELS - PCL_GROUPS_WEIGHT_DIFFERENCE)
53  #define WEIGHT_OF_GROUP4_PCL_CHANNELS \
54  	(WEIGHT_OF_GROUP3_PCL_CHANNELS - PCL_GROUPS_WEIGHT_DIFFERENCE)
55  
56  #define WEIGHT_OF_NON_PCL_CHANNELS 1
57  #define WEIGHT_OF_DISALLOWED_CHANNELS 0
58  
59  #define MAX_MAC 2
60  
61  #ifdef FEATURE_FOURTH_CONNECTION
62  #define MAX_NUMBER_OF_CONC_CONNECTIONS 4
63  #else
64  #define MAX_NUMBER_OF_CONC_CONNECTIONS 3
65  #endif
66  
67  #ifdef WLAN_FEATURE_11BE_MLO
68  /* Max MLO VDEVS for disabled link table */
69  #define MAX_NUMBER_OF_DISABLE_LINK WLAN_UMAC_MLO_MAX_VDEVS
70  #endif
71  
72  /* BIT 0 for low latency and BIT 1 for HIGH TPUT */
73  #define PM_VDEV_TRAFFIC_LOW_LATENCY 0x1
74  #define PM_VDEV_TRAFFIC_HIGH_TPUT 0x2
75  
76  /* Policy manager default request id */
77  #define POLICY_MGR_DEF_REQ_ID 0
78  
79  typedef int (*send_mode_change_event_cb)(void);
80  
81  /**
82   * enum sap_csa_reason_code - SAP channel switch reason code
83   * @CSA_REASON_UNKNOWN: Unknown reason
84   * @CSA_REASON_STA_CONNECT_DFS_TO_NON_DFS: STA connection from DFS to NON DFS.
85   * @CSA_REASON_USER_INITIATED: User initiated form north bound.
86   * @CSA_REASON_PEER_ACTION_FRAME: Action frame received on sta iface.
87   * @CSA_REASON_PRE_CAC_SUCCESS: Pre CAC success.
88   * @CSA_REASON_CONCURRENT_STA_CHANGED_CHANNEL: concurrent sta changed channel.
89   * @CSA_REASON_UNSAFE_CHANNEL: Unsafe channel.
90   * @CSA_REASON_LTE_COEX: LTE coex.
91   * @CSA_REASON_CONCURRENT_NAN_EVENT: NAN concurrency.
92   * @CSA_REASON_BAND_RESTRICTED: band disabled or re-enabled
93   * @CSA_REASON_DCS: DCS
94   * @CSA_REASON_CHAN_DISABLED: channel is disabled
95   * @CSA_REASON_CHAN_PASSIVE: channel is passive
96   * @CSA_REASON_GO_BSS_STARTED: P2P go started
97   * @CSA_REASON_SAP_ACS: 2.4 GHz preferred SAP ACS starting
98   * @CSA_REASON_SAP_FIX_CH_CONC_WITH_GO: SAP fix channel start
99   * @CSA_REASON_CONCURRENT_LL_LT_SAP_EVENT: LL_LT_SAP concurrency
100   *  and move GO to other band
101   */
102  enum sap_csa_reason_code {
103  	CSA_REASON_UNKNOWN,
104  	CSA_REASON_STA_CONNECT_DFS_TO_NON_DFS,
105  	CSA_REASON_USER_INITIATED,
106  	CSA_REASON_PEER_ACTION_FRAME,
107  	CSA_REASON_PRE_CAC_SUCCESS,
108  	CSA_REASON_CONCURRENT_STA_CHANGED_CHANNEL,
109  	CSA_REASON_UNSAFE_CHANNEL,
110  	CSA_REASON_LTE_COEX,
111  	CSA_REASON_CONCURRENT_NAN_EVENT,
112  	CSA_REASON_BAND_RESTRICTED,
113  	CSA_REASON_DCS,
114  	CSA_REASON_CHAN_DISABLED,
115  	CSA_REASON_CHAN_PASSIVE,
116  	CSA_REASON_GO_BSS_STARTED,
117  	CSA_REASON_SAP_ACS,
118  	CSA_REASON_SAP_FIX_CH_CONC_WITH_GO,
119  	CSA_REASON_CONCURRENT_LL_LT_SAP_EVENT
120  };
121  
122  /*
123   * enum link_control_flags: This enum is used for setting
124   * mlo_control_flags by api policy_mgr_mlo_sta_set_nlink.
125   * @link_ctrl_f_overwrite_active_bitmap: indicate overwrite all earlier
126   * force_active bitmaps. Used with MLO_LINK_FORCE_MODE_ACTIVE or
127   * MLO_LINK_FORCE_MODE_ACTIVE_INACTIVE
128   * @link_ctrl_f_overwrite_inactive_bitmap: indicate overwrite all earlier
129   * force_inactive bitmaps. Used with MLO_LINK_FORCE_MODE_INACTIVE or
130   * MLO_LINK_FORCE_MODE_ACTIVE_INACTIVE.
131   * @link_ctrl_f_dynamic_force_link_num: indicate fw to use force link number
132   * instead of force link bitmaps. Used with MLO_LINK_FORCE_MODE_ACTIVE_NUM.
133   * MLO_LINK_FORCE_MODE_INACTIVE_NUM, MLO_LINK_FORCE_MODE_NO_FORCE.
134   * @link_ctrl_f_post_re_evaluate: run link state check again after command
135   * response handled.
136   */
137  enum link_control_flags {
138  	link_ctrl_f_overwrite_active_bitmap =   1 << 0,
139  	link_ctrl_f_overwrite_inactive_bitmap = 1 << 1,
140  	link_ctrl_f_dynamic_force_link_num =    1 << 2,
141  	link_ctrl_f_post_re_evaluate =          1 << 3,
142  };
143  
144  /**
145   * enum hw_mode_ss_config - Possible spatial stream configuration
146   * @HW_MODE_SS_0x0: Unused Tx and Rx of MAC
147   * @HW_MODE_SS_1x1: 1 Tx SS and 1 Rx SS
148   * @HW_MODE_SS_2x2: 2 Tx SS and 2 Rx SS
149   * @HW_MODE_SS_3x3: 3 Tx SS and 3 Rx SS
150   * @HW_MODE_SS_4x4: 4 Tx SS and 4 Rx SS
151   *
152   * Note: Right now only 1x1 and 2x2 are being supported. Other modes should
153   * be added when supported. Asymmetric configuration like 1x2, 2x1 are also
154   * not supported now. But, they are still valid. Right now, Tx/Rx SS support is
155   * 4 bits long. So, we can go upto 15x15
156   */
157  enum hw_mode_ss_config {
158  	HW_MODE_SS_0x0,
159  	HW_MODE_SS_1x1,
160  	HW_MODE_SS_2x2,
161  	HW_MODE_SS_3x3,
162  	HW_MODE_SS_4x4,
163  };
164  
165  /**
166   * enum hw_mode_dbs_capab - DBS HW mode capability
167   * @HW_MODE_DBS_NONE: Non DBS capable
168   * @HW_MODE_DBS: DBS capable
169   */
170  enum hw_mode_dbs_capab {
171  	HW_MODE_DBS_NONE,
172  	HW_MODE_DBS,
173  };
174  
175  /**
176   * enum hw_mode_agile_dfs_capab - Agile DFS HW mode capability
177   * @HW_MODE_AGILE_DFS_NONE: Non Agile DFS capable
178   * @HW_MODE_AGILE_DFS: Agile DFS capable
179   */
180  enum hw_mode_agile_dfs_capab {
181  	HW_MODE_AGILE_DFS_NONE,
182  	HW_MODE_AGILE_DFS,
183  };
184  
185  /**
186   * enum hw_mode_sbs_capab - SBS HW mode capability
187   * @HW_MODE_SBS_NONE: Non SBS capable
188   * @HW_MODE_SBS: SBS capable
189   */
190  enum hw_mode_sbs_capab {
191  	HW_MODE_SBS_NONE,
192  	HW_MODE_SBS,
193  };
194  
195  /**
196   * enum hw_mode_emlsr_capab - EMLSR HW mode capability
197   * @HW_MODE_EMLSR_NONE: Non EMLSR capable
198   * @HW_MODE_EMLSR: EMLSR capable
199   */
200  enum hw_mode_emlsr_capab {
201  	HW_MODE_EMLSR_NONE,
202  	HW_MODE_EMLSR,
203  };
204  
205  /**
206   * enum hw_mode_mac_band_cap - mac band capability
207   * @HW_MODE_MAC_BAND_NONE: No band requirement.
208   * @HW_MODE_MAC_BAND_2G: 2G band supported.
209   * @HW_MODE_MAC_BAND_5G: 5G band supported.
210   *
211   * To add HW_MODE_MAC_BAND_NONE value to help to
212   * match the HW DBS mode in hw mode list.
213   * Other enum values should match with WMI header:
214   * typedef enum {
215   *   WLAN_2G_CAPABILITY = 0x1,
216   *   WLAN_5G_CAPABILITY = 0x2,
217   * } WLAN_BAND_CAPABILITY;
218   */
219  enum hw_mode_mac_band_cap {
220  	HW_MODE_MAC_BAND_NONE = 0,
221  	HW_MODE_MAC_BAND_2G = WLAN_2G_CAPABILITY,
222  	HW_MODE_MAC_BAND_5G = WLAN_5G_CAPABILITY,
223  };
224  
225  /**
226   * enum force_1x1_type - enum to specify the type of forced 1x1 ini provided.
227   * @FORCE_1X1_DISABLED: even if the AP is present in OUI, 1x1 will not be forced
228   * @FORCE_1X1_ENABLED_FOR_AS: If antenna sharing supported, then only do 1x1.
229   * @FORCE_1X1_ENABLED_FORCED: If AP present in OUI, force 1x1 connection.
230   */
231  enum force_1x1_type {
232  	FORCE_1X1_DISABLED,
233  	FORCE_1X1_ENABLED_FOR_AS,
234  	FORCE_1X1_ENABLED_FORCED,
235  };
236  
237  /**
238   * enum policy_mgr_pcl_group_id - Identifies the pcl groups to be used
239   * @POLICY_MGR_PCL_GROUP_ID1_ID2: Use weights of group1 and group2
240   * @POLICY_MGR_PCL_GROUP_ID2_ID3: Use weights of group2 and group3
241   * @POLICY_MGR_PCL_GROUP_ID3_ID4: Use weights of group3 and group4
242   *
243   * Since maximum of three groups are possible, this will indicate which
244   * PCL group needs to be used.
245   */
246  enum policy_mgr_pcl_group_id {
247  	POLICY_MGR_PCL_GROUP_ID1_ID2,
248  	POLICY_MGR_PCL_GROUP_ID2_ID3,
249  	POLICY_MGR_PCL_GROUP_ID3_ID4,
250  };
251  
252  /**
253   * enum policy_mgr_pcl_channel_order - Order in which the PCL is requested
254   * @POLICY_MGR_PCL_ORDER_NONE: no order
255   * @POLICY_MGR_PCL_ORDER_24G_THEN_5G: 2.4 Ghz channel followed by 5 Ghz channel
256   * @POLICY_MGR_PCL_ORDER_5G_THEN_2G: 5 Ghz channel followed by 2.4 Ghz channel
257   * @POLICY_MGR_PCL_ORDER_2G: 2G channels
258   * @POLICY_MGR_PCL_ORDER_5G: 5G channels
259   * @POLICY_MGR_PCL_ORDER_SCC_5G_LOW_5G_LOW: 5G Low SCC frequency followed by
260   * 5G low band i.e 5G freq < sbs cutoff freq
261   * @POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_5G_HIGH: 5G High SCC frequency followed by
262   * 5G High band i.e 5G freq > sbs cutoff freq
263   * @POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_5G_HIGH_SCC_5G_LOW: 5 GHz High SCC
264   * frequency followed by 5G High band i.e 5G freq > sbs cutoff freq, add 5 GHz
265   * Low SCC frequency
266   * @POLICY_MGR_PCL_ORDER_SCC_5G_LOW: SCC channel on 5G low
267   * @POLICY_MGR_PCL_ORDER_SCC_5G_HIGH: SCC channel on 5G high
268   * @POLICY_MGR_PCL_ORDER_SCC_5G_LOW_MCC_5G_HIGH: SCC channels on 5G low
269   * followed by MCC channels on 5G high
270   * @POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_MCC_5G_LOW: SCC channels on 5G high
271   * followed by MCC channels on 5G low
272   *
273   * Order in which the PCL is requested
274   */
275  enum policy_mgr_pcl_channel_order {
276  	POLICY_MGR_PCL_ORDER_NONE,
277  	POLICY_MGR_PCL_ORDER_24G_THEN_5G,
278  	POLICY_MGR_PCL_ORDER_5G_THEN_2G,
279  	POLICY_MGR_PCL_ORDER_2G,
280  	POLICY_MGR_PCL_ORDER_5G,
281  	POLICY_MGR_PCL_ORDER_SCC_5G_LOW_5G_LOW,
282  	POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_5G_HIGH,
283  	POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_5G_HIGH_SCC_5G_LOW,
284  	POLICY_MGR_PCL_ORDER_SCC_5G_LOW,
285  	POLICY_MGR_PCL_ORDER_SCC_5G_HIGH,
286  	POLICY_MGR_PCL_ORDER_SCC_5G_LOW_MCC_5G_HIGH,
287  	POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_MCC_5G_LOW,
288  };
289  
290  /**
291   * enum policy_mgr_pcl_band_priority - Band priority between 5G and 6G channel
292   * @POLICY_MGR_PCL_BAND_5G_THEN_6G: 5 Ghz channel followed by 6 Ghz channel
293   * @POLICY_MGR_PCL_BAND_6G_THEN_5G: 6 Ghz channel followed by 5 Ghz channel
294   *
295   *  Band priority between 5G and 6G
296   */
297  enum policy_mgr_pcl_band_priority {
298  	POLICY_MGR_PCL_BAND_5G_THEN_6G = 0,
299  	POLICY_MGR_PCL_BAND_6G_THEN_5G,
300  };
301  
302  /**
303   * enum policy_mgr_max_rx_ss - Maximum number of receive spatial streams
304   * @POLICY_MGR_RX_NSS_1: Receive Nss = 1
305   * @POLICY_MGR_RX_NSS_2: Receive Nss = 2
306   * @POLICY_MGR_RX_NSS_3: Receive Nss = 3
307   * @POLICY_MGR_RX_NSS_4: Receive Nss = 4
308   * @POLICY_MGR_RX_NSS_5: Receive Nss = 5
309   * @POLICY_MGR_RX_NSS_6: Receive Nss = 6
310   * @POLICY_MGR_RX_NSS_7: Receive Nss = 7
311   * @POLICY_MGR_RX_NSS_8: Receive Nss = 8
312   * @POLICY_MGR_RX_NSS_MAX: maximum enumeration
313   *
314   * Indicates the maximum number of spatial streams that the STA can receive
315   */
316  enum policy_mgr_max_rx_ss {
317  	POLICY_MGR_RX_NSS_1 = 0,
318  	POLICY_MGR_RX_NSS_2 = 1,
319  	POLICY_MGR_RX_NSS_3 = 2,
320  	POLICY_MGR_RX_NSS_4 = 3,
321  	POLICY_MGR_RX_NSS_5 = 4,
322  	POLICY_MGR_RX_NSS_6 = 5,
323  	POLICY_MGR_RX_NSS_7 = 6,
324  	POLICY_MGR_RX_NSS_8 = 7,
325  	POLICY_MGR_RX_NSS_MAX,
326  };
327  
328  /**
329   * enum policy_mgr_chain_mode - Chain Mask tx & rx combination.
330   *
331   * @POLICY_MGR_ONE_ONE: One for Tx, One for Rx
332   * @POLICY_MGR_TWO_TWO: Two for Tx, Two for Rx
333   * @POLICY_MGR_MAX_NO_OF_CHAIN_MODE: Max place holder
334   *
335   * These are generic IDs that identify the various roles
336   * in the software system
337   */
338  enum policy_mgr_chain_mode {
339  	POLICY_MGR_ONE_ONE = 0,
340  	POLICY_MGR_TWO_TWO,
341  	POLICY_MGR_MAX_NO_OF_CHAIN_MODE
342  };
343  
344  /**
345   * enum policy_mgr_conc_priority_mode - t/p, powersave, latency.
346   *
347   * @PM_THROUGHPUT: t/p is the priority
348   * @PM_POWERSAVE: powersave is the priority
349   * @PM_LATENCY: latency is the priority
350   * @PM_MAX_CONC_PRIORITY_MODE: Max place holder
351   *
352   * These are generic IDs that identify the various roles
353   * in the software system
354   */
355  enum policy_mgr_conc_priority_mode {
356  	PM_THROUGHPUT = 0,
357  	PM_POWERSAVE,
358  	PM_LATENCY,
359  	PM_MAX_CONC_PRIORITY_MODE
360  };
361  
362  /**
363   * enum policy_mgr_con_mode - concurrency mode for PCL table
364   *
365   * @PM_STA_MODE: station mode
366   * @PM_SAP_MODE: SAP mode
367   * @PM_P2P_CLIENT_MODE: P2P client mode
368   * @PM_P2P_GO_MODE: P2P Go mode
369   * @PM_NDI_MODE: NDI mode
370   * @PM_NAN_DISC_MODE: NAN Discovery mode
371   * @PM_LL_LT_SAP_MODE: Low latency low throughput SAP
372   * @PM_MAX_NUM_OF_MODE: max value place holder
373   */
374  enum policy_mgr_con_mode {
375  	PM_STA_MODE = 0,
376  	PM_SAP_MODE,
377  	PM_P2P_CLIENT_MODE,
378  	PM_P2P_GO_MODE,
379  	PM_NDI_MODE,
380  	PM_NAN_DISC_MODE,
381  	PM_LL_LT_SAP_MODE,
382  	PM_MAX_NUM_OF_MODE
383  };
384  
385  /**
386   * enum policy_mgr_mac_use - MACs that are used
387   * @POLICY_MGR_MAC0: Only MAC0 is used
388   * @POLICY_MGR_MAC1: Only MAC1 is used
389   * @POLICY_MGR_MAC0_AND_MAC1: Both MAC0 and MAC1 are used
390   */
391  enum policy_mgr_mac_use {
392  	POLICY_MGR_MAC0 = 1,
393  	POLICY_MGR_MAC1 = 2,
394  	POLICY_MGR_MAC0_AND_MAC1 = 3
395  };
396  
397  /**
398   * enum policy_mgr_pcl_type - Various types of Preferred channel list (PCL).
399   *
400   * @PM_NONE: No channel preference
401   * @PM_24G: 2.4 Ghz channels only
402   * @PM_5G: 5 Ghz channels only
403   * @PM_SCC_CH: SCC channel only
404   * @PM_MCC_CH: MCC channels only
405   * @PM_SBS_CH: SBS channels only
406   * @PM_SCC_CH_24G: SCC channel & 2.4 Ghz channels
407   * @PM_SCC_CH_5G: SCC channel & 5 Ghz channels
408   * @PM_24G_SCC_CH: 2.4 Ghz channels & SCC channel
409   * @PM_5G_SCC_CH: 5 Ghz channels & SCC channel
410   * @PM_SCC_ON_5_CH_5G: 5 Ghz SCC channel & 5 Ghz channels
411   * @PM_SCC_ON_5_SCC_ON_24_24G: SCC channel on 5 Ghz, SCC
412   *	channel on 2.4 Ghz & 2.4 Ghz channels
413   * @PM_SCC_ON_5_SCC_ON_24_5G: SCC channel on 5 Ghz, SCC channel
414   *	on 2.4 Ghz & 5 Ghz channels
415   * @PM_SCC_ON_5_5G_24G: SCC channel on 5 Ghz, 5 Ghz channels & 2.4 Ghz channels
416   * @PM_SCC_ON_5_5G_SCC_ON_24G: SCC channel on 5 Ghz, 5 Ghz channels &
417   *	SCC channel on 2.4 Ghz
418   * @PM_SCC_ON_24_SCC_ON_5_24G: SCC channel on 2.4 Ghz, SCC
419   *	channel on 5 Ghz & 2.4 Ghz channels
420   * @PM_SCC_ON_24_SCC_ON_5_5G: SCC channel on 2.4 Ghz, SCC
421   *	channel on 5 Ghz & 5 Ghz channels
422   * @PM_SCC_ON_24_CH_24G: SCC channel on 2.4 GHz & 2.4 GHz channels
423   * @PM_SCC_ON_5_SCC_ON_24: SCC channel on 5 Ghz, SCC channel on
424   *	2.4 Ghz
425   * @PM_SCC_ON_24_SCC_ON_5: SCC channel on 2.4 Ghz, SCC channel
426   *	on 5 Ghz
427   * @PM_MCC_CH_24G: MCC channels & 2.4 Ghz channels
428   * @PM_MCC_CH_5G:  MCC channels & 5 Ghz channels
429   * @PM_24G_MCC_CH: 2.4 Ghz channels & MCC channels
430   * @PM_5G_MCC_CH: 5 Ghz channels & MCC channels
431   * @PM_SBS_CH_5G: SBS channels & rest of 5 Ghz channels
432   * @PM_24G_SCC_CH_SBS_CH: 2.4 Ghz channels, SCC channel & SBS channels
433   * @PM_24G_SCC_CH_SBS_CH_5G: 2.4 Ghz channels, SCC channel,
434   *      SBS channels & rest of the 5G channels
435   * @PM_24G_SBS_CH_MCC_CH: 2.4 Ghz channels, SBS channels & MCC channels
436   * @PM_SBS_CH_24G_SCC_CH:
437   * @PM_SBS_CH_SCC_CH_24G:
438   * @PM_SCC_CH_SBS_CH_24G:
439   * @PM_SBS_CH_SCC_CH_5G_24G:
440   * @PM_SCC_CH_MCC_CH_SBS_CH_24G:
441   * @PM_SBS_CH_2G: SBS channels & 2.4 Ghz channels
442   * @PM_SCC_ON_5G_LOW_5G_LOW_PLUS_SHARED_2G: 5 GHz low SCC channel followed by
443   * 5 GHz low frequencies, add 2.4 GHz if its shared with 5 GHz low
444   * @PM_SCC_ON_5G_HIGH_5G_HIGH_PLUS_SHARED_2G: 5GHZ high SCC channel followed by
445   * 5 GHz high frequencies, add 2.4 GHZ if its shared with 5GHz high
446   * @PM_SCC_ON_5G_HIGH_5G_HIGH_SCC_ON_5G_LOW_PLUS_SHARED_2G: 5GHZ high SCC
447   * channel followed by 5 GHz high frequencies and 5 GHz low SCC channel,
448   * add 2.4 GHZ if its shared with 5GHz high
449   * @PM_SBS_CH_MCC_CH: SBS channels followed by MCC channels
450   * @PM_SBS_5G_MCC_24G: SBS channels, 5G MCC channels and 2.4GHz channels
451   * @PM_SCC_ON_24G: SCC channels on 2.4 Ghz
452   * @PM_SCC_ON_5G_LOW: SCC channels on 5G low frequencies
453   * @PM_SCC_ON_5G_HIGH: SCC channels on 5G high frequencies
454   * @PM_SBS_CH_MCC_CH_SCC_ON_24_24G: SBS channels followed by MCC channels
455   * followed by SCC channels on 2.4 GHz followed by 2.4 GHz channels
456   * @PM_5G_24G: 5 GHz channels, followed by 2.4 GHz channels
457   * @PM_MCC_CH_SCC_ON_24G: MCC chanenls followed by SCC channels on 2.4 Ghz
458   * @PM_SCC_ON_5G_LOW_MCC_ON_5G_HIGH: SCC channels on 5G low frequencies
459   * followed by MCC channels on 5G high frequencies
460   * @PM_SCC_ON_5G_HIGH_MCC_ON_5G_LOW: SCC channels on 5G high frequencies
461   * followed by MCC channels on 5G low frequencies
462   *
463   * @PM_MAX_PCL_TYPE: Max place holder
464   *
465   * These are generic IDs that identify the various roles
466   * in the software system
467   */
468  enum policy_mgr_pcl_type {
469  	PM_NONE = 0,
470  	PM_24G,
471  	PM_5G,
472  	PM_SCC_CH,
473  	PM_MCC_CH,
474  	PM_SBS_CH,
475  	PM_SCC_CH_24G,
476  	PM_SCC_CH_5G,
477  	PM_24G_SCC_CH,
478  	PM_5G_SCC_CH,
479  	PM_SCC_ON_5_CH_5G,
480  	PM_SCC_ON_5_SCC_ON_24_24G,
481  	PM_SCC_ON_5_SCC_ON_24_5G,
482  	PM_SCC_ON_5_5G_24G,
483  	PM_SCC_ON_5_5G_SCC_ON_24G,
484  	PM_SCC_ON_24_SCC_ON_5_24G,
485  	PM_SCC_ON_24_SCC_ON_5_5G,
486  	PM_SCC_ON_24_CH_24G,
487  	PM_SCC_ON_5_SCC_ON_24,
488  	PM_SCC_ON_24_SCC_ON_5,
489  	PM_MCC_CH_24G,
490  	PM_MCC_CH_5G,
491  	PM_24G_MCC_CH,
492  	PM_5G_MCC_CH,
493  	PM_SBS_CH_5G,
494  	PM_24G_SCC_CH_SBS_CH,
495  	PM_24G_SCC_CH_SBS_CH_5G,
496  	PM_24G_SBS_CH_MCC_CH,
497  	/* New PCL type for DBS-SBS HW */
498  	PM_SBS_CH_24G_SCC_CH,
499  	PM_SBS_CH_SCC_CH_24G,
500  	PM_SCC_CH_SBS_CH_24G,
501  	PM_SBS_CH_SCC_CH_5G_24G,
502  	PM_SCC_CH_MCC_CH_SBS_CH_24G,
503  	PM_SBS_CH_2G,
504  	PM_SCC_ON_5G_LOW_5G_LOW_PLUS_SHARED_2G,
505  	PM_SCC_ON_5G_HIGH_5G_HIGH_PLUS_SHARED_2G,
506  	PM_SCC_ON_5G_HIGH_5G_HIGH_SCC_ON_5G_LOW_PLUS_SHARED_2G,
507  
508  	PM_SBS_CH_MCC_CH,
509  	PM_SBS_5G_MCC_24G,
510  	PM_SCC_ON_24G,
511  	PM_SCC_ON_5G_LOW,
512  	PM_SCC_ON_5G_HIGH,
513  	PM_SBS_CH_MCC_CH_SCC_ON_24_24G,
514  	PM_5G_24G,
515  	PM_MCC_CH_SCC_ON_24G,
516  	PM_SCC_ON_5G_LOW_MCC_ON_5G_HIGH,
517  	PM_SCC_ON_5G_HIGH_MCC_ON_5G_LOW,
518  
519  	PM_MAX_PCL_TYPE
520  };
521  
522  /**
523   * enum policy_mgr_one_connection_mode - Combination of first connection
524   * type, band & spatial stream used.
525   *
526   * @PM_STA_24_1x1: STA connection using 1x1@2.4 Ghz
527   * @PM_STA_24_2x2: STA connection using 2x2@2.4 Ghz
528   * @PM_STA_5_1x1: STA connection using 1x1@5 Ghz
529   * @PM_STA_5_2x2: STA connection using 2x2@5 Ghz
530   * @PM_P2P_CLI_24_1x1: P2P Client connection using 1x1@2.4 Ghz
531   * @PM_P2P_CLI_24_2x2: P2P Client connection using 2x2@2.4 Ghz
532   * @PM_P2P_CLI_5_1x1: P2P Client connection using 1x1@5 Ghz
533   * @PM_P2P_CLI_5_2x2: P2P Client connection using 2x2@5 Ghz
534   * @PM_P2P_GO_24_1x1: P2P GO connection using 1x1@2.4 Ghz
535   * @PM_P2P_GO_24_2x2: P2P GO connection using 2x2@2.4 Ghz
536   * @PM_P2P_GO_5_1x1: P2P GO connection using 1x1@5 Ghz
537   * @PM_P2P_GO_5_2x2: P2P GO connection using 2x2@5 Ghz
538   * @PM_SAP_24_1x1: SAP connection using 1x1@2.4 Ghz
539   * @PM_SAP_24_2x2: SAP connection using 2x2@2.4 Ghz
540   * @PM_SAP_5_1x1: SAP connection using 1x1@5 Ghz
541   * @PM_SAP_5_2x2: SAP connection using 2x2@5 Ghz
542   * @PM_NAN_DISC_24_1x1:  NAN Discovery using 1x1@2.4 Ghz
543   * @PM_NAN_DISC_24_2x2:  NAN Discovery using 2x2@2.4 Ghz
544   * @PM_NDI_24_1x1:  NAN Datapath using 1x1@2.4 Ghz
545   * @PM_NDI_24_2x2:  NAN Datapath using 2x2@2.4 Ghz
546   * @PM_NDI_5_1x1:  NAN Datapath using 1x1@5 Ghz
547   * @PM_NDI_5_2x2:  NAN Datapath using 2x2@5 Ghz
548   * @PM_LL_LT_SAP_5_1x1: Low latency low throughput SAP using 1x1@5 Ghz
549   * @PM_LL_LT_SAP_5_2x2: Low latency low throughput SAP using 2x2@5 Ghz
550   * @PM_MAX_ONE_CONNECTION_MODE: Max place holder
551   *
552   * These are generic IDs that identify the various roles
553   * in the software system
554   */
555  enum policy_mgr_one_connection_mode {
556  	PM_STA_24_1x1 = 0,
557  	PM_STA_24_2x2,
558  	PM_STA_5_1x1,
559  	PM_STA_5_2x2,
560  	PM_P2P_CLI_24_1x1,
561  	PM_P2P_CLI_24_2x2,
562  	PM_P2P_CLI_5_1x1,
563  	PM_P2P_CLI_5_2x2,
564  	PM_P2P_GO_24_1x1,
565  	PM_P2P_GO_24_2x2,
566  	PM_P2P_GO_5_1x1,
567  	PM_P2P_GO_5_2x2,
568  	PM_SAP_24_1x1,
569  	PM_SAP_24_2x2,
570  	PM_SAP_5_1x1,
571  	PM_SAP_5_2x2,
572  	PM_NAN_DISC_24_1x1,
573  	PM_NAN_DISC_24_2x2,
574  	PM_NDI_24_1x1,
575  	PM_NDI_24_2x2,
576  	PM_NDI_5_1x1,
577  	PM_NDI_5_2x2,
578  	PM_LL_LT_SAP_5_1x1,
579  	PM_LL_LT_SAP_5_2x2 = PM_LL_LT_SAP_5_1x1,
580  
581  	PM_MAX_ONE_CONNECTION_MODE
582  };
583  
584  /**
585   * enum policy_mgr_two_connection_mode - Combination of first two
586   * connections type, concurrency state, band & spatial stream
587   * used.
588   *
589   * @PM_STA_SAP_SCC_24_1x1: STA & SAP connection on SCC using
590   *			1x1@2.4 Ghz
591   * @PM_STA_SAP_SCC_24_2x2: STA & SAP connection on SCC using
592   *			2x2@2.4 Ghz
593   * @PM_STA_SAP_MCC_24_1x1: STA & SAP connection on MCC using
594   *			1x1@2.4 Ghz
595   * @PM_STA_SAP_MCC_24_2x2: STA & SAP connection on MCC using
596   *			2x2@2.4 Ghz
597   * @PM_STA_SAP_SCC_5_1x1: STA & SAP connection on SCC using
598   *			1x1@5 Ghz
599   * @PM_STA_SAP_SCC_5_2x2: STA & SAP connection on SCC using
600   *			2x2@5 Ghz
601   * @PM_STA_SAP_MCC_5_1x1: STA & SAP connection on MCC using
602   *			1x1@5 Ghz
603   * @PM_STA_SAP_MCC_5_2x2: STA & SAP connection on MCC using
604   *			2x2@5 Ghz
605   * @PM_STA_SAP_MCC_24_5_1x1:
606   * @PM_STA_SAP_MCC_24_5_2x2:
607   * @PM_STA_SAP_DBS_1x1: STA & SAP connection on DBS using 1x1
608   * @PM_STA_SAP_DBS_2x2: STA & SAP connection on DBS using 2x2
609   * @PM_STA_SAP_SBS_5_1x1: STA & SAP connection on 5G SBS using 1x1
610   * @PM_STA_SAP_SBS_5_2x2: STA & SAP connection on 5G SBS using 2x2
611   * @PM_STA_P2P_GO_SCC_24_1x1: STA & P2P GO connection on SCC
612   *			using 1x1@2.4 Ghz
613   * @PM_STA_P2P_GO_SCC_24_2x2: STA & P2P GO connection on SCC
614   *			using 2x2@2.4 Ghz
615   * @PM_STA_P2P_GO_MCC_24_1x1: STA & P2P GO connection on MCC
616   *			using 1x1@2.4 Ghz
617   * @PM_STA_P2P_GO_MCC_24_2x2: STA & P2P GO connection on MCC
618   *			using 2x2@2.4 Ghz
619   * @PM_STA_P2P_GO_SCC_5_1x1: STA & P2P GO connection on SCC
620   *			using 1x1@5 Ghz
621   * @PM_STA_P2P_GO_SCC_5_2x2: STA & P2P GO connection on SCC
622   *			using 2x2@5 Ghz
623   * @PM_STA_P2P_GO_MCC_5_1x1: STA & P2P GO connection on MCC
624   *			using 1x1@5 Ghz
625   * @PM_STA_P2P_GO_MCC_5_2x2: STA & P2P GO connection on MCC
626   *			using 2x2@5 Ghz
627   * @PM_STA_P2P_GO_MCC_24_5_1x1:
628   * @PM_STA_P2P_GO_MCC_24_5_2x2:
629   * @PM_STA_P2P_GO_DBS_1x1: STA & P2P GO connection on DBS using
630   *			1x1
631   * @PM_STA_P2P_GO_DBS_2x2: STA & P2P GO connection on DBS using
632   *			2x2
633   * @PM_STA_P2P_GO_SBS_5_1x1: STA & P2P GO connection on 5G SBS
634   *			using 1x1
635   * @PM_STA_P2P_GO_SBS_5_2x2: STA & P2P GO connection on 5G SBS
636   *			using 2x2
637   * @PM_STA_P2P_CLI_SCC_24_1x1: STA & P2P CLI connection on SCC
638   *			using 1x1@2.4 Ghz
639   * @PM_STA_P2P_CLI_SCC_24_2x2: STA & P2P CLI connection on SCC
640   *			using 2x2@2.4 Ghz
641   * @PM_STA_P2P_CLI_MCC_24_1x1: STA & P2P CLI connection on MCC
642   *			using 1x1@2.4 Ghz
643   * @PM_STA_P2P_CLI_MCC_24_2x2: STA & P2P CLI connection on MCC
644   *			using 2x2@2.4 Ghz
645   * @PM_STA_P2P_CLI_SCC_5_1x1: STA & P2P CLI connection on SCC
646   *			using 1x1@5 Ghz
647   * @PM_STA_P2P_CLI_SCC_5_2x2: STA & P2P CLI connection on SCC
648   *			using 2x2@5 Ghz
649   * @PM_STA_P2P_CLI_MCC_5_1x1: STA & P2P CLI connection on MCC
650   *			using 1x1@5 Ghz
651   * @PM_STA_P2P_CLI_MCC_5_2x2: STA & P2P CLI connection on MCC
652   *			using 2x2@5 Ghz
653   * @PM_STA_P2P_CLI_MCC_24_5_1x1:
654   * @PM_STA_P2P_CLI_MCC_24_5_2x2:
655   * @PM_STA_P2P_CLI_DBS_1x1: STA & P2P CLI connection on DBS
656   *			using 1x1
657   * @PM_STA_P2P_CLI_DBS_2x2: STA & P2P CLI connection on DBS
658   *			using 2x2
659   * @PM_STA_P2P_CLI_SBS_5_1x1: STA & P2P CLI connection on 5G
660   *			SBS using 1x1
661   * @PM_STA_P2P_CLI_SBS_5_2x2: STA & P2P CLI connection on 5G
662   *			SBS using 2x2
663   * @PM_P2P_GO_P2P_CLI_SCC_24_1x1: P2P GO & CLI connection on
664   *			SCC using 1x1@2.4 Ghz
665   * @PM_P2P_GO_P2P_CLI_SCC_24_2x2: P2P GO & CLI connection on
666   *			SCC using 2x2@2.4 Ghz
667   * @PM_P2P_GO_P2P_CLI_MCC_24_1x1: P2P GO & CLI connection on
668   *			MCC using 1x1@2.4 Ghz
669   * @PM_P2P_GO_P2P_CLI_MCC_24_2x2: P2P GO & CLI connection on
670   *			MCC using 2x2@2.4 Ghz
671   * @PM_P2P_GO_P2P_CLI_SCC_5_1x1: P2P GO & CLI connection on
672   *			SCC using 1x1@5 Ghz
673   * @PM_P2P_GO_P2P_CLI_SCC_5_2x2: P2P GO & CLI connection on
674   *			SCC using 2x2@5 Ghz
675   * @PM_P2P_GO_P2P_CLI_MCC_5_1x1: P2P GO & CLI connection on
676   *			MCC using 1x1@5 Ghz
677   * @PM_P2P_GO_P2P_CLI_MCC_5_2x2: P2P GO & CLI connection on
678   *			MCC using 2x2@5 Ghz
679   * @PM_P2P_GO_P2P_CLI_MCC_24_5_1x1:
680   * @PM_P2P_GO_P2P_CLI_MCC_24_5_2x2:
681   * @PM_P2P_GO_P2P_CLI_DBS_1x1: P2P GO & CLI connection on DBS
682   *			using 1x1
683   * @PM_P2P_GO_P2P_CLI_DBS_2x2: P2P GO & P2P CLI connection
684   *			on DBS using 2x2
685   * @PM_P2P_GO_P2P_CLI_SBS_5_1x1: P2P GO & P2P CLI connection
686   *			on 5G SBS using 1x1
687   * @PM_P2P_GO_P2P_CLI_SBS_5_2x2: P2P GO & P2P CLI connection
688   *			on 5G SBS using 2x2
689   * @PM_P2P_GO_SAP_SCC_24_1x1: P2P GO & SAP connection on
690   *			SCC using 1x1@2.4 Ghz
691   * @PM_P2P_GO_SAP_SCC_24_2x2: P2P GO & SAP connection on
692   *			SCC using 2x2@2.4 Ghz
693   * @PM_P2P_GO_SAP_MCC_24_1x1: P2P GO & SAP connection on
694   *			MCC using 1x1@2.4 Ghz
695   * @PM_P2P_GO_SAP_MCC_24_2x2: P2P GO & SAP connection on
696   *			MCC using 2x2@2.4 Ghz
697   * @PM_P2P_GO_SAP_SCC_5_1x1: P2P GO & SAP connection on
698   *			SCC using 1x1@5 Ghz
699   * @PM_P2P_GO_SAP_SCC_5_2x2: P2P GO & SAP connection on
700   *			SCC using 2x2@5 Ghz
701   * @PM_P2P_GO_SAP_MCC_5_1x1: P2P GO & SAP connection on
702   *			MCC using 1x1@5 Ghz
703   * @PM_P2P_GO_SAP_MCC_5_2x2: P2P GO & SAP connection on
704   *			MCC using 2x2@5 Ghz
705   * @PM_P2P_GO_SAP_MCC_24_5_1x1:
706   * @PM_P2P_GO_SAP_MCC_24_5_2x2:
707   * @PM_P2P_GO_SAP_DBS_1x1: P2P GO & SAP connection on DBS using
708   *			1x1
709   * @PM_P2P_GO_SAP_DBS_2x2: P2P GO & SAP connection on DBS using
710   *			2x2
711   * @PM_P2P_GO_SAP_SBS_5_1x1: P2P GO & SAP connection on 5G SBS
712   *			using 1x1
713   * @PM_P2P_GO_SAP_SBS_5_2x2: P2P GO & SAP connection on 5G SBS
714   *			using 2x2
715   * @PM_P2P_GO_P2P_GO_SCC_24_1x1: P2P GO & P2P GO SCC on 2.4G using 1x1
716   * @PM_P2P_GO_P2P_GO_SCC_24_2x2: P2P GO & P2P GO SCC on 2.4G using 2x2
717   * @PM_P2P_GO_P2P_GO_MCC_24_1x1: P2P GO & P2P GO MCC on 2.4G using 1x1
718   * @PM_P2P_GO_P2P_GO_MCC_24_2x2: P2P GO & P2P GO MCC on 2.4G using 2x2
719   * @PM_P2P_GO_P2P_GO_SCC_5_1x1: P2P GO & P2P GO SCC on 5G using 1x1
720   * @PM_P2P_GO_P2P_GO_SCC_5_2x2: P2P GO & P2P GO SCC on 5G using 2x2
721   * @PM_P2P_GO_P2P_GO_MCC_5_1x1: P2P GO & P2P GO MCC on 5G using 1x1
722   * @PM_P2P_GO_P2P_GO_MCC_5_2x2: P2P GO & P2P GO MCC on 5G using 2x2
723   * @PM_P2P_GO_P2P_GO_MCC_24_5_1x1: P2P GO 2.4G & P2P GO 5G dual band MCC
724   *                                 using 1x1
725   * @PM_P2P_GO_P2P_GO_MCC_24_5_2x2: P2P GO 2.4G & P2P GO 5G dual band MCC
726   *                                 using 2x2
727   * @PM_P2P_GO_P2P_GO_DBS_1x1: P2P GO & P2P GO on DBS using 1x1
728   * @PM_P2P_GO_P2P_GO_DBS_2x2: P2P GO & P2P GO on DBS using 2x2
729   * @PM_P2P_GO_P2P_GO_SBS_5_1x1: P2P GO & P2P GO on SBS using 1x1
730   * @PM_P2P_GO_P2P_GO_SBS_5_2x2: P2P GO & P2P GO on SBS using 2x2
731   * @PM_P2P_CLI_SAP_SCC_24_1x1: CLI & SAP connection on SCC using
732   *			1x1@2.4 Ghz
733   * @PM_P2P_CLI_SAP_SCC_24_2x2: CLI & SAP connection on SCC using
734   *			2x2@2.4 Ghz
735   * @PM_P2P_CLI_SAP_MCC_24_1x1: CLI & SAP connection on MCC using
736   *			1x1@2.4 Ghz
737   * @PM_P2P_CLI_SAP_MCC_24_2x2: CLI & SAP connection on MCC using
738   *			2x2@2.4 Ghz
739   * @PM_P2P_CLI_SAP_SCC_5_1x1: CLI & SAP connection on SCC using
740   *			1x1@5 Ghz
741   * @PM_P2P_CLI_SAP_SCC_5_2x2: CLI & SAP connection on SCC using
742   *			2x2@5 Ghz
743   * @PM_P2P_CLI_SAP_MCC_5_1x1: CLI & SAP connection on MCC using
744   *			1x1@5 Ghz
745   * @PM_P2P_CLI_SAP_MCC_5_2x2: CLI & SAP connection on MCC using
746   *			2x2@5 Ghz
747   * @PM_P2P_CLI_SAP_MCC_24_5_1x1: CLI and SAP connecting on MCC
748   *			in 2.4 and 5GHz 1x1
749   * @PM_P2P_CLI_SAP_MCC_24_5_2x2: CLI and SAP connecting on MCC
750   *			in 2.4 and 5GHz 2x2
751   * @PM_P2P_CLI_SAP_DBS_1x1: CLI & SAP connection on DBS using 1x1
752   * @PM_P2P_CLI_SAP_DBS_2x2: P2P CLI & SAP connection on DBS using
753   *			2x2
754   * @PM_P2P_CLI_SAP_SBS_5_1x1: P2P CLI & SAP connection on 5G SBS
755   *			using 1x1
756   * @PM_P2P_CLI_SAP_SBS_5_2x2: P2P CLI & SAP connection on 5G SBS
757   *			using 2x2
758   * @PM_P2P_CLI_P2P_CLI_SCC_24_1x1: P2P CLI & P2P CLI SCC on 2.4G using 1x1
759   * @PM_P2P_CLI_P2P_CLI_SCC_24_2x2: P2P CLI & P2P CLI SCC on 2.4G using 2x2
760   * @PM_P2P_CLI_P2P_CLI_MCC_24_1x1: P2P CLI & P2P CLI MCC on 2.4G using 1x1
761   * @PM_P2P_CLI_P2P_CLI_MCC_24_2x2: P2P CLI & P2P CLI MCC on 2.4G using 2x2
762   * @PM_P2P_CLI_P2P_CLI_SCC_5_1x1: P2P CLI & P2P CLI SCC on 5G using 1x1
763   * @PM_P2P_CLI_P2P_CLI_SCC_5_2x2: P2P CLI & P2P CLI SCC on 5G using 2x2
764   * @PM_P2P_CLI_P2P_CLI_MCC_5_1x1: P2P CLI & P2P CLI MCC on 5G using 1x1
765   * @PM_P2P_CLI_P2P_CLI_MCC_5_2x2: P2P CLI & P2P CLI MCC on 5G using 2x2
766   * @PM_P2P_CLI_P2P_CLI_MCC_24_5_1x1: P2P CLI 2.4G & P2P CLI 5G dual band MCC
767   *                                 using 1x1
768   * @PM_P2P_CLI_P2P_CLI_MCC_24_5_2x2: P2P CLI 2.4G & P2P CLI 5G dual band MCC
769   *                                 using 2x2
770   * @PM_P2P_CLI_P2P_CLI_DBS_1x1: P2P CLI & P2P CLI on DBS using 1x1
771   * @PM_P2P_CLI_P2P_CLI_DBS_2x2: P2P CLI & P2P CLI on DBS using 2x2
772   * @PM_P2P_CLI_P2P_CLI_SBS_5_1x1: P2P CLI & P2P CLI on SBS using 1x1
773   * @PM_P2P_CLI_P2P_CLI_SBS_5_2x2: P2P CLI & P2P CLI on SBS using 2x2
774   * @PM_SAP_SAP_SCC_24_1x1: SAP & SAP connection on
775   *			SCC using 1x1@2.4 Ghz
776   * @PM_SAP_SAP_SCC_24_2x2: SAP & SAP connection on
777   *			SCC using 2x2@2.4 Ghz
778   * @PM_SAP_SAP_MCC_24_1x1: SAP & SAP connection on
779   *			MCC using 1x1@2.4 Ghz
780   * @PM_SAP_SAP_MCC_24_2x2: SAP & SAP connection on
781   *			MCC using 2x2@2.4 Ghz
782   * @PM_SAP_SAP_SCC_5_1x1: SAP & SAP connection on
783   *			SCC using 1x1@5 Ghz
784   * @PM_SAP_SAP_SCC_5_2x2: SAP & SAP connection on
785   *			SCC using 2x2@5 Ghz
786   * @PM_SAP_SAP_MCC_5_1x1: SAP & SAP connection on
787   *			MCC using 1x1@5 Ghz
788   * @PM_SAP_SAP_MCC_5_2x2: SAP & SAP connection on
789   *          MCC using 2x2@5 Ghz
790   * @PM_SAP_SAP_MCC_24_5_1x1: SAP & SAP connection on
791   *			MCC in 2.4 and 5GHz 1x1
792   * @PM_SAP_SAP_MCC_24_5_2x2: SAP & SAP connection on
793   *			MCC in 2.4 and 5GHz 2x2
794   * @PM_SAP_SAP_DBS_1x1: SAP & SAP connection on DBS using
795   *			1x1
796   * @PM_SAP_SAP_DBS_2x2: SAP & SAP connection on DBS using 2x2
797   * @PM_SAP_SAP_SBS_5_1x1: SAP & SAP connection on 5G SBS using 1x1
798   * @PM_SAP_SAP_SBS_5_2x2: SAP & SAP connection on 5G SBS using 2x2
799   * @PM_SAP_NAN_DISC_SCC_24_1x1: SAP & NAN connection on
800   *			SCC using 1x1@2.4 Ghz
801   * @PM_SAP_NAN_DISC_SCC_24_2x2: SAP & NAN connection on
802   *			SCC using 2x2@2.4 Ghz
803   * @PM_SAP_NAN_DISC_MCC_24_1x1: SAP & NAN connection on
804   *			MCC using 1x1@2.4 Ghz
805   * @PM_SAP_NAN_DISC_MCC_24_2x2: SAP & NAN connection on
806   *			SCC using 2x2@2.4 Ghz
807   * @PM_SAP_NAN_DISC_DBS_1x1: SAP & NAN connection on DBS using 1x1
808   * @PM_SAP_NAN_DISC_DBS_2x2: SAP & NAN connection on DBS using 2x2
809   * @PM_STA_STA_SCC_24_1x1: STA & STA connection on
810   *			SCC using 1x1@2.4 Ghz
811   * @PM_STA_STA_SCC_24_2x2: STA & STA connection on
812   *			SCC using 2x2@2.4 Ghz
813   * @PM_STA_STA_MCC_24_1x1: STA & STA connection on
814   *			MCC using 1x1@2.4 Ghz
815   * @PM_STA_STA_MCC_24_2x2: STA & STA connection on
816   *			MCC using 2x2@2.4 Ghz
817   * @PM_STA_STA_SCC_5_1x1: STA & STA connection on
818   *			SCC using 1x1@5 Ghz
819   * @PM_STA_STA_SCC_5_2x2: STA & STA connection on
820   *			SCC using 2x2@5 Ghz
821   * @PM_STA_STA_MCC_5_1x1: STA & STA connection on
822   *			MCC using 1x1@5 Ghz
823   * @PM_STA_STA_MCC_5_2x2: STA & STA connection on
824   *          MCC using 2x2@5 Ghz
825   * @PM_STA_STA_MCC_24_5_1x1: STA & STA connection on
826   *			MCC in 2.4 and 5GHz 1x1
827   * @PM_STA_STA_MCC_24_5_2x2: STA & STA connection on
828   *			MCC in 2.4 and 5GHz 2x2
829   * @PM_STA_STA_DBS_1x1: STA & STA connection on DBS using
830   *			1x1
831   * @PM_STA_STA_DBS_2x2: STA & STA connection on DBS using 2x2
832   * @PM_STA_STA_SBS_5_1x1: STA & STA connection on 5G SBS using 1x1
833   * @PM_STA_STA_SBS_5_2x2: STA & STA connection on 5G SBS using 2x2
834   * @PM_STA_NAN_DISC_SCC_24_1x1: NAN & STA connection on SCC using 1x1 on 2.4 GHz
835   * @PM_STA_NAN_DISC_SCC_24_2x2: NAN & STA connection on SCC using 2x2 on 2.4 GHz
836   * @PM_STA_NAN_DISC_MCC_24_1x1: NAN & STA connection on MCC using 1x1 on 2.4 GHz
837   * @PM_STA_NAN_DISC_MCC_24_2x2: NAN & STA connection on MCC using 2x2 on 2.4 GHz
838   * @PM_STA_NAN_DISC_DBS_1x1: NAN & STA connection on DBS using 1x1
839   * @PM_STA_NAN_DISC_DBS_2x2: NAN & STA connection on DBS using 2x2
840   * @PM_NAN_DISC_NDI_SCC_24_1x1: NAN & NDI connection on SCC using 1x1 on 2.4 GHz
841   * @PM_NAN_DISC_NDI_SCC_24_2x2: NAN & NDI connection on SCC using 2x2 on 2.4 GHz
842   * @PM_NAN_DISC_NDI_MCC_24_1x1: NAN & NDI connection on MCC using 1x1 on 2.4 GHz
843   * @PM_NAN_DISC_NDI_MCC_24_2x2: NAN & NDI connection on MCC using 2x2 on 2.4 GHz
844   * @PM_NAN_DISC_NDI_DBS_1x1: NAN & NDI connection on DBS using 1x1
845   * @PM_NAN_DISC_NDI_DBS_2x2: NAN & NDI connection on DBS using 2x2
846   * @PM_STA_24_LL_LT_SAP_DBS_1x1: STA & LL_LT_SAP connection in DBS using 1x1
847   * @PM_STA_24_LL_LT_SAP_DBS_2x2: STA & LL_LT_SAP connection in DBS using 2x2
848   * @PM_STA_5_LL_LT_SAP_MCC_1x1: STA & LL_LT_SAP connection in MCC on 5 GHz
849   * using 1x1
850   * @PM_STA_5_LL_LT_SAP_MCC_2x2: STA & LL_LT_SAP connection in MCC on 5 GHz
851   * using 2x2
852   * @PM_STA_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1: STA on 5G low & LL_LT_SAP on 5G high
853   * connection in SBS using 1x1
854   * @PM_STA_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2: STA on 5G low & LL_LT_SAP on 5G high
855   * connection in SBS using 2x2
856   * @PM_STA_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1: STA on 5G high & LL_LT_SAP on 5G low
857   * connection in SBS using 1x1
858   * @PM_STA_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2: STA on 5G high & LL_LT_SAP on 5G low
859   * connection in SBS using 1x1
860   * @PM_SAP_24_LL_LT_SAP_DBS_1x1: SAP & LL_LT_SAP connection in DBS using 1x1
861   * @PM_SAP_24_LL_LT_SAP_DBS_2x2: SAP & LL_LT_SAP connection in DBS using 2x2
862   * @PM_SAP_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1: SAP on 5G low & LL_LT_SAP on 5G high
863   * connection in SBS using 1x1
864   * @PM_SAP_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2: SAP on 5G low & LL_LT_SAP on 5G high
865   * connection in SBS using 2x2
866   * @PM_SAP_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1: SAP on 5G high & LL_LT_SAP on 5G low
867   * connection in SBS using 1x1
868   * @PM_SAP_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2: SAP on 5G high & LL_LT_SAP on 5G low
869   * connection in SBS using 1x1
870   * @PM_P2P_GO_24_LL_LT_SAP_DBS_1x1: P2P GO & LL_LT_SAP connection in DBS
871   * using 1x1
872   * @PM_P2P_GO_24_LL_LT_SAP_DBS_2x2: P2P GO & LL_LT_SAP connection in DBS
873   * using 2x2
874   * @PM_P2P_GO_5_LL_LT_SAP_MCC_1x1: GO & LL_LT_SAP connection in MCC using 1x1
875   * @PM_P2P_GO_5_LL_LT_SAP_MCC_2x2: GO & LL_LT_SAP connection in MCC using 2x2
876   * @PM_P2P_GO_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1: GO on 5G low & LL_LT_SAP on 5G
877   * high connection in SBS using 1x1
878   * @PM_P2P_GO_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2: GO on 5G low & LL_LT_SAP on 5G
879   * high connection in SBS using 2x2
880   * @PM_P2P_GO_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1: GO on 5G high & LL_LT_SAP on 5G
881   * low connection in SBS using 1x1
882   * @PM_P2P_GO_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2: GO on 5G high & LL_LT_SAP on 5G
883   * low connection in SBS using 2x2
884   * @PM_P2P_CLI_24_LL_LT_SAP_DBS_1x1: CLI & LL_LT_SAP connection in DBS using 1x1
885   * @PM_P2P_CLI_24_LL_LT_SAP_DBS_2x2: CLI & LL_LT_SAP connection in DBS using 2x2
886   * @PM_P2P_CLI_5_LL_LT_SAP_MCC_1x1: CLI & LL_LT_SAP connection in MCC on 5 GHz
887   * using 1x1
888   * @PM_P2P_CLI_5_LL_LT_SAP_MCC_2x2: CLI & LL_LT_SAP connection in MCC on 5 GHz
889   * using 2x2
890   * @PM_P2P_CLI_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1: CLI on 5G low & LL_LT_SAP on 5G
891   * high connection in SBS using 1x1
892   * @PM_P2P_CLI_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2: CLI on 5G low & LL_LT_SAP on 5G
893   * high connection in SBS using 2x2
894   * @PM_P2P_CLI_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1: CLI on 5G high & LL_LT_SAP on 5G
895   * low connection in SBS using 1x1
896   * @PM_P2P_CLI_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2: CLI on 5G high & LL_LT_SAP on 5G
897   * low connection in SBS using 2x2
898   * @PM_MAX_TWO_CONNECTION_MODE: Max enumeration
899   *
900   * These are generic IDs that identify the various roles in the
901   * software system
902   */
903  enum policy_mgr_two_connection_mode {
904  	PM_STA_SAP_SCC_24_1x1 = 0,
905  	PM_STA_SAP_SCC_24_2x2,
906  	PM_STA_SAP_MCC_24_1x1,
907  	PM_STA_SAP_MCC_24_2x2,
908  	PM_STA_SAP_SCC_5_1x1,
909  	PM_STA_SAP_SCC_5_2x2,
910  	PM_STA_SAP_MCC_5_1x1,
911  	PM_STA_SAP_MCC_5_2x2,
912  	PM_STA_SAP_MCC_24_5_1x1,
913  	PM_STA_SAP_MCC_24_5_2x2,
914  	PM_STA_SAP_DBS_1x1,
915  	PM_STA_SAP_DBS_2x2,
916  	PM_STA_SAP_SBS_5_1x1,
917  	PM_STA_SAP_SBS_5_2x2 = PM_STA_SAP_SBS_5_1x1,
918  	PM_STA_P2P_GO_SCC_24_1x1,
919  	PM_STA_P2P_GO_SCC_24_2x2,
920  	PM_STA_P2P_GO_MCC_24_1x1,
921  	PM_STA_P2P_GO_MCC_24_2x2,
922  	PM_STA_P2P_GO_SCC_5_1x1,
923  	PM_STA_P2P_GO_SCC_5_2x2,
924  	PM_STA_P2P_GO_MCC_5_1x1,
925  	PM_STA_P2P_GO_MCC_5_2x2,
926  	PM_STA_P2P_GO_MCC_24_5_1x1,
927  	PM_STA_P2P_GO_MCC_24_5_2x2,
928  	PM_STA_P2P_GO_DBS_1x1,
929  	PM_STA_P2P_GO_DBS_2x2,
930  	PM_STA_P2P_GO_SBS_5_1x1,
931  	PM_STA_P2P_GO_SBS_5_2x2 = PM_STA_P2P_GO_SBS_5_1x1,
932  	PM_STA_P2P_CLI_SCC_24_1x1,
933  	PM_STA_P2P_CLI_SCC_24_2x2,
934  	PM_STA_P2P_CLI_MCC_24_1x1,
935  	PM_STA_P2P_CLI_MCC_24_2x2,
936  	PM_STA_P2P_CLI_SCC_5_1x1,
937  	PM_STA_P2P_CLI_SCC_5_2x2,
938  	PM_STA_P2P_CLI_MCC_5_1x1,
939  	PM_STA_P2P_CLI_MCC_5_2x2,
940  	PM_STA_P2P_CLI_MCC_24_5_1x1,
941  	PM_STA_P2P_CLI_MCC_24_5_2x2,
942  	PM_STA_P2P_CLI_DBS_1x1,
943  	PM_STA_P2P_CLI_DBS_2x2,
944  	PM_STA_P2P_CLI_SBS_5_1x1,
945  	PM_STA_P2P_CLI_SBS_5_2x2 = PM_STA_P2P_CLI_SBS_5_1x1,
946  	PM_P2P_GO_P2P_CLI_SCC_24_1x1,
947  	PM_P2P_GO_P2P_CLI_SCC_24_2x2,
948  	PM_P2P_GO_P2P_CLI_MCC_24_1x1,
949  	PM_P2P_GO_P2P_CLI_MCC_24_2x2,
950  	PM_P2P_GO_P2P_CLI_SCC_5_1x1,
951  	PM_P2P_GO_P2P_CLI_SCC_5_2x2,
952  	PM_P2P_GO_P2P_CLI_MCC_5_1x1,
953  	PM_P2P_GO_P2P_CLI_MCC_5_2x2,
954  	PM_P2P_GO_P2P_CLI_MCC_24_5_1x1,
955  	PM_P2P_GO_P2P_CLI_MCC_24_5_2x2,
956  	PM_P2P_GO_P2P_CLI_DBS_1x1,
957  	PM_P2P_GO_P2P_CLI_DBS_2x2,
958  	PM_P2P_GO_P2P_CLI_SBS_5_1x1,
959  	PM_P2P_GO_P2P_CLI_SBS_5_2x2 = PM_P2P_GO_P2P_CLI_SBS_5_1x1,
960  	PM_P2P_GO_SAP_SCC_24_1x1,
961  	PM_P2P_GO_SAP_SCC_24_2x2,
962  	PM_P2P_GO_SAP_MCC_24_1x1,
963  	PM_P2P_GO_SAP_MCC_24_2x2,
964  	PM_P2P_GO_SAP_SCC_5_1x1,
965  	PM_P2P_GO_SAP_SCC_5_2x2,
966  	PM_P2P_GO_SAP_MCC_5_1x1,
967  	PM_P2P_GO_SAP_MCC_5_2x2,
968  	PM_P2P_GO_SAP_MCC_24_5_1x1,
969  	PM_P2P_GO_SAP_MCC_24_5_2x2,
970  	PM_P2P_GO_SAP_DBS_1x1,
971  	PM_P2P_GO_SAP_DBS_2x2,
972  	PM_P2P_GO_SAP_SBS_5_1x1,
973  	PM_P2P_GO_SAP_SBS_5_2x2 = PM_P2P_GO_SAP_SBS_5_1x1,
974  	PM_P2P_GO_P2P_GO_SCC_24_1x1,
975  	PM_P2P_GO_P2P_GO_SCC_24_2x2,
976  	PM_P2P_GO_P2P_GO_MCC_24_1x1,
977  	PM_P2P_GO_P2P_GO_MCC_24_2x2,
978  	PM_P2P_GO_P2P_GO_SCC_5_1x1,
979  	PM_P2P_GO_P2P_GO_SCC_5_2x2,
980  	PM_P2P_GO_P2P_GO_MCC_5_1x1,
981  	PM_P2P_GO_P2P_GO_MCC_5_2x2,
982  	PM_P2P_GO_P2P_GO_MCC_24_5_1x1,
983  	PM_P2P_GO_P2P_GO_MCC_24_5_2x2,
984  	PM_P2P_GO_P2P_GO_DBS_1x1,
985  	PM_P2P_GO_P2P_GO_DBS_2x2,
986  	PM_P2P_GO_P2P_GO_SBS_5_1x1,
987  	PM_P2P_GO_P2P_GO_SBS_5_2x2 = PM_P2P_GO_P2P_GO_SBS_5_1x1,
988  	PM_P2P_CLI_SAP_SCC_24_1x1,
989  	PM_P2P_CLI_SAP_SCC_24_2x2,
990  	PM_P2P_CLI_SAP_MCC_24_1x1,
991  	PM_P2P_CLI_SAP_MCC_24_2x2,
992  	PM_P2P_CLI_SAP_SCC_5_1x1,
993  	PM_P2P_CLI_SAP_SCC_5_2x2,
994  	PM_P2P_CLI_SAP_MCC_5_1x1,
995  	PM_P2P_CLI_SAP_MCC_5_2x2,
996  	PM_P2P_CLI_SAP_MCC_24_5_1x1,
997  	PM_P2P_CLI_SAP_MCC_24_5_2x2,
998  	PM_P2P_CLI_SAP_DBS_1x1,
999  	PM_P2P_CLI_SAP_DBS_2x2,
1000  	PM_P2P_CLI_SAP_SBS_5_1x1,
1001  	PM_P2P_CLI_SAP_SBS_5_2x2 = PM_P2P_CLI_SAP_SBS_5_1x1,
1002  	PM_P2P_CLI_P2P_CLI_SCC_24_1x1,
1003  	PM_P2P_CLI_P2P_CLI_SCC_24_2x2,
1004  	PM_P2P_CLI_P2P_CLI_MCC_24_1x1,
1005  	PM_P2P_CLI_P2P_CLI_MCC_24_2x2,
1006  	PM_P2P_CLI_P2P_CLI_SCC_5_1x1,
1007  	PM_P2P_CLI_P2P_CLI_SCC_5_2x2,
1008  	PM_P2P_CLI_P2P_CLI_MCC_5_1x1,
1009  	PM_P2P_CLI_P2P_CLI_MCC_5_2x2,
1010  	PM_P2P_CLI_P2P_CLI_MCC_24_5_1x1,
1011  	PM_P2P_CLI_P2P_CLI_MCC_24_5_2x2,
1012  	PM_P2P_CLI_P2P_CLI_DBS_1x1,
1013  	PM_P2P_CLI_P2P_CLI_DBS_2x2,
1014  	PM_P2P_CLI_P2P_CLI_SBS_5_1x1,
1015  	PM_P2P_CLI_P2P_CLI_SBS_5_2x2 = PM_P2P_CLI_P2P_CLI_SBS_5_1x1,
1016  	PM_SAP_SAP_SCC_24_1x1,
1017  	PM_SAP_SAP_SCC_24_2x2,
1018  	PM_SAP_SAP_MCC_24_1x1,
1019  	PM_SAP_SAP_MCC_24_2x2,
1020  	PM_SAP_SAP_SCC_5_1x1,
1021  	PM_SAP_SAP_SCC_5_2x2,
1022  	PM_SAP_SAP_MCC_5_1x1,
1023  	PM_SAP_SAP_MCC_5_2x2,
1024  	PM_SAP_SAP_MCC_24_5_1x1,
1025  	PM_SAP_SAP_MCC_24_5_2x2,
1026  	PM_SAP_SAP_DBS_1x1,
1027  	PM_SAP_SAP_DBS_2x2,
1028  	PM_SAP_SAP_SBS_5_1x1,
1029  	PM_SAP_SAP_SBS_5_2x2 = PM_SAP_SAP_SBS_5_1x1,
1030  	PM_SAP_NAN_DISC_SCC_24_1x1,
1031  	PM_SAP_NAN_DISC_SCC_24_2x2,
1032  	PM_SAP_NAN_DISC_MCC_24_1x1,
1033  	PM_SAP_NAN_DISC_MCC_24_2x2,
1034  	PM_SAP_NAN_DISC_DBS_1x1,
1035  	PM_SAP_NAN_DISC_DBS_2x2,
1036  	PM_STA_STA_SCC_24_1x1,
1037  	PM_STA_STA_SCC_24_2x2,
1038  	PM_STA_STA_MCC_24_1x1,
1039  	PM_STA_STA_MCC_24_2x2,
1040  	PM_STA_STA_SCC_5_1x1,
1041  	PM_STA_STA_SCC_5_2x2,
1042  	PM_STA_STA_MCC_5_1x1,
1043  	PM_STA_STA_MCC_5_2x2,
1044  	PM_STA_STA_MCC_24_5_1x1,
1045  	PM_STA_STA_MCC_24_5_2x2,
1046  	PM_STA_STA_DBS_1x1,
1047  	PM_STA_STA_DBS_2x2,
1048  	PM_STA_STA_SBS_5_1x1,
1049  	PM_STA_STA_SBS_5_2x2 = PM_STA_STA_SBS_5_1x1,
1050  	PM_STA_NAN_DISC_SCC_24_1x1,
1051  	PM_STA_NAN_DISC_SCC_24_2x2,
1052  	PM_STA_NAN_DISC_MCC_24_1x1,
1053  	PM_STA_NAN_DISC_MCC_24_2x2,
1054  	PM_STA_NAN_DISC_DBS_1x1,
1055  	PM_STA_NAN_DISC_DBS_2x2,
1056  	PM_NAN_DISC_NDI_SCC_24_1x1,
1057  	PM_NAN_DISC_NDI_SCC_24_2x2,
1058  	PM_NAN_DISC_NDI_MCC_24_1x1,
1059  	PM_NAN_DISC_NDI_MCC_24_2x2,
1060  	PM_NAN_DISC_NDI_DBS_1x1,
1061  	PM_NAN_DISC_NDI_DBS_2x2,
1062  	PM_STA_24_LL_LT_SAP_DBS_1x1,
1063  	PM_STA_24_LL_LT_SAP_DBS_2x2 = PM_STA_24_LL_LT_SAP_DBS_1x1,
1064  	PM_STA_5_LL_LT_SAP_MCC_1x1,
1065  	PM_STA_5_LL_LT_SAP_MCC_2x2 = PM_STA_5_LL_LT_SAP_MCC_1x1,
1066  	PM_STA_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1067  	PM_STA_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2 =
1068  					PM_STA_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1069  	PM_STA_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1070  	PM_STA_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2 =
1071  					PM_STA_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1072  	PM_SAP_24_LL_LT_SAP_DBS_1x1,
1073  	PM_SAP_24_LL_LT_SAP_DBS_2x2 = PM_SAP_24_LL_LT_SAP_DBS_1x1,
1074  	PM_SAP_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1075  	PM_SAP_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2 =
1076  					PM_SAP_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1077  	PM_SAP_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1078  	PM_SAP_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2 =
1079  					PM_SAP_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1080  	PM_P2P_GO_24_LL_LT_SAP_DBS_1x1,
1081  	PM_P2P_GO_24_LL_LT_SAP_DBS_2x2 = PM_P2P_GO_24_LL_LT_SAP_DBS_1x1,
1082  	PM_P2P_GO_5_LL_LT_SAP_MCC_1x1,
1083  	PM_P2P_GO_5_LL_LT_SAP_MCC_2x2 = PM_P2P_GO_5_LL_LT_SAP_MCC_1x1,
1084  	PM_P2P_GO_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1085  	PM_P2P_GO_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2 =
1086  				PM_P2P_GO_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1087  	PM_P2P_GO_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1088  	PM_P2P_GO_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2 =
1089  				PM_P2P_GO_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1090  	PM_P2P_CLI_24_LL_LT_SAP_DBS_1x1,
1091  	PM_P2P_CLI_24_LL_LT_SAP_DBS_2x2 = PM_P2P_CLI_24_LL_LT_SAP_DBS_1x1,
1092  	PM_P2P_CLI_5_LL_LT_SAP_MCC_1x1,
1093  	PM_P2P_CLI_5_LL_LT_SAP_MCC_2x2 = PM_P2P_CLI_5_LL_LT_SAP_MCC_1x1,
1094  	PM_P2P_CLI_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1095  	PM_P2P_CLI_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2 =
1096  				PM_P2P_CLI_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1097  	PM_P2P_CLI_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1098  	PM_P2P_CLI_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2 =
1099  				PM_P2P_CLI_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1100  
1101  	PM_MAX_TWO_CONNECTION_MODE
1102  };
1103  
1104  #ifdef FEATURE_FOURTH_CONNECTION
1105  /**
1106   * enum policy_mgr_three_connection_mode - Combination of first three
1107   * connections type, concurrency state, band used.
1108   *
1109   * @PM_STA_SAP_SCC_24_SAP_5_DBS: STA & SAP connection on 2.4 GHZ, another
1110   * SAP on 5 GHZ
1111   * @PM_STA_SAP_SCC_5_SAP_24_DBS: STA & SAP connection on 5 GHZ,
1112   * another SAP on 2.4 GHZ
1113   * @PM_24_SCC_MCC_PLUS_5_DBS: ANY 2 link on 2.4 GHZ SCC/MCC mac and one link on
1114   * 5 GHZ doing DBS
1115   * @PM_STA_SAP_24_STA_5_DBS: STA & SAP connection on 2.4 GHZ SCC/MCC,
1116   * another STA on 5 GHZ
1117   * @PM_5_SCC_MCC_PLUS_24_DBS: ANY 2 link on 5 GHZ SCC/MCC mac and one link on
1118   * 2.4 GHZ doing DBS
1119   * @PM_STA_SAP_5_STA_24_DBS: STA & SAP connection on 5 GHZ SCC/MCC,
1120   * STA on 2.4 GHZ
1121   * @PM_STA_STA_5_SAP_24_DBS: STA & STA connection on 5 GHZ SCC/MCC,
1122   * SAP on 2.4 GHZ
1123   * @PM_NAN_DISC_SAP_SCC_24_NDI_5_DBS: NAN_DISC & SAP connection on 2.4 Ghz SCC,
1124   * NDI/NDP on 5 G
1125   * @PM_NAN_DISC_NDI_SCC_24_SAP_5_DBS: NAN_DISC & NDI/NDP connection on 2.4 Ghz
1126   * SCC, SAP on 5 G
1127   * @PM_SAP_NDI_SCC_5_NAN_DISC_24_DBS: SAP & NDI/NDP connection on 5 Ghz,
1128   * NAN_DISC on 24 Ghz
1129   * @PM_NAN_DISC_STA_24_NDI_5_DBS: STA and NAN Disc on 2.4Ghz and NDI on 5ghz DBS
1130   * @PM_NAN_DISC_NDI_24_STA_5_DBS: NDI and NAN Disc on 2.4Ghz and STA on 5ghz DBS
1131   * @PM_STA_NDI_5_NAN_DISC_24_DBS: STA, NDI on 5ghz and NAN Disc on 2.4Ghz DBS
1132   * @PM_STA_NDI_NAN_DISC_24_SMM: STA, NDI, NAN Disc all on 2.4ghz SMM
1133   * @PM_NAN_DISC_NDI_24_NDI_5_DBS: NDI and NAN Disc on 2.4Ghz and second NDI in
1134   * 5ghz DBS
1135   * @PM_NDI_NDI_5_NAN_DISC_24_DBS: Both NDI on 5ghz and NAN Disc on 2.4Ghz DBS
1136   * @PM_NDI_NDI_NAN_DISC_24_SMM: Both NDI, NAN Disc on 2.4ghz SMM
1137   * @PM_SAP_SAP_SCC_24_SAP_5_DBS: Both SAP on 2.4Ghz and another SAP on 5Ghz DBS
1138   * @PM_SAP_SAP_SCC_5_SAP_24_DBS: Both SAP on 5Ghz and another SAP on 2.4Ghz DBS
1139   * @PM_STA_STA_5_NAN_DISC_24_DBS: Both STA on 5Ghz and NAN Disc on 2.4Ghz DBS
1140   * @PM_NAN_DISC_24_STA_STA_5_DBS: NAN Disc on 2.4Ghz and both STA on 5Ghz DBS
1141   * @PM_STA_STA_24_NAN_DISC_24_SMM: Both STA on 2.4Ghz and NAN Disc on 2.4Ghz SMM
1142   * @PM_NAN_DISC_24_STA_STA_24_SMM: NAN Disc on 2.4Ghz and both STA on 2.4Ghz SMM
1143   * @PM_STA_24_STA_5_NAN_DISC_24_SMM: First STA on 2.4Ghz and second STA on 5Ghz
1144   * and NAN Disc on 2.4Ghz SMM
1145   * @PM_STA_24_STA_5_NAN_DISC_24_DBS: First STA on 2.4Ghz and second STA on 5Ghz
1146   * and NAN Disc on 2.4Ghz DBS
1147   * @PM_STA_5_STA_24_NAN_DISC_24_SMM: First STA on 5Ghz and second STA on 2.4Ghz
1148   * and NAN Disc on 2.4Ghz SMM
1149   * @PM_STA_5_STA_24_NAN_DISC_24_DBS: First STA on 5Ghz and second STA on 2.4Ghz
1150   * and NAN Disc on 2.4Ghz DBS
1151   * @PM_NAN_DISC_24_STA_5_STA_24_SMM: NAN Disc on 2.4Ghz and first STA on 5Ghz
1152   * and second STA on 2.4Ghz SMM
1153   * @PM_NAN_DISC_24_STA_5_STA_24_DBS: NAN Disc on 2.4Ghz and first STA on 5Ghz
1154   * and second STA on 2.4Ghz DBS
1155   * @PM_NAN_DISC_24_STA_24_STA_5_SMM: NAN Disc on 2.4Ghz and first STA on 2.4Ghz
1156   * and second STA on 5Ghz SMM
1157   * @PM_NAN_DISC_24_STA_24_STA_5_DBS: NAN Disc on 2.4Ghz and first STA on 2.4Ghz
1158   * and second STA on 5Ghz DBS
1159   * @PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS: ANY 2 link on 5 GHZ high mac
1160   * and one link on 5 GHZ low doing SBS
1161   * @PM_STA_24_SAP_5_HIGH_MCC_STA_5_LOW_SBS : First STA on 2.4 GHZ & SAP on high
1162   * 5 GHZ MCC on mac 0 and second STA on low 5 GHZ on mac1 doing SBS
1163   * @PM_STA_24_STA_5_HIGH_MCC_SAP_5_LOW_SBS : First STA on 2.4 GHZ & second STA
1164   * on high 5 GHZ MCC on mac 0 and SAP on high 5 GHZ on mac1 doing SBS
1165   * @PM_STA_SAP_5_HIGH_STA_5_LOW_SBS : First STA on high 5 GHZ & SAP on high
1166   * 5 GHZ SCC/MCC on mac0 and second STA on low 5 GHZ on mac1 doing SBS
1167   * @PM_STA_5_HIGH_SAP_24_MCC_STA_5_LOW_SBS : First STA on high 5 GHZ & SAP on
1168   * 2.4 GHZ MCC on mac0 and second STA on low 5 GHZ on mac1 doing SBS
1169   * @PM_STA_STA_5_HIGH_MCC_SAP_5_LOW_SBS : First STA on high 5 GHZ & Second STA
1170   * on high 5 GHZ MCC on mac0 and SAP on low 5 GHZ on mac1 doing SBS
1171   * @PM_STA_24_STA_5_MCC_SAP_5_HIGH_SBS: MLO STA 2+5/6 GHz, SAP on 5/6 GHz
1172   * high band, the current hw mode is SBS.
1173   * @PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS: Any 2 link on low 5 GHZ mac
1174   * and one link on high 5 GHZ freq doing SBS
1175   * @PM_STA_24_SAP_5_LOW_MCC_STA_5_HIGH_SBS : First STA on 2.4 GHZ & SAP on low
1176   * 5 GHZ MCC on mac 0 and second STA on high 5 GHZ on mac1 doing SBS
1177   * @PM_STA_24_STA_5_LOW_MCC_SAP_5_HIGH_SBS : First STA on 2.4 & second STA on
1178   * low 5G MCC on mac 0 and SAP on high 5g on mac1 doing SBS
1179   * @PM_STA_SAP_5_LOW_STA_5_HIGH_SBS : First STA on low 5 GHZ & SAP on low 5 GHZ
1180   * SCC/MCC on mac0 and second STA on high 5 GHZ on mac1 doing SBS
1181   * @PM_STA_5_LOW_SAP_24_MCC_STA_5_HIGH_SBS : First STA on low 5 GHZ & SAP on
1182   * 2.4 GHZ MCC on mac0 and second STA on high 5 GHZ on mac1 doing SBS
1183   * @PM_STA_STA_5_LOW_MCC_SAP_5_HIGH_SBS : First STA on high 5 GHZ & Second STA
1184   * on high 5 GHZ MCC on mac0 and SAP on low 5 GHZ on mac1 doing SBS
1185   * @PM_STA_24_STA_5_MCC_SAP_5_LOW_SBS: MLO STA 2+5/6 GHz, SAP on 5/6 GHz
1186   * low band, the current hw mode is SBS.
1187   * @PM_24_5_PLUS_5_LOW_N_HIGH_SHARE_SBS:
1188   * @PM_SAP_24_STA_5_STA_5_LOW_N_HIGH_SHARE_SBS: The 2.4 GHZ SAP creating MCC/SCC
1189   * with STA of low 5 GHZ or high 5 GHZ (dynamic SBS) on mac 0 and one STA on
1190   * high 5 GHZ or low 5 GHZ freq respectively on mac 1 doing SBS
1191   * @PM_STA_24_SAP_5_STA_5_LOW_N_HIGH_SHARE_SBS: The 2.4 GHZ STA creating MCC/SCC
1192   * with SAP of low 5 GHZ or high 5 GHZ (dynamic SBS) on mac 0 and one STA on
1193   * high 5 GHZ or low 5 GHZ freq respectively on mac 1 doing SBS
1194   * @PM_24_5_PLUS_5_LOW_OR_HIGH_SHARE_SBS: (not dynamic SBS) MLO STA 2+5/6 GHz,
1195   * SAP on 5/6 GHz, and target only support 2.4 GHz shared with 5 GHz low band
1196   * or 5 GHz high band but not both.
1197   * @PM_MAX_THREE_CONNECTION_MODE: Maximum enumeration
1198   */
1199  enum policy_mgr_three_connection_mode {
1200  	PM_STA_SAP_SCC_24_SAP_5_DBS,
1201  	PM_STA_SAP_SCC_5_SAP_24_DBS,
1202  	PM_24_SCC_MCC_PLUS_5_DBS,
1203  	PM_STA_SAP_24_STA_5_DBS = PM_24_SCC_MCC_PLUS_5_DBS,
1204  	PM_5_SCC_MCC_PLUS_24_DBS,
1205  	PM_STA_SAP_5_STA_24_DBS = PM_5_SCC_MCC_PLUS_24_DBS,
1206  	PM_STA_STA_5_SAP_24_DBS = PM_5_SCC_MCC_PLUS_24_DBS,
1207  	PM_NAN_DISC_SAP_SCC_24_NDI_5_DBS,
1208  	PM_NAN_DISC_NDI_SCC_24_SAP_5_DBS,
1209  	PM_SAP_NDI_SCC_5_NAN_DISC_24_DBS,
1210  	PM_NAN_DISC_STA_24_NDI_5_DBS,
1211  	PM_NAN_DISC_NDI_24_STA_5_DBS,
1212  	PM_STA_NDI_5_NAN_DISC_24_DBS,
1213  	PM_STA_NDI_NAN_DISC_24_SMM,
1214  	PM_NAN_DISC_NDI_24_NDI_5_DBS,
1215  	PM_NDI_NDI_5_NAN_DISC_24_DBS,
1216  	PM_NDI_NDI_NAN_DISC_24_SMM,
1217  	PM_SAP_SAP_SCC_24_SAP_5_DBS,
1218  	PM_SAP_SAP_SCC_5_SAP_24_DBS,
1219  	PM_STA_STA_5_NAN_DISC_24_DBS,
1220  	PM_NAN_DISC_24_STA_STA_5_DBS,
1221  	PM_STA_STA_24_NAN_DISC_24_SMM,
1222  	PM_NAN_DISC_24_STA_STA_24_SMM,
1223  	PM_STA_24_STA_5_NAN_DISC_24_SMM,
1224  	PM_STA_24_STA_5_NAN_DISC_24_DBS,
1225  	PM_STA_5_STA_24_NAN_DISC_24_SMM,
1226  	PM_STA_5_STA_24_NAN_DISC_24_DBS,
1227  	PM_NAN_DISC_24_STA_5_STA_24_SMM,
1228  	PM_NAN_DISC_24_STA_5_STA_24_DBS,
1229  	PM_NAN_DISC_24_STA_24_STA_5_SMM,
1230  	PM_NAN_DISC_24_STA_24_STA_5_DBS,
1231  	PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1232  	PM_STA_24_SAP_5_HIGH_MCC_STA_5_LOW_SBS =
1233  		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1234  	PM_STA_24_STA_5_HIGH_MCC_SAP_5_LOW_SBS =
1235  		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1236  	PM_STA_SAP_5_HIGH_STA_5_LOW_SBS =
1237  		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1238  	PM_STA_5_HIGH_SAP_24_MCC_STA_5_LOW_SBS =
1239  		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1240  	PM_STA_STA_5_HIGH_MCC_SAP_5_LOW_SBS =
1241  		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1242  	PM_STA_24_STA_5_MCC_SAP_5_HIGH_SBS =
1243  		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1244  	PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1245  	PM_STA_24_SAP_5_LOW_MCC_STA_5_HIGH_SBS =
1246  		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1247  	PM_STA_24_STA_5_LOW_MCC_SAP_5_HIGH_SBS =
1248  		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1249  	PM_STA_SAP_5_LOW_STA_5_HIGH_SBS =
1250  		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1251  	PM_STA_5_LOW_SAP_24_MCC_STA_5_HIGH_SBS =
1252  		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1253  	PM_STA_STA_5_LOW_MCC_SAP_5_HIGH_SBS =
1254  		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1255  	PM_STA_24_STA_5_MCC_SAP_5_LOW_SBS =
1256  		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1257  	PM_24_5_PLUS_5_LOW_N_HIGH_SHARE_SBS,
1258  	PM_SAP_24_STA_5_STA_5_LOW_N_HIGH_SHARE_SBS =
1259  			PM_24_5_PLUS_5_LOW_N_HIGH_SHARE_SBS,
1260  	PM_STA_24_SAP_5_STA_5_LOW_N_HIGH_SHARE_SBS =
1261  			PM_24_5_PLUS_5_LOW_N_HIGH_SHARE_SBS,
1262  	PM_24_5_PLUS_5_LOW_OR_HIGH_SHARE_SBS,
1263  
1264  	PM_MAX_THREE_CONNECTION_MODE,
1265  };
1266  #endif
1267  
1268  /**
1269   * enum policy_mgr_conc_next_action - actions to be taken on old
1270   * connections.
1271   *
1272   * @PM_NOP: No action
1273   * @PM_DBS: switch to DBS mode
1274   * @PM_DBS_DOWNGRADE: switch to DBS mode & downgrade to 1x1
1275   * @PM_DBS_UPGRADE: switch to DBS mode & upgrade to 2x2
1276   * @PM_SINGLE_MAC: switch to MCC/SCC mode
1277   * @PM_SINGLE_MAC_UPGRADE: switch to MCC/SCC mode & upgrade to 2x2
1278   * @PM_SBS: switch to SBS mode
1279   * @PM_SBS_DOWNGRADE: switch to SBS mode & downgrade to 1x1
1280   * @PM_DOWNGRADE: downgrade to 1x1
1281   * @PM_UPGRADE: upgrade to 2x2
1282   * @PM_DBS1: switch to DBS 1
1283   * @PM_DBS1_DOWNGRADE: downgrade 2G beaconing entity to 1x1 and switch to DBS1.
1284   * @PM_DBS2: switch to DBS 2
1285   * @PM_DBS2_DOWNGRADE: downgrade 5G beaconing entity to 1x1 and switch to DBS2.
1286   * @PM_UPGRADE_5G: upgrade 5g beaconing entity to 2x2.
1287   * @PM_UPGRADE_2G: upgrade 2g beaconing entity to 2x2.
1288   * @PM_DOWNGRADE_BW: Downgrade SAP bandwidth.
1289   * @PM_UPGRADE_BW: Upgrade SAP bandwidth.
1290   * @PM_MAX_CONC_NEXT_ACTION: Max place holder
1291   *
1292   * These are generic IDs that identify the various roles
1293   * in the software system
1294   */
1295  enum policy_mgr_conc_next_action {
1296  	PM_NOP = 0,
1297  	PM_DBS,
1298  	PM_DBS_DOWNGRADE,
1299  	PM_DBS_UPGRADE,
1300  	PM_SINGLE_MAC,
1301  	PM_SINGLE_MAC_UPGRADE,
1302  	PM_SBS,
1303  	PM_SBS_DOWNGRADE,
1304  	PM_DOWNGRADE,
1305  	PM_UPGRADE,
1306  	PM_DBS1,
1307  	PM_DBS1_DOWNGRADE,
1308  	PM_DBS2,
1309  	PM_DBS2_DOWNGRADE,
1310  	PM_UPGRADE_5G,
1311  	PM_UPGRADE_2G,
1312  	PM_DOWNGRADE_BW,
1313  	PM_UPGRADE_BW,
1314  
1315  	PM_MAX_CONC_NEXT_ACTION
1316  };
1317  
1318  /**
1319   * enum policy_mgr_band - wifi band.
1320   *
1321   * @POLICY_MGR_BAND_24: 2.4 Ghz band
1322   * @POLICY_MGR_BAND_5: 5 Ghz band
1323   * @POLICY_MGR_ANY: to specify all band
1324   * @POLICY_MGR_MAX_BAND: Max place holder
1325   *
1326   * These are generic IDs that identify the various roles
1327   * in the software system
1328   */
1329  enum policy_mgr_band {
1330  	POLICY_MGR_BAND_24 = 0,
1331  	POLICY_MGR_BAND_5,
1332  	POLICY_MGR_ANY,
1333  	POLICY_MGR_MAX_BAND = POLICY_MGR_ANY,
1334  };
1335  
1336  /**
1337   * enum policy_mgr_conn_update_reason: Reason for conc connection update
1338   * @POLICY_MGR_UPDATE_REASON_TIMER_START: This is to decide whether to start the
1339   *                                        timer or not
1340   * @POLICY_MGR_UPDATE_REASON_SET_OPER_CHAN: Set probable operating channel
1341   * @POLICY_MGR_UPDATE_REASON_START_AP: Start AP
1342   * @POLICY_MGR_UPDATE_REASON_NORMAL_STA: Connection to Normal STA
1343   * @POLICY_MGR_UPDATE_REASON_OPPORTUNISTIC: Opportunistic HW mode update
1344   * @POLICY_MGR_UPDATE_REASON_NSS_UPDATE: NSS update
1345   * @POLICY_MGR_UPDATE_REASON_AFTER_CHANNEL_SWITCH: After Channel switch
1346   * @POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH_STA: Before Channel switch for STA
1347   * @POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH_SAP: Before Channel switch for SAP
1348   * @POLICY_MGR_UPDATE_REASON_PRE_CAC: Pre-CAC
1349   * @POLICY_MGR_UPDATE_REASON_PRI_VDEV_CHANGE: In Dual DBS HW, if the vdev based
1350   *        2x2 preference enabled, the vdev down may cause prioritized active
1351   *        vdev change, then DBS hw mode may needs to change from one DBS mode
1352   *        to the other DBS mode. This reason code indicates such condition.
1353   * @POLICY_MGR_UPDATE_REASON_NAN_DISCOVERY: NAN Discovery related
1354   * @POLICY_MGR_UPDATE_REASON_NDP_UPDATE: NAN Datapath related update
1355   * @POLICY_MGR_UPDATE_REASON_LFR2_ROAM: LFR2 Roaming
1356   * @POLICY_MGR_UPDATE_REASON_STA_CONNECT: STA/CLI connection to peer
1357   * @POLICY_MGR_UPDATE_REASON_LFR3_ROAM: LFR3 Roaming
1358   * @POLICY_MGR_UPDATE_REASON_MAX: Reason code to indicate that it's not a
1359   * valid operation, should always be maintained at the end of enum.
1360   */
1361  enum policy_mgr_conn_update_reason {
1362  	POLICY_MGR_UPDATE_REASON_TIMER_START,
1363  	POLICY_MGR_UPDATE_REASON_SET_OPER_CHAN,
1364  	POLICY_MGR_UPDATE_REASON_START_AP,
1365  	POLICY_MGR_UPDATE_REASON_NORMAL_STA,
1366  	POLICY_MGR_UPDATE_REASON_OPPORTUNISTIC,
1367  	POLICY_MGR_UPDATE_REASON_NSS_UPDATE,
1368  	POLICY_MGR_UPDATE_REASON_AFTER_CHANNEL_SWITCH,
1369  	POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH_STA,
1370  	POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH_SAP,
1371  	POLICY_MGR_UPDATE_REASON_PRE_CAC,
1372  	POLICY_MGR_UPDATE_REASON_PRI_VDEV_CHANGE,
1373  	POLICY_MGR_UPDATE_REASON_NAN_DISCOVERY,
1374  	POLICY_MGR_UPDATE_REASON_NDP_UPDATE,
1375  	POLICY_MGR_UPDATE_REASON_LFR2_ROAM,
1376  	POLICY_MGR_UPDATE_REASON_STA_CONNECT,
1377  	POLICY_MGR_UPDATE_REASON_LFR3_ROAM,
1378  	POLICY_MGR_UPDATE_REASON_MAX,
1379  };
1380  
1381  /**
1382   * enum hw_mode_bandwidth - bandwidth of wifi channel.
1383   * @HW_MODE_BW_NONE: no bandwidth configured
1384   * @HW_MODE_5_MHZ: 5 Mhz bandwidth
1385   * @HW_MODE_10_MHZ: 10 Mhz bandwidth
1386   * @HW_MODE_20_MHZ: 20 Mhz bandwidth
1387   * @HW_MODE_40_MHZ: 40 Mhz bandwidth
1388   * @HW_MODE_80_MHZ: 80 Mhz bandwidth
1389   * @HW_MODE_80_PLUS_80_MHZ: 80 Mhz plus 80 Mhz bandwidth
1390   * @HW_MODE_160_MHZ: 160 Mhz bandwidth
1391   * @HW_MODE_320_MHZ: 320 Mhz bandwidth
1392   * @HW_MODE_MAX_BANDWIDTH: Max place holder
1393   *
1394   * These are generic IDs that identify the various roles
1395   * in the software system
1396   */
1397  enum hw_mode_bandwidth {
1398  	HW_MODE_BW_NONE,
1399  	HW_MODE_5_MHZ,
1400  	HW_MODE_10_MHZ,
1401  	HW_MODE_20_MHZ,
1402  	HW_MODE_40_MHZ,
1403  	HW_MODE_80_MHZ,
1404  	HW_MODE_80_PLUS_80_MHZ,
1405  	HW_MODE_160_MHZ,
1406  	HW_MODE_320_MHZ,
1407  	HW_MODE_MAX_BANDWIDTH
1408  };
1409  
1410  /**
1411   * enum set_hw_mode_status - Status of set HW mode command
1412   * @SET_HW_MODE_STATUS_OK: command successful
1413   * @SET_HW_MODE_STATUS_EINVAL: Requested invalid hw_mode
1414   * @SET_HW_MODE_STATUS_ECANCELED: HW mode change cancelled
1415   * @SET_HW_MODE_STATUS_ENOTSUP: HW mode not supported
1416   * @SET_HW_MODE_STATUS_EHARDWARE: HW mode change prevented by hardware
1417   * @SET_HW_MODE_STATUS_EPENDING: HW mode change is pending
1418   * @SET_HW_MODE_STATUS_ECOEX: HW mode change conflict with Coex
1419   * @SET_HW_MODE_STATUS_ALREADY: Requested hw mode is already applied to FW.
1420   */
1421  enum set_hw_mode_status {
1422  	SET_HW_MODE_STATUS_OK,
1423  	SET_HW_MODE_STATUS_EINVAL,
1424  	SET_HW_MODE_STATUS_ECANCELED,
1425  	SET_HW_MODE_STATUS_ENOTSUP,
1426  	SET_HW_MODE_STATUS_EHARDWARE,
1427  	SET_HW_MODE_STATUS_EPENDING,
1428  	SET_HW_MODE_STATUS_ECOEX,
1429  	SET_HW_MODE_STATUS_ALREADY,
1430  };
1431  
1432  typedef void (*dual_mac_cb)(enum set_hw_mode_status status,
1433  		uint32_t scan_config,
1434  		uint32_t fw_mode_config);
1435  /**
1436   * enum policy_mgr_hw_mode_change - identify the HW mode switching to.
1437   *
1438   * @POLICY_MGR_HW_MODE_NOT_IN_PROGRESS: HW mode change not in progress
1439   * @POLICY_MGR_SMM_IN_PROGRESS: switching to SMM mode
1440   * @POLICY_MGR_DBS_IN_PROGRESS: switching to DBS mode
1441   * @POLICY_MGR_SBS_IN_PROGRESS: switching to SBS mode
1442   *
1443   * These are generic IDs that identify the various roles
1444   * in the software system
1445   */
1446  enum policy_mgr_hw_mode_change {
1447  	POLICY_MGR_HW_MODE_NOT_IN_PROGRESS = 0,
1448  	POLICY_MGR_SMM_IN_PROGRESS,
1449  	POLICY_MGR_DBS_IN_PROGRESS,
1450  	POLICY_MGR_SBS_IN_PROGRESS
1451  };
1452  
1453  /**
1454   * enum dbs_support - structure to define INI values and their meaning
1455   *
1456   * @ENABLE_DBS_CXN_AND_SCAN: Enable DBS support for connection and scan
1457   * @DISABLE_DBS_CXN_AND_SCAN: Disable DBS support for connection and scan
1458   * @DISABLE_DBS_CXN_AND_ENABLE_DBS_SCAN: disable dbs support for
1459   * connection but keep dbs support for scan
1460   * @DISABLE_DBS_CXN_AND_ENABLE_DBS_SCAN_WITH_ASYNC_SCAN_OFF: disable dbs support
1461   * for connection but keep dbs for scan but switch off the async scan
1462   * @ENABLE_DBS_CXN_AND_ENABLE_SCAN_WITH_ASYNC_SCAN_OFF: enable dbs support for
1463   * connection and scan but switch off the async scan
1464   * @ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN: Enable DBS support for connection and
1465   * disable DBS support for scan
1466   * @ENABLE_DBS_CXN_AND_DISABLE_SIMULTANEOUS_SCAN: Enable DBS
1467   * support for connection and disable simultaneous scan from
1468   * upper layer (DBS scan remains enabled in FW)
1469   */
1470  enum dbs_support {
1471  	ENABLE_DBS_CXN_AND_SCAN,
1472  	DISABLE_DBS_CXN_AND_SCAN,
1473  	DISABLE_DBS_CXN_AND_ENABLE_DBS_SCAN,
1474  	DISABLE_DBS_CXN_AND_ENABLE_DBS_SCAN_WITH_ASYNC_SCAN_OFF,
1475  	ENABLE_DBS_CXN_AND_ENABLE_SCAN_WITH_ASYNC_SCAN_OFF,
1476  	ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN,
1477  	ENABLE_DBS_CXN_AND_DISABLE_SIMULTANEOUS_SCAN,
1478  };
1479  
1480  /**
1481   * enum conn_6ghz_flag - structure to define connection 6ghz capable info
1482   * in policy mgr conn info struct
1483   *
1484   * @CONN_6GHZ_FLAG_VALID: The 6ghz flag is valid (has been initialized)
1485   * @CONN_6GHZ_FLAG_ACS_OR_USR_ALLOWED: AP is configured in 6ghz band capable
1486   *   by user:
1487   *   a. ACS channel range includes 6ghz.
1488   *   b. SAP is started in 6ghz fix channel.
1489   * @CONN_6GHZ_FLAG_SECURITY_ALLOWED: AP has security mode which is permitted in
1490   *   6ghz band.
1491   * @CONN_6GHZ_FLAG_NO_LEGACY_CLIENT: AP has no legacy client connected
1492   */
1493  enum conn_6ghz_flag {
1494  	CONN_6GHZ_FLAG_VALID = 0x0001,
1495  	CONN_6GHZ_FLAG_ACS_OR_USR_ALLOWED = 0x0002,
1496  	CONN_6GHZ_FLAG_SECURITY_ALLOWED = 0x0004,
1497  	CONN_6GHZ_FLAG_NO_LEGACY_CLIENT = 0x0008,
1498  };
1499  
1500  #ifdef WLAN_FEATURE_AFC_DCS_SKIP_ACS_RANGE
1501  /* To support DCS to 6 Ghz channel when AFC response receive */
1502  #define CONN_6GHZ_CAPABLE (CONN_6GHZ_FLAG_VALID | \
1503  			     CONN_6GHZ_FLAG_SECURITY_ALLOWED | \
1504  			     CONN_6GHZ_FLAG_NO_LEGACY_CLIENT)
1505  #else
1506  #define CONN_6GHZ_CAPABLE (CONN_6GHZ_FLAG_VALID | \
1507  			     CONN_6GHZ_FLAG_ACS_OR_USR_ALLOWED | \
1508  			     CONN_6GHZ_FLAG_SECURITY_ALLOWED | \
1509  			     CONN_6GHZ_FLAG_NO_LEGACY_CLIENT)
1510  #endif
1511  
1512  /**
1513   * struct policy_mgr_conc_connection_info - information of all existing
1514   * connections in the wlan system
1515   *
1516   * @mode: connection type
1517   * @freq: Channel frequency
1518   * @bw: channel bandwidth used for the connection
1519   * @mac: The HW mac it is running
1520   * @chain_mask: The original capability advertised by HW
1521   * @original_nss: nss negotiated at connection time
1522   * @vdev_id: vdev id of the connection
1523   * @in_use: if the table entry is active
1524   * @ch_flagext: Channel extension flags.
1525   * @conn_6ghz_flag: connection 6ghz capable flags
1526   */
1527  struct policy_mgr_conc_connection_info {
1528  	enum policy_mgr_con_mode mode;
1529  	uint32_t      freq;
1530  	enum hw_mode_bandwidth bw;
1531  	uint8_t       mac;
1532  	enum policy_mgr_chain_mode chain_mask;
1533  	uint32_t      original_nss;
1534  	uint32_t      vdev_id;
1535  	bool          in_use;
1536  	uint16_t      ch_flagext;
1537  	enum conn_6ghz_flag conn_6ghz_flag;
1538  };
1539  
1540  #ifdef WLAN_FEATURE_11BE_MLO
1541  /**
1542   * struct policy_mgr_disabled_ml_link_info - information of all existing
1543   * disabled ml link
1544   * @in_use: if the table entry is active
1545   * @mode: connection type
1546   * @freq: Channel frequency
1547   * @vdev_id: vdev id of the connection
1548   */
1549  struct policy_mgr_disabled_ml_link_info {
1550  	bool in_use;
1551  	enum policy_mgr_con_mode mode;
1552  	qdf_freq_t freq;
1553  	uint8_t vdev_id;
1554  };
1555  #endif
1556  
1557  /**
1558   * struct policy_mgr_hw_mode_params - HW mode params
1559   * @mac0_tx_ss: MAC0 Tx spatial stream
1560   * @mac0_rx_ss: MAC0 Rx spatial stream
1561   * @mac1_tx_ss: MAC1 Tx spatial stream
1562   * @mac1_rx_ss: MAC1 Rx spatial stream
1563   * @mac0_bw: MAC0 bandwidth
1564   * @mac1_bw: MAC1 bandwidth
1565   * @mac0_band_cap: mac0 band (5g/2g) capability
1566   * @dbs_cap: DBS capabality
1567   * @agile_dfs_cap: Agile DFS capabality
1568   * @sbs_cap: SBS capability
1569   * @emlsr_cap: eMLSR capability
1570   * @action_type: for dbs mode, the field indicates the "Action type" to be
1571   * used to switch to the mode. To help the hw mode validation.
1572   */
1573  struct policy_mgr_hw_mode_params {
1574  	uint8_t mac0_tx_ss;
1575  	uint8_t mac0_rx_ss;
1576  	uint8_t mac1_tx_ss;
1577  	uint8_t mac1_rx_ss;
1578  	uint8_t mac0_bw;
1579  	uint8_t mac1_bw;
1580  	uint8_t mac0_band_cap;
1581  	uint8_t dbs_cap;
1582  	uint8_t agile_dfs_cap;
1583  	uint8_t sbs_cap;
1584  	uint8_t emlsr_cap;
1585  	enum policy_mgr_conc_next_action action_type;
1586  };
1587  
1588  /**
1589   * struct policy_mgr_dual_mac_config - Dual MAC configuration
1590   * @scan_config: Scan configuration
1591   * @fw_mode_config: FW mode configuration
1592   * @set_dual_mac_cb: Callback function to be executed on response to the command
1593   */
1594  struct policy_mgr_dual_mac_config {
1595  	uint32_t scan_config;
1596  	uint32_t fw_mode_config;
1597  	dual_mac_cb set_dual_mac_cb;
1598  };
1599  
1600  /**
1601   * struct policy_mgr_hw_mode - Format of set HW mode
1602   * @hw_mode_index: Index of HW mode to be set
1603   * @set_hw_mode_cb: HDD set HW mode callback
1604   * @reason: Reason for HW mode change
1605   * @session_id: Session id
1606   * @next_action: next action to happen at policy mgr
1607   * @action: current hw change action to be done
1608   * @context: psoc context
1609   * @request_id: Request id provided by the requester, can be used while
1610   * calling callback to the requester
1611   */
1612  struct policy_mgr_hw_mode {
1613  	uint32_t hw_mode_index;
1614  	void *set_hw_mode_cb;
1615  	enum policy_mgr_conn_update_reason reason;
1616  	uint32_t session_id;
1617  	uint8_t next_action;
1618  	enum policy_mgr_conc_next_action action;
1619  	struct wlan_objmgr_psoc *context;
1620  	uint32_t request_id;
1621  };
1622  
1623  /**
1624   * struct policy_mgr_pcl_list - Format of PCL
1625   * @pcl_list: List of preferred channels
1626   * @weight_list: Weights of the PCL
1627   * @pcl_len: Number of channels in the PCL
1628   */
1629  struct policy_mgr_pcl_list {
1630  	uint32_t pcl_list[NUM_CHANNELS];
1631  	uint8_t weight_list[NUM_CHANNELS];
1632  	uint32_t pcl_len;
1633  };
1634  
1635  /**
1636   * struct policy_mgr_pcl_chan_weights - Params to get the valid weighed list
1637   * @pcl_list: Preferred channel list already sorted in the order of preference
1638   * @pcl_len: Length of the PCL
1639   * @saved_chan_list: Valid channel list updated as part of
1640   * WMA_UPDATE_CHAN_LIST_REQ
1641   * @saved_num_chan: Length of the valid channel list
1642   * @weighed_valid_list: Weights of the valid channel list. This will have one
1643   * to one mapping with valid_chan_list. FW expects channel order and size to be
1644   * as per the list provided in WMI_SCAN_CHAN_LIST_CMDID.
1645   * @weight_list: Weights assigned by policy manager
1646   */
1647  struct policy_mgr_pcl_chan_weights {
1648  	uint32_t pcl_list[NUM_CHANNELS];
1649  	uint32_t pcl_len;
1650  	uint32_t saved_chan_list[NUM_CHANNELS];
1651  	uint32_t saved_num_chan;
1652  	uint8_t weighed_valid_list[NUM_CHANNELS];
1653  	uint8_t weight_list[NUM_CHANNELS];
1654  };
1655  
1656  /**
1657   * struct policy_mgr_vdev_entry_info - vdev related param to be
1658   * used by policy manager
1659   * @type: type
1660   * @sub_type: sub type
1661   * @mhz: channel frequency in MHz
1662   * @chan_width: channel bandwidth
1663   * @mac_id: the mac on which vdev is on
1664   * @ch_flagext: Channel extension flags.
1665   */
1666  struct policy_mgr_vdev_entry_info {
1667  	uint32_t type;
1668  	uint32_t sub_type;
1669  	uint32_t mhz;
1670  	uint32_t chan_width;
1671  	uint32_t mac_id;
1672  	uint16_t ch_flagext;
1673  };
1674  
1675  /**
1676   * struct policy_mgr_freq_range - hw mode freq range for the pdev
1677   * @low_2ghz_freq: lower 2.4GHz channels
1678   * @high_2ghz_freq: higher 2.4 GHz channels
1679   * @low_5ghz_freq: lower 5 GHz channels
1680   * @high_5ghz_freq: higher 5 GHz channels
1681   */
1682  struct policy_mgr_freq_range {
1683  	qdf_freq_t low_2ghz_freq;
1684  	qdf_freq_t high_2ghz_freq;
1685  	qdf_freq_t low_5ghz_freq;
1686  	qdf_freq_t high_5ghz_freq;
1687  };
1688  
1689  /**
1690   * enum policy_mgr_mode - enum for host mode
1691   * @MODE_SMM:               Single mac mode
1692   * @MODE_DBS:               DBS mode
1693   * @MODE_SBS:               SBS mode with either high share or low share
1694   * @MODE_SBS_UPPER_SHARE:   Higher 5Ghz shared with 2.4Ghz
1695   * @MODE_SBS_LOWER_SHARE:   LOWER 5Ghz shared with 2.4Ghz
1696   * @MODE_EMLSR:             eMLSR mode
1697   * @MODE_EMLSR_SINGLE:      eMLSR single mode
1698   * @MODE_EMLSR_SPLIT:       eMLSR split mode
1699   * @MODE_HW_MAX: MAX
1700   */
1701  enum policy_mgr_mode {
1702  	MODE_SMM,
1703  	MODE_DBS,
1704  	MODE_SBS,
1705  	MODE_SBS_UPPER_SHARE,
1706  	MODE_SBS_LOWER_SHARE,
1707  	MODE_EMLSR,
1708  	MODE_EMLSR_SINGLE,
1709  	MODE_EMLSR_SPLIT,
1710  	MODE_HW_MAX,
1711  };
1712  
1713  /**
1714   * struct dbs_hw_mode_info - WLAN_DBS_HW_MODES_TLV Format
1715   * @hw_mode_list: WLAN_DBS_HW_MODE_LIST entries
1716   * @sbs_lower_band_end_freq: value with which range will be divided
1717   * @freq_range_caps: Initial capability and range for different modes for both
1718   *                   pdev
1719   * @cur_mac_freq_range: Current freq range for both pdev, this can be used to
1720   *                      reject if 2 home channels on a MAC, depending on opmode
1721   *                      and current HW mode.
1722   */
1723  struct dbs_hw_mode_info {
1724  	uint64_t *hw_mode_list;
1725  	qdf_freq_t sbs_lower_band_end_freq;
1726  	struct policy_mgr_freq_range freq_range_caps[MODE_HW_MAX][MAX_MAC];
1727  	struct policy_mgr_freq_range cur_mac_freq_range[MAX_MAC];
1728  };
1729  
1730  /**
1731   * struct dual_mac_config - Dual MAC configurations
1732   * @prev_scan_config: Previous scan configuration
1733   * @prev_fw_mode_config: Previous FW mode configuration
1734   * @cur_scan_config: Current scan configuration
1735   * @cur_fw_mode_config: Current FW mode configuration
1736   * @req_scan_config: Requested scan configuration
1737   * @req_fw_mode_config: Requested FW mode configuration
1738   */
1739  struct dual_mac_config {
1740  	uint32_t prev_scan_config;
1741  	uint32_t prev_fw_mode_config;
1742  	uint32_t cur_scan_config;
1743  	uint32_t cur_fw_mode_config;
1744  	uint32_t req_scan_config;
1745  	uint32_t req_fw_mode_config;
1746  };
1747  
1748  /**
1749   * enum policy_mgr_pri_id - vdev type priority id
1750   * @PM_STA_PRI_ID: station vdev type priority id
1751   * @PM_SAP_PRI_ID: sap vdev type priority id
1752   * @PM_P2P_GO_PRI_ID: p2p go vdev type priority id
1753   * @PM_P2P_CLI_PRI_ID: p2p cli vdev type priority id
1754   * @PM_MAX_PRI_ID: vdev type priority id max value
1755   */
1756  enum policy_mgr_pri_id {
1757  	PM_STA_PRI_ID = 1,
1758  	PM_SAP_PRI_ID,
1759  	PM_P2P_GO_PRI_ID,
1760  	PM_P2P_CLI_PRI_ID,
1761  	PM_MAX_PRI_ID = 0xF,
1762  };
1763  
1764  #define PM_GET_BAND_PREFERRED(_policy_) ((_policy_) & 0x1)
1765  #define PM_GET_VDEV_PRIORITY_ENABLED(_policy_) (((_policy_) & 0x2) >> 1)
1766  
1767  /**
1768   * struct policy_mgr_user_cfg - Policy manager user config variables
1769   * @enable2x2: 2x2 chain mask user config
1770   * @sub_20_mhz_enabled: Is 5 or 10 Mhz enabled
1771   */
1772  struct policy_mgr_user_cfg {
1773  	bool enable2x2;
1774  	bool sub_20_mhz_enabled;
1775  };
1776  
1777  /**
1778   * struct dbs_bw - Max BW supported in DBS mode
1779   * @mac0_bw: BW of MAC0
1780   * @mac1_bw: BW of MAC1
1781   */
1782  struct dbs_bw {
1783  	enum hw_mode_bandwidth mac0_bw;
1784  	enum hw_mode_bandwidth mac1_bw;
1785  };
1786  
1787  /**
1788   * struct dbs_nss - Number of spatial streams in DBS mode
1789   * @mac0_ss: Number of spatial streams on MAC0
1790   * @mac1_ss: Number of spatial streams on MAC1
1791   * @single_mac0_band_cap: Mac0 band capability for single mac hw mode
1792   */
1793  struct dbs_nss {
1794  	enum hw_mode_ss_config mac0_ss;
1795  	enum hw_mode_ss_config mac1_ss;
1796  	uint32_t single_mac0_band_cap;
1797  };
1798  
1799  /*
1800   * Max radio combination numbers
1801   */
1802  #define MAX_RADIO_COMBINATION 16
1803  
1804  /**
1805   * struct radio_combination - Radio combination
1806   * @hw_mode: hw mode type
1807   * @band_mask: band support type for each mac
1808   * @antenna: antenna support for each mac
1809   */
1810  struct radio_combination {
1811  	enum policy_mgr_mode hw_mode;
1812  	uint8_t band_mask[MAX_MAC];
1813  	uint8_t antenna[MAX_MAC];
1814  };
1815  
1816  /**
1817   * struct connection_info - connection information
1818   * @mac_id: The HW mac it is running
1819   * @vdev_id: vdev id
1820   * @channel: channel of the connection
1821   * @ch_freq: channel freq in Mhz
1822   */
1823  struct connection_info {
1824  	uint8_t mac_id;
1825  	uint8_t vdev_id;
1826  	uint8_t channel;
1827  	uint32_t ch_freq;
1828  };
1829  
1830  /**
1831   * struct go_plus_go_force_scc - structure to hold p2p go
1832   * params for forcescc restart
1833   *
1834   * @vdev_id: vdev id of first p2p go which needs to do csa
1835   * @ch_freq: ch freq of curr p2p go
1836   * @ch_width: ch width of curr p2p go
1837   */
1838  struct go_plus_go_force_scc {
1839  	uint8_t vdev_id;
1840  	uint32_t ch_freq;
1841  	uint32_t ch_width;
1842  };
1843  
1844  /**
1845   * struct sap_plus_go_force_scc - structure to hold
1846   * params for forcescc restart in sap plus go
1847   *
1848   * @reason: channel change reason code
1849   * @initiator_vdev_id: the first interface ID to trigger CSA
1850   * @responder_vdev_id: the second interface ID to follow CSA
1851   */
1852  struct sap_plus_go_force_scc {
1853  	enum sap_csa_reason_code reason;
1854  	uint8_t initiator_vdev_id;
1855  	uint8_t responder_vdev_id;
1856  };
1857  
1858  /**
1859   * struct sta_ap_intf_check_work_ctx - sta_ap_intf_check_work
1860   * related info
1861   * @psoc: pointer to PSOC object information
1862   * @go_plus_go_force_scc: structure to hold params of
1863   *			  curr and first p2p go ctx
1864   * @sap_plus_go_force_scc: sap p2p force SCC ctx
1865   * @nan_force_scc_in_progress: NAN force scc in progress
1866   */
1867  struct sta_ap_intf_check_work_ctx {
1868  	struct wlan_objmgr_psoc *psoc;
1869  	struct go_plus_go_force_scc go_plus_go_force_scc;
1870  	struct sap_plus_go_force_scc sap_plus_go_force_scc;
1871  	uint8_t nan_force_scc_in_progress;
1872  };
1873  
1874  /**
1875   * union conc_ext_flag - extended flags for concurrency check
1876   *
1877   * @mlo: the new connection is MLO
1878   * @mlo_link_assoc_connected: the new connection is secondary MLO link and
1879   *  the corresponding assoc link is connected
1880   * @value: uint32 value for extended flags
1881   */
1882  union conc_ext_flag {
1883  	struct {
1884  		uint32_t mlo: 1;
1885  		uint32_t mlo_link_assoc_connected: 1;
1886  	};
1887  
1888  	uint32_t value;
1889  };
1890  
1891  /**
1892   * enum indoor_conc_update_type - Indoor concurrency update type
1893   * @CONNECT: On a new STA connection
1894   * @DISCONNECT_WITHOUT_CONCURRENCY: On a STA disconnection with no active
1895   * sessions on the same frequency
1896   * @DISCONNECT_WITH_CONCURRENCY: On a STA disconnection with an active
1897   * session on the same frequency
1898   * @SWITCH_WITH_CONCURRENCY: On a STA roam or CSA to a different channel
1899   * with a concurrent SAP on previous frequency
1900   * @SWITCH_WITHOUT_CONCURRENCY: On a STA roam or CSA to a different channel
1901   * without any concurrent SAP on previous frequency
1902   */
1903  enum indoor_conc_update_type {
1904  	CONNECT,
1905  	DISCONNECT_WITHOUT_CONCURRENCY,
1906  	DISCONNECT_WITH_CONCURRENCY,
1907  	SWITCH_WITHOUT_CONCURRENCY,
1908  	SWITCH_WITH_CONCURRENCY,
1909  };
1910  
1911  #endif /* __WLAN_POLICY_MGR_PUBLIC_STRUCT_H */
1912