qcacld-3.0: Introduce ini for roam_triggers including sta kickout trigger
Introduce ini for roaming_triggers to enable/disable specific roaming triggers. This will be the master ini to control roaming triggers. If this ini is set to zero, roaming will not be enabled on the sta interface unless its enabled via vendor command. A new roaming trigger - Sta kickout roaming is introduced in firmware, include this bit support also in the ini. The value of this ini will be sent over the wmi command WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID during RSO start. Reset this value to 0 during RSO stop if RSO stop is due to disconnect or roam synch failure. Change-Id: I02f207cdde9d8fb68cd91fab07572baa9e7ac50d CRs-Fixed: 2631712
此提交包含在:
@@ -2340,6 +2340,47 @@
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Band on which idle roam needs to be enabled")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* roam_triggers - Bitmap of roaming triggers. Setting this to
|
||||
* zero will disable roaming altogether for the STA interface.
|
||||
* @Min: 0
|
||||
* @Max: 0xFFFFFFFF
|
||||
* @Default: 0xFFFF
|
||||
*
|
||||
* ROAM_TRIGGER_REASON_PER BIT 1
|
||||
* ROAM_TRIGGER_REASON_BMISS BIT 2
|
||||
* ROAM_TRIGGER_REASON_LOW_RSSI BIT 3
|
||||
* ROAM_TRIGGER_REASON_HIGH_RSSI BIT 4
|
||||
* ROAM_TRIGGER_REASON_PERIODIC BIT 5
|
||||
* ROAM_TRIGGER_REASON_MAWC BIT 6
|
||||
* ROAM_TRIGGER_REASON_DENSE BIT 7
|
||||
* ROAM_TRIGGER_REASON_BACKGROUND BIT 8
|
||||
* ROAM_TRIGGER_REASON_FORCED BIT 9
|
||||
* ROAM_TRIGGER_REASON_BTM BIT 10
|
||||
* ROAM_TRIGGER_REASON_UNIT_TEST BIT 11
|
||||
* ROAM_TRIGGER_REASON_BSS_LOAD BIT 12
|
||||
* ROAM_TRIGGER_REASON_DEAUTH BIT 13
|
||||
* ROAM_TRIGGER_REASON_IDLE BIT 14
|
||||
* ROAM_TRIGGER_REASON_STA_KICKOUT BIT 15
|
||||
* ROAM_TRIGGER_REASON_MAX BIT 16
|
||||
*
|
||||
* Related: none
|
||||
*
|
||||
* Supported Feature: Roaming
|
||||
*
|
||||
* Usage: Internal
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_ROAM_TRIGGER_BITMAP CFG_INI_UINT( \
|
||||
"roam_triggers", \
|
||||
0, \
|
||||
0xFFFFFFFF, \
|
||||
0xFFFF, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Bitmap of roaming triggers")
|
||||
|
||||
#define ROAM_OFFLOAD_ALL \
|
||||
CFG(CFG_LFR3_ROAMING_OFFLOAD) \
|
||||
CFG(CFG_LFR_ENABLE_DISCONNECT_ROAM) \
|
||||
@@ -2349,6 +2390,7 @@
|
||||
CFG(CFG_LFR_IDLE_ROAM_PACKET_COUNT) \
|
||||
CFG(CFG_LFR_IDLE_ROAM_MIN_RSSI) \
|
||||
CFG(CFG_LFR_IDLE_ROAM_BAND) \
|
||||
CFG(CFG_ROAM_TRIGGER_BITMAP) \
|
||||
|
||||
#else
|
||||
#define ROAM_OFFLOAD_ALL
|
||||
|
@@ -999,7 +999,7 @@
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_ROAM_TRIGGER_BITMAP CFG_INI_UINT( \
|
||||
#define CFG_ROAM_SCORE_DELTA_TRIGGER_BITMAP CFG_INI_UINT( \
|
||||
"roam_score_delta_bitmap", \
|
||||
0, \
|
||||
0xFFFFFFFF, \
|
||||
@@ -1288,7 +1288,7 @@
|
||||
CFG(CFG_SCORING_OCE_WAN_SCORE_IDX_7_TO_4) \
|
||||
CFG(CFG_SCORING_OCE_WAN_SCORE_IDX_11_TO_8) \
|
||||
CFG(CFG_SCORING_OCE_WAN_SCORE_IDX_15_TO_12) \
|
||||
CFG(CFG_ROAM_TRIGGER_BITMAP) \
|
||||
CFG(CFG_ROAM_SCORE_DELTA_TRIGGER_BITMAP) \
|
||||
CFG(CFG_ROAM_SCORE_DELTA) \
|
||||
CFG(CFG_CAND_MIN_ROAM_SCORE_DELTA) \
|
||||
CFG(CFG_ENABLE_SCORING_FOR_ROAM) \
|
||||
|
@@ -2446,6 +2446,14 @@ wlan_mlme_get_roam_reason_vsie_status(struct wlan_objmgr_psoc *psoc,
|
||||
QDF_STATUS
|
||||
wlan_mlme_set_roam_reason_vsie_status(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t roam_reason_vsie_enabled);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_roaming_triggers - Get the roaming triggers bitmap
|
||||
* @psoc: Pointer to PSOC object
|
||||
*
|
||||
* Return: Roaming triggers value
|
||||
*/
|
||||
uint32_t wlan_mlme_get_roaming_triggers(struct wlan_objmgr_psoc *psoc);
|
||||
#else
|
||||
static inline QDF_STATUS
|
||||
wlan_mlme_get_roam_reason_vsie_status(struct wlan_objmgr_psoc *psoc,
|
||||
@@ -2460,6 +2468,12 @@ wlan_mlme_set_roam_reason_vsie_status(struct wlan_objmgr_psoc *psoc,
|
||||
{
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
static inline
|
||||
uint32_t wlan_mlme_get_roaming_triggers(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return 0xFFFF;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _WLAN_MLME_API_H_ */
|
||||
|
@@ -1438,6 +1438,7 @@ struct bss_load_trigger {
|
||||
* idle roam trigger.
|
||||
* @enable_roam_reason_vsie: Enable/disable incluison of roam reason
|
||||
* vsie in Re(assoc) frame
|
||||
* @roam_trigger_bitmap: Bitmap of roaming triggers.
|
||||
* @early_stop_scan_enable: Set early stop scan
|
||||
* @enable_5g_band_pref: Enable preference for 5G from INI
|
||||
* @ese_enabled: Enable ESE feature
|
||||
@@ -1541,6 +1542,7 @@ struct wlan_mlme_lfr_cfg {
|
||||
uint32_t idle_roam_band;
|
||||
int32_t idle_roam_min_rssi;
|
||||
bool enable_roam_reason_vsie;
|
||||
uint32_t roam_trigger_bitmap;
|
||||
#endif
|
||||
bool early_stop_scan_enable;
|
||||
bool enable_5g_band_pref;
|
||||
|
@@ -1047,6 +1047,19 @@ ucfg_mlme_get_roaming_offload(struct wlan_objmgr_psoc *psoc,
|
||||
QDF_STATUS
|
||||
ucfg_mlme_set_roaming_offload(struct wlan_objmgr_psoc *psoc,
|
||||
bool val);
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_roaming_triggers() - Get roaming triggers bitmap
|
||||
* value
|
||||
* @psoc: pointer to psoc object
|
||||
*
|
||||
* Return: Roaming triggers value
|
||||
*/
|
||||
static inline uint32_t
|
||||
ucfg_mlme_get_roaming_triggers(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return wlan_mlme_get_roaming_triggers(psoc);
|
||||
}
|
||||
#else
|
||||
static inline QDF_STATUS
|
||||
ucfg_mlme_get_roaming_offload(struct wlan_objmgr_psoc *psoc,
|
||||
@@ -1063,6 +1076,12 @@ ucfg_mlme_set_roaming_offload(struct wlan_objmgr_psoc *psoc,
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline uint32_t
|
||||
ucfg_mlme_get_roaming_triggers(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@@ -3853,4 +3853,15 @@ wlan_mlme_set_roam_reason_vsie_status(struct wlan_objmgr_psoc *psoc,
|
||||
mlme_obj->cfg.lfr.enable_roam_reason_vsie = roam_reason_vsie_enable;
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
uint32_t wlan_mlme_get_roaming_triggers(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
||||
|
||||
mlme_obj = mlme_get_psoc_ext_obj(psoc);
|
||||
if (!mlme_obj)
|
||||
return cfg_default(CFG_ROAM_TRIGGER_BITMAP);
|
||||
|
||||
return mlme_obj->cfg.lfr.roam_trigger_bitmap;
|
||||
}
|
||||
#endif
|
||||
|
新增問題並參考
封鎖使用者