Parcourir la source

qcacld-3.0: Apply mlme lfr configuraions

Since refined mlme lfr configures based on converged cfg component,
apply mlme lfr configurations, remove related legacy codes.

Change-Id: Iebda5bbb3c5c68b922b7f6ac1adaf25cccf903a6
CRs-Fixed: 2316494
Wu Gao il y a 6 ans
Parent
commit
ca416ff63a

+ 0 - 731
core/hdd/inc/wlan_hdd_cfg.h

@@ -889,114 +889,6 @@ enum hdd_dot11_mode {
 #define CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MAX       (0x7fffffff)
 #define CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_DEFAULT   (60000)
 
-/*
- * <ini>
- * gEnableEarlyStopScan - Set early stop scan
- * @Min: 0
- * @Max: 1
- * @Default: 1
- *
- * This ini is used to set early stop scan. Early stop
- * scan is a feature for roaming to stop the scans at
- * an early stage as soon as we find a better AP to roam.
- * This would make the roaming happen quickly.
- *
- * Related: None
- *
- * Supported Feature: LFR Scan
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EARLY_STOP_SCAN_ENABLE           "gEnableEarlyStopScan"
-#define CFG_EARLY_STOP_SCAN_ENABLE_MIN       (0)
-#define CFG_EARLY_STOP_SCAN_ENABLE_MAX       (1)
-#define CFG_EARLY_STOP_SCAN_ENABLE_DEFAULT   (1)
-
-/*
- * <ini>
- * gEarlyStopScanMinThreshold - Set early stop scan min
- * threshold
- * @Min: -80
- * @Max: -70
- * @Default: -73
- *
- * This ini is used to set the early stop scan minimum
- * threshold. Early stop scan minimum threshold is the
- * minimum threshold to be considered for stopping the
- * scan. The algorithm starts with a scan on the greedy
- * channel list with the maximum threshold and steps down
- * the threshold by 20% for each further channel. It can
- * step down on each channel but cannot go lower than the
- * minimum threshold.
- *
- * Related: None
- *
- * Supported Feature: Scan
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EARLY_STOP_SCAN_MIN_THRESHOLD           "gEarlyStopScanMinThreshold"
-#define CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MIN       (-80)
-#define CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MAX       (-70)
-#define CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_DEFAULT   (-73)
-
-/*
- * <ini>
- * gEarlyStopScanMaxThreshold - Set early stop scan max
- * threshold
- * @Min: -60
- * @Max: -40
- * @Default: -43
- *
- * This ini is used to set the the early stop scan maximum
- * threshold at which the candidate AP should be to be
- * qualified as a potential roam candidate and good enough
- * to stop the roaming scan.
- *
- * Related: None
- *
- * Supported Feature: Scan
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EARLY_STOP_SCAN_MAX_THRESHOLD           "gEarlyStopScanMaxThreshold"
-#define CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MIN       (-60)
-#define CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MAX       (-40)
-#define CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_DEFAULT   (-43)
-
-/*
- * <ini>
- * gFirstScanBucketThreshold - Set first scan bucket
- * threshold
- * @Min: -50
- * @Max: -30
- * @Default: -30
- *
- * This ini will configure the first scan bucket
- * threshold to the mentioned value and all the AP's which
- * have RSSI under this threshold will fall under this
- * bucket. This configuration item used to tweak and
- * test the input for internal algorithm.
- *
- * Related: None
- *
- * Supported Feature: Scan
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME      "gFirstScanBucketThreshold"
-#define CFG_FIRST_SCAN_BUCKET_THRESHOLD_MIN       (-50)
-#define CFG_FIRST_SCAN_BUCKET_THRESHOLD_MAX       (-30)
-#define CFG_FIRST_SCAN_BUCKET_THRESHOLD_DEFAULT   (-30)
-
 /*
  * <ini>
  * gbug_report_for_scan_results - Enable bug report
@@ -1332,29 +1224,6 @@ enum hdd_dot11_mode {
 #define CFG_ROAM_RSSI_DIFF_MAX                              (30)
 #define CFG_ROAM_RSSI_DIFF_DEFAULT                          (5)
 
-/*
- * <ini>
- * rssi_abs_thresh - The min RSSI of the candidate AP to consider roam
- * @Min: -96
- * @Max: 0
- * @Default: 0
- *
- * The RSSI value of the candidate AP should be higher than rssi_abs_thresh
- * to roam to the AP. 0 means no absolute minimum RSSI is required.
- *
- * Related: None
- *
- * Supported Feature: Roaming
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_ROAM_RSSI_ABS_THRESHOLD_NAME        "rssi_abs_thresh"
-#define CFG_ROAM_RSSI_ABS_THRESHOLD_MIN         (-96)
-#define CFG_ROAM_RSSI_ABS_THRESHOLD_MAX         (0)
-#define CFG_ROAM_RSSI_ABS_THRESHOLD_DEFAULT     (0)
-
 /*
  * <ini>
  * gRoamScanNProbes - Sets the number of probes to be sent for firmware roaming
@@ -1563,30 +1432,6 @@ enum hdd_dot11_mode {
 #define CFG_STRICT_5GHZ_PREF_BY_MARGIN_MAX             (60)
 #define CFG_STRICT_5GHZ_PREF_BY_MARGIN_DEFAULT         (0)
 
-#ifdef WLAN_FEATURE_ROAM_OFFLOAD
-/*
- * <ini>
- * gRoamOffloadEnabled - enable/disable roam offload feature
- * @Min: 0
- * @Max: 1
- * @Default: 1
- *
- * This INI is used to enable/disable roam offload feature
- *
- * Related: None
- *
- * Supported Feature: Roaming
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_ROAMING_OFFLOAD_NAME                "gRoamOffloadEnabled"
-#define CFG_ROAMING_OFFLOAD_MIN                 (0)
-#define CFG_ROAMING_OFFLOAD_MAX                 (1)
-#define CFG_ROAMING_OFFLOAD_DEFAULT             (1)
-#endif
-
 /*
  * <ini>
  * gRoamScanHiRssiMaxCount - Sets 5GHz maximum scan count
@@ -1706,30 +1551,6 @@ enum hdd_dot11_mode {
 #define CFG_ENABLE_LFR_SUBNET_DEFAULT      (1)
 #endif /* FEATURE_LFR_SUBNET_DETECTION */
 
-/*
- * <ini>
- * groam_dense_rssi_thresh_offset - Sets dense roam RSSI threshold diff
- * @Min: 0
- * @Max: 20
- * @Default: 10
- *
- * This INI is used to set offset value from normal RSSI threshold to dense
- * RSSI threshold Fw will optimize roaming based on new RSSI threshold once
- * it detects dense enviournment.
- *
- * Related: None
- *
- * Supported Feature: Roaming
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_ROAM_DENSE_RSSI_THRE_OFFSET         "groam_dense_rssi_thresh_offset"
-#define CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN     (0)
-#define CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX     (20)
-#define CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT (10)
-
 /*
  * <ini>
  * enable_ftopen - enable/disable FT open feature
@@ -1752,90 +1573,6 @@ enum hdd_dot11_mode {
 #define CFG_ROAM_FT_OPEN_ENABLE_MAX                 (1)
 #define CFG_ROAM_FT_OPEN_ENABLE_DEFAULT             (1)
 
-/*
- * <ini>
- * groam_dense_min_aps - Sets minimum number of AP for dense roam
- * @Min: 1
- * @Max: 5
- * @Default: 3
- *
- * Minimum number of APs required for dense roam. FW will consider
- * environment as dense once it detects #APs operating is more than
- * groam_dense_min_aps.
- *
- * Related: None
- *
- * Supported Feature: Roaming
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_ROAM_DENSE_MIN_APS         "groam_dense_min_aps"
-#define CFG_ROAM_DENSE_MIN_APS_MIN     (1)
-#define CFG_ROAM_DENSE_MIN_APS_MAX     (5)
-#define CFG_ROAM_DENSE_MIN_APS_DEFAULT (3)
-
-/*
- * <ini>
- * roam_bg_scan_bad_rssi_thresh - RSSI threshold for background roam
- * @Min: -96
- * @Max: 0
- * @Default: -76
- *
- * If the DUT is connected to an AP with weak signal, then the bad RSSI
- * threshold will be used as an opportunity to use the scan results
- * from other scan clients and try to roam if there is a better AP
- * available in the environment.
- *
- * Related: None
- *
- * Supported Feature: Roaming
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_NAME  "roam_bg_scan_bad_rssi_thresh"
-#define CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_MIN     (-96)
-#define CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_MAX     (0)
-#define CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_DEFAULT (-76)
-
-/*
- * <ini>
- * roam_bg_scan_client_bitmap - Bitmap used to identify the scan clients
- * @Min: 0
- * @Max: 0x3FF
- * @Default: 0x
- *
- * This bitmap is used to define the client scans that need to be used
- * by the roaming module to perform a background roaming.
- * Currently supported bit positions are as follows:
- * Bit 0 is reserved in the firmware.
- * WMI_SCAN_CLIENT_NLO - 1
- * WMI_SCAN_CLIENT_EXTSCAN - 2
- * WMI_SCAN_CLIENT_ROAM - 3
- * WMI_SCAN_CLIENT_P2P - 4
- * WMI_SCAN_CLIENT_LPI - 5
- * WMI_SCAN_CLIENT_NAN - 6
- * WMI_SCAN_CLIENT_ANQP - 7
- * WMI_SCAN_CLIENT_OBSS - 8
- * WMI_SCAN_CLIENT_PLM - 9
- * WMI_SCAN_CLIENT_HOST - 10
- *
- * Related: None
- *
- * Supported Feature: Roaming
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_ROAM_BG_SCAN_CLIENT_BITMAP_NAME     "roam_bg_scan_client_bitmap"
-#define CFG_ROAM_BG_SCAN_CLIENT_BITMAP_MIN      (0)
-#define CFG_ROAM_BG_SCAN_CLIENT_BITMAP_MAX      (0x7FF)
-#define CFG_ROAM_BG_SCAN_CLIENT_BITMAP_DEFAULT  (0x424)
-
 /*
  * <ini>
  * min_delay_btw_roam_scans - Min duration (in sec) allowed btw two
@@ -1979,35 +1716,6 @@ enum hdd_dot11_mode {
 #define CFG_ROAM_FORCE_RSSI_TRIGGER_MAX     (1)
 #define CFG_ROAM_FORCE_RSSI_TRIGGER_DEFAULT (1)
 
-/*
- * <ini>
- * roamscan_adaptive_dwell_mode - Sets dwell time adaptive mode
- * @Min: 0
- * @Max: 4
- * @Default: 1
- *
- * This parameter will set the algo used in dwell time optimization during
- * roam scan. see enum scan_dwelltime_adaptive_mode.
- * Acceptable values for this:
- * 0: Default (Use firmware default mode)
- * 1: Conservative optimization
- * 2: Moderate optimization
- * 3: Aggressive optimization
- * 4: Static
- *
- * Related: None
- *
- * Supported Feature: Roaming
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME    "roamscan_adaptive_dwell_mode"
-#define CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MIN     (0)
-#define CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MAX     (4)
-#define CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_DEFAULT (1)
-
 /*
  * Timer waiting for interface up from the upper layer. If
  * this timer expires all the cds modules shall be closed.
@@ -4002,119 +3710,6 @@ enum station_keepalive_method {
 #define CFG_LFR_MAWC_FEATURE_ENABLED_MAX                    (1)
 #define CFG_LFR_MAWC_FEATURE_ENABLED_DEFAULT                (0)
 
-/*
- * <ini>
- * mawc_roam_enabled - Enable/Disable MAWC during roaming
- * @Min: 0 - Disabled
- * @Max: 1 - Enabled
- * @Default: 0
- *
- * This ini is used to control MAWC during roaming.
- *
- * Related: MAWCEnabled.
- *
- * Supported Feature: MAWC Roaming
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-#define CFG_MAWC_ROAM_ENABLED_NAME            "mawc_roam_enabled"
-#define CFG_MAWC_ROAM_ENABLED_MIN             (0)
-#define CFG_MAWC_ROAM_ENABLED_MAX             (1)
-#define CFG_MAWC_ROAM_ENABLED_DEFAULT         (0)
-
-/*
- * <ini>
- * mawc_roam_traffic_threshold - Configure traffic threshold
- * @Min: 0
- * @Max: 0xFFFFFFFF
- * @Default: 300
- *
- * This ini is used to configure the data traffic load in kBps to
- * register CMC.
- *
- * Related: mawc_roam_enabled.
- *
- * Supported Feature: MAWC Roaming
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-#define CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_NAME       "mawc_roam_traffic_threshold"
-#define CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_MIN        (0)
-#define CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_MAX        (0xFFFFFFFF)
-#define CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_DEFAULT    (300)
-
-/*
- * <ini>
- * mawc_roam_ap_rssi_threshold - Best AP RSSI threshold
- * @Min: -120
- * @Max: 0
- * @Default: -66
- *
- * This ini is used to specify the RSSI threshold to scan for the AP.
- *
- * Related: mawc_roam_enabled.
- *
- * Supported Feature: MAWC Roaming
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-#define CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_NAME       "mawc_roam_ap_rssi_threshold"
-#define CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_MIN        (-120)
-#define CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_MAX        (0)
-#define CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_DEFAULT    (-66)
-
-/*
- * <ini>
- * mawc_roam_rssi_high_adjust - Adjust MAWC roam high RSSI
- * @Min: 3
- * @Max: 5
- * @Default: 5
- *
- * This ini is used for high RSSI threshold adjustment in stationary state
- * to suppress the scan.
- *
- * Related: mawc_roam_enabled.
- *
- * Supported Feature: MAWC Roaming
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-#define CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_NAME        "mawc_roam_rssi_high_adjust"
-#define CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_MIN         (3)
-#define CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_MAX         (5)
-#define CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_DEFAULT     (5)
-
-/*
- * <ini>
- * mawc_roam_rssi_high_adjust - Adjust MAWC roam low RSSI
- * @Min: 3
- * @Max: 5
- * @Default: 5
- *
- * This ini is used for low RSSI threshold adjustment in stationary state
- * to suppress the scan.
- *
- * Related: mawc_roam_enabled.
- *
- * Supported Feature: MAWC Roaming
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-#define CFG_MAWC_ROAM_RSSI_LOW_ADJUST_NAME        "mawc_roam_rssi_low_adjust"
-#define CFG_MAWC_ROAM_RSSI_LOW_ADJUST_MIN         (3)
-#define CFG_MAWC_ROAM_RSSI_LOW_ADJUST_MAX         (5)
-#define CFG_MAWC_ROAM_RSSI_LOW_ADJUST_DEFAULT     (5)
-
 /*This parameter is used to set Wireless Extended Security Mode.*/
 #define CFG_ENABLE_WES_MODE_NAME                            "gWESModeEnabled"
 #define CFG_ENABLE_WES_MODE_NAME_MIN                        (0)
@@ -4207,39 +3802,6 @@ enum station_keepalive_method {
 #define CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX       (120)
 #define CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT   (78)
 
-/*
- * <ini>
- * lookup_threshold_5g_offset - Lookup Threshold offset for 5G band
- * @Min: -120
- * @Max: +120
- * @Default: 0
- *
- * This ini is  used to set the 5G band lookup threshold for roaming.
- * It depends on another INI which is gNeighborLookupThreshold.
- * gNeighborLookupThreshold is a legacy INI item which will be used to
- * set the RSSI lookup threshold for both 2G and 5G bands. If the
- * user wants to setup a different threshold for a 5G band, then user
- * can use this offset value which will be summed up to the value of
- * gNeighborLookupThreshold and used for 5G
- * e.g: gNeighborLookupThreshold = -76dBm
- *      lookup_threshold_5g_offset = 6dBm
- *      Then the 5G band will be configured to -76+6 = -70dBm
- * A default value of Zero to lookup_threshold_5g_offset will keep the
- * thresholds same for both 2G and 5G bands
- *
- * Related: gNeighborLookupThreshold
- *
- * Supported Feature: Roaming
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-#define CFG_5G_RSSI_THRESHOLD_OFFSET_NAME      "lookup_threshold_5g_offset"
-#define CFG_5G_RSSI_THRESHOLD_OFFSET_MIN       (-120)
-#define CFG_5G_RSSI_THRESHOLD_OFFSET_MAX       (120)
-#define CFG_5G_RSSI_THRESHOLD_OFFSET_DEFAULT   (0)
-
 #define CFG_DELAY_BEFORE_VDEV_STOP_NAME              "gDelayBeforeVdevStop"
 #define CFG_DELAY_BEFORE_VDEV_STOP_MIN               (2)
 #define CFG_DELAY_BEFORE_VDEV_STOP_MAX               (200)
@@ -7733,16 +7295,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_SET_TSF_PTP_OPT_DEFAULT               (0xf)
 #endif
 
-/*
- * Dense traffic threshold
- * traffic threshold required for dense roam scan
- * Measured in kbps
- */
-#define CFG_ROAM_DENSE_TRAFFIC_THRESHOLD         "gtraffic_threshold"
-#define CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MIN     (0)
-#define CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MAX     (0xffffffff)
-#define CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_DEFAULT (400)
-
 /*
  * <ini>
  * gvendor_acs_support - vendor based channel selection manager
@@ -8955,37 +8507,6 @@ enum hdd_wext_control {
 #define CFG_PRIVATE_WEXT_CONTROL_MAX            (hdd_wext_enabled)
 #define CFG_PRIVATE_WEXT_CONTROL_DEFAULT        (hdd_wext_deprecated)
 
-/*
- * <ini>
- * gper_roam_mon_time - Minimum time required in seconds to
- * be considered as valid scenario for PER based roam
- * @Min: 5
- * @Max: 25
- * @Default: 25
- *
- * This ini is used to define minimum time in seconds for which DUT has
- * collected the PER stats before it can consider the stats hysteresis to be
- * valid for PER based scan.
- * DUT collects following information during this period:
- *     1. % of packets below gper_roam_low_rate_th
- *     2. # packets above gper_roam_high_rate_th
- * if DUT gets (1) greater than gper_roam_th_percent and (2) is zero during
- * this period, it triggers PER based roam scan.
- *
- * Related: gper_roam_enabled, gper_roam_high_rate_th, gper_roam_low_rate_th,
- *          gper_roam_th_percent, gper_roam_rest_time
- *
- * Supported Feature: LFR-3.0
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_PER_ROAM_MONITOR_TIME                "gper_roam_mon_time"
-#define CFG_PER_ROAM_MONITOR_TIME_MIN            (5)
-#define CFG_PER_ROAM_MONITOR_TIME_MAX            (25)
-#define CFG_PER_ROAM_MONTIOR_TIME_DEFAULT        (25)
-
 /*
  * <ini>
  * gPowerUsage - Preferred Power Usage
@@ -9008,32 +8529,6 @@ enum hdd_wext_control {
 #define CFG_POWER_USAGE_MAX                    "Max"
 #define CFG_POWER_USAGE_DEFAULT                "Mod"
 
-
-/*
- * <ini>
- * gper_min_rssi_threshold_for_roam -  Minimum roamable AP RSSI for
- * candidate selection for PER based roam
- * @Min: 0
- * @Max: 96
- * @Default: 83
- *
- * Minimum roamable AP RSSI for candidate selection for PER based roam
- *
- * Related: gper_roam_enabled, gper_roam_high_rate_th, gper_roam_low_rate_th,
- *          gper_roam_th_percent, gper_roam_rest_time
- *
- * Supported Feature: LFR-3.0
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_PER_ROAM_MIN_CANDIDATE_RSSI           "gper_min_rssi_threshold_for_roam"
-#define CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MIN       (0)
-#define CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MAX       (96)
-#define CFG_PER_ROAM_MIN_CANDIDATE_RSSI_DEFAULT   (83)
-
-
 /*
  * <ini>
  * gEnableImps - Enable/Disable IMPS
@@ -9518,140 +9013,6 @@ enum hdd_wext_control {
 #define CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT          (200)
 #endif
 
-/*
- * <ini>
- * gper_roam_enabled - To enabled/disable PER based roaming in FW
- * @Min: 0
- * @Max: 3
- * @Default: 0
- *
- * This ini is used to enable/disable Packet error based roaming, enabling this
- * will cause DUT to monitor Tx and Rx traffic and roam to a better candidate
- * if current is not good enough.
- *
- * Values supported:
- * 0: disabled
- * 1: enabled for Rx traffic
- * 2: enabled for Tx traffic
- * 3: enabled for Tx and Rx traffic
- *
- * Related: gper_roam_high_rate_th, gper_roam_low_rate_th,
- *          gper_roam_th_percent, gper_roam_rest_time
- *
- * Supported Feature: LFR-3.0
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_PER_ROAM_ENABLE_NAME           "gper_roam_enabled"
-#define CFG_PER_ROAM_ENABLE_MIN            (0)
-#define CFG_PER_ROAM_ENABLE_MAX            (3)
-#define CFG_PER_ROAM_ENABLE_DEFAULT        (3)
-
-/*
- * <ini>
- * gper_roam_high_rate_th - Rate at which PER based roam will stop
- * @Min: 1 Mbps
- * @Max: 0xffffffff
- * @Default: 40 Mbps
- *
- * This ini is used to define the data rate in mbps*10 at which FW will stop
- * monitoring the traffic for PER based roam.
- *
- * Related: gper_roam_enabled, gper_roam_low_rate_th,
- *          gper_roam_th_percent, gper_roam_rest_time
- *
- * Supported Feature: LFR-3.0
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME    "gper_roam_high_rate_th"
-#define CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MIN     (10)
-#define CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MAX     (0xffffffff)
-#define CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_DEFAULT (400)
-
-/*
- * <ini>
- * gper_roam_low_rate_th - Rate at which FW starts considering traffic for PER
- * based roam.
- *
- * @Min: 1 Mbps
- * @Max: 0xffffffff
- * @Default: 20 Mbps
- *
- * This ini is used to define the rate in mbps*10 at which FW starts considering
- * traffic for PER based roam, if gper_roam_th_percent of data is below this
- * rate, FW will issue a roam scan.
- *
- * Related: gper_roam_enabled, gper_roam_high_rate_th,
- *          gper_roam_th_percent, gper_roam_rest_time
- *
- * Supported Feature: LFR-3.0
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME    "gper_roam_low_rate_th"
-#define CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MIN     (10)
-#define CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MAX     (0xffffffff)
-#define CFG_PER_ROAM_CONFIG_LOW_RATE_TH_DEFAULT (200)
-
-/*
- * <ini>
- * gper_roam_th_percent - Percentage at which FW will issue a roam scan if
- * traffic is below gper_roam_low_rate_th rate.
- *
- * @Min: 10%
- * @Max: 100%
- * @Default: 60%
- *
- * This ini is used to define the percentage at which FW will issue a roam scan
- * if traffic is below gper_roam_low_rate_th rate.
- *
- * Related: gper_roam_enabled, gper_roam_high_rate_th,
- *          gper_roam_high_rate_th, gper_roam_rest_time
- *
- * Supported Feature: LFR-3.0
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME      "gper_roam_th_percent"
-#define CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MIN       (10)
-#define CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MAX       (100)
-#define CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_DEFAULT   (60)
-
-/*
- * <ini>
- * gper_roam_rest_time - Time for which FW will wait once it issues a
- * roam scan.
- *
- * @Min: 10 seconds
- * @Max: 3600 seconds
- * @Default: 300 seconds
- *
- * This ini is used to define the time for which FW will wait once it issues a
- * PER based roam scan.
- *
- * Related: gper_roam_enabled, gper_roam_high_rate_th,
- *          gper_roam_high_rate_th, gper_roam_th_percent
- *
- * Supported Feature: LFR-3.0
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_PER_ROAM_REST_TIME_NAME     "gper_roam_rest_time"
-#define CFG_PER_ROAM_REST_TIME_MIN      (10)
-#define CFG_PER_ROAM_REST_TIME_MAX      (3600)
-#define CFG_PER_ROAM_REST_TIME_DEFAULT  (300)
-
 /*
  * <ini>
  * g_is_fils_enabled - Enable/Disable FILS support in driver
@@ -10594,70 +9955,6 @@ enum hdd_external_acs_policy {
 #define CFG_OCE_ENABLE_SAP_MAX     (1)
 #define CFG_OCE_ENABLE_SAP_DEFAULT (1)
 
-/*
- * <ini>
- * groam_disallow_duration -disallow duration before roaming
- * @Min: 0
- * @Max: 3600
- * @Default: 30
- *
- * This ini is used to configure how long LCA[Last Connected AP] AP will
- * be disallowed before it can be a roaming candidate again, in units of
- * seconds.
- *
- * Related: LFR
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_ROAM_DISALLOW_DURATION_NAME    "groam_disallow_duration"
-#define CFG_ROAM_DISALLOW_DURATION_MIN     (0)
-#define CFG_ROAM_DISALLOW_DURATION_MAX     (3600)
-#define CFG_ROAM_DISALLOW_DURATION_DEFAULT (30)
-
-/*
- * <ini>
- * grssi_channel_penalization - RSSI penalization
- * @Min: 0
- * @Max: 15
- * @Default: 5
- *
- * This ini is used to configure RSSI that will be penalized if candidate(s)
- * are found to be in the same channel as disallowed AP's, in units of db.
- *
- * Related: LFR
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME    "grssi_channel_penalization"
-#define CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MIN     (0)
-#define CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MAX     (15)
-#define CFG_ROAM_RSSI_CHANNEL_PENALIZATION_DEFAULT (5)
-
-/*
- * <ini>
- * groam_num_disallowed_aps - Max number of AP's to maintain in LCA list
- * @Min: 0
- * @Max: 8
- * @Default: 3
- *
- * This ini is used to set the maximum number of AP's to be maintained
- * in LCA [Last Connected AP] list.
- *
- * Related: LFR
- *
- * Usage: Internal
- *
- * </ini>
- */
-#define CFG_ROAM_NUM_DISALLOWED_APS_NAME    "groam_num_disallowed_aps"
-#define CFG_ROAM_NUM_DISALLOWED_APS_MIN     (0)
-#define CFG_ROAM_NUM_DISALLOWED_APS_MAX     (8)
-#define CFG_ROAM_NUM_DISALLOWED_APS_DEFAULT (3)
-
 /*
  * <ini>
  * gEnableLPRx - Enable/Disable LPRx
@@ -12930,7 +12227,6 @@ struct hdd_config {
 	uint8_t neighborScanChanList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
 	uint16_t nNeighborScanMinChanTime;
 	uint16_t nNeighborScanMaxChanTime;
-	uint16_t nMaxNeighborReqTries;
 	uint16_t nNeighborResultsRefreshPeriod;
 	uint16_t nEmptyScanRefreshPeriod;
 	uint8_t nRoamBmissFirstBcnt;
@@ -12986,18 +12282,12 @@ struct hdd_config {
 	uint32_t InfraUapsdBkSuspIntv;
 	bool isFastRoamIniFeatureEnabled;
 	bool MAWCEnabled;
-	bool mawc_roam_enabled;
-	uint32_t mawc_roam_traffic_threshold;
-	int8_t mawc_roam_ap_rssi_threshold;
-	uint8_t mawc_roam_rssi_high_adjust;
-	uint8_t mawc_roam_rssi_low_adjust;
 #ifdef FEATURE_WLAN_ESE
 	uint32_t InfraInactivityInterval;
 	bool isEseIniFeatureEnabled;
 #endif
 	bool isFastTransitionEnabled;
 	uint8_t RoamRssiDiff;
-	int32_t rssi_abs_thresh;
 	bool isWESModeEnabled;
 	bool isRoamOffloadScanEnabled;
 	bool bImplicitQosEnabled;
@@ -13309,10 +12599,6 @@ struct hdd_config {
 	int32_t dfsRadarPriMultiplier;
 	uint8_t reorderOffloadSupport;
 
-#ifdef WLAN_FEATURE_ROAM_OFFLOAD
-	bool isRoamOffloadEnabled;
-#endif
-
 	uint32_t IpaUcTxBufCount;
 	uint32_t IpaUcTxBufSize;
 	uint32_t IpaUcRxIndRingCount;
@@ -13421,11 +12707,6 @@ struct hdd_config {
 	uint8_t tsf_ptp_options;
 #endif /* WLAN_FEATURE_TSF_PLUS */
 #endif
-	uint32_t roam_dense_traffic_thresh;
-	uint32_t roam_dense_rssi_thresh_offset;
-	uint32_t roam_dense_min_aps;
-	int8_t roam_bg_scan_bad_rssi_thresh;
-	uint8_t roam_bad_rssi_thresh_offset_2g;
 	uint32_t ho_delay_for_rx;
 	uint32_t min_delay_btw_roam_scans;
 	uint32_t roam_trigger_reason_bitmask;
@@ -13462,7 +12743,6 @@ struct hdd_config {
 	bool adaptive_dwell_mode_enabled;
 	enum scan_dwelltime_adaptive_mode scan_adaptive_dwell_mode;
 	enum scan_dwelltime_adaptive_mode scan_adaptive_dwell_mode_nc;
-	enum scan_dwelltime_adaptive_mode roamscan_adaptive_dwell_mode;
 	enum scan_dwelltime_adaptive_mode extscan_adaptive_dwell_mode;
 	enum scan_dwelltime_adaptive_mode pnoscan_adaptive_dwell_mode;
 	enum scan_dwelltime_adaptive_mode global_adapt_dwelltime_mode;
@@ -13502,13 +12782,6 @@ struct hdd_config {
 	bool sap_internal_restart;
 	enum restart_beaconing_on_ch_avoid_rule
 		restart_beaconing_on_chan_avoid_event;
-	uint8_t is_per_roam_enabled;
-	uint32_t per_roam_high_rate_threshold;
-	uint32_t per_roam_low_rate_threshold;
-	uint32_t per_roam_th_percent;
-	uint32_t per_roam_rest_time;
-	uint32_t per_roam_mon_time;
-	uint32_t min_candidate_rssi;
 	enum active_apf_mode active_uc_apf_mode;
 	enum active_apf_mode active_mc_bc_apf_mode;
 	bool enable_bcast_probe_rsp;
@@ -13555,10 +12828,6 @@ struct hdd_config {
 	uint8_t max_mpdus_inampdu;
 	enum pmo_auto_pwr_detect_failure_mode auto_pwr_save_fail_mode;
 	uint8_t ito_repeat_count;
-	/* LCA(Last connected AP) disallow configs */
-	uint32_t disallow_duration;
-	uint32_t rssi_channel_penalization;
-	uint32_t num_disallowed_aps;
 	bool oce_sta_enabled;
 	bool oce_sap_enabled;
 	bool enable_11d_in_world_mode;

+ 7 - 1
core/hdd/inc/wlan_hdd_main.h

@@ -95,6 +95,7 @@
 #include "wlan_hdd_nud_tracking.h"
 #include "wlan_hdd_twt.h"
 #include "wma_sar_public_structs.h"
+#include "wlan_mlme_ucfg_api.h"
 
 /*
  * Preprocessor definitions and constants
@@ -2371,7 +2372,12 @@ int wlan_hdd_scan_abort(struct hdd_adapter *adapter);
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
 static inline bool roaming_offload_enabled(struct hdd_context *hdd_ctx)
 {
-	return hdd_ctx->config->isRoamOffloadEnabled;
+	bool is_roam_offload;
+
+	ucfg_mlme_get_roaming_offload(hdd_ctx->hdd_psoc,
+				      &is_roam_offload);
+
+	return is_roam_offload;
 }
 #else
 static inline bool roaming_offload_enabled(struct hdd_context *hdd_ctx)

+ 1 - 364
core/hdd/src/wlan_hdd_cfg.c

@@ -934,46 +934,6 @@ struct reg_table_entry g_registry_table[] = {
 			     CFG_LFR_MAWC_FEATURE_ENABLED_MAX,
 			     notify_is_mawc_ini_feature_enabled, 0),
 
-	REG_VARIABLE(CFG_MAWC_ROAM_ENABLED_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, mawc_roam_enabled,
-		     VAR_FLAGS_OPTIONAL |
-		     VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_MAWC_ROAM_ENABLED_DEFAULT,
-		     CFG_MAWC_ROAM_ENABLED_MIN,
-		     CFG_MAWC_ROAM_ENABLED_MAX),
-
-	REG_VARIABLE(CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, mawc_roam_traffic_threshold,
-		     VAR_FLAGS_OPTIONAL |
-		     VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_DEFAULT,
-		     CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_MIN,
-		     CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_MAX),
-
-	REG_VARIABLE(CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_NAME,
-		     WLAN_PARAM_SignedInteger, struct hdd_config,
-		     mawc_roam_ap_rssi_threshold, VAR_FLAGS_OPTIONAL |
-		     VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_DEFAULT,
-		     CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_MIN,
-		     CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_MAX),
-
-	REG_VARIABLE(CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, mawc_roam_rssi_high_adjust,
-		     VAR_FLAGS_OPTIONAL |
-		     VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_DEFAULT,
-		     CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_MIN,
-		     CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_MAX),
-
-	REG_VARIABLE(CFG_MAWC_ROAM_RSSI_LOW_ADJUST_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, mawc_roam_rssi_low_adjust,
-		     VAR_FLAGS_OPTIONAL |
-		     VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_MAWC_ROAM_RSSI_LOW_ADJUST_DEFAULT,
-		     CFG_MAWC_ROAM_RSSI_LOW_ADJUST_MIN,
-		     CFG_MAWC_ROAM_RSSI_LOW_ADJUST_MAX),
-
 	/* flag to turn ON/OFF 11r and ESE FastTransition */
 	REG_DYNAMIC_VARIABLE(CFG_FAST_TRANSITION_ENABLED_NAME,
 			     WLAN_PARAM_Integer,
@@ -997,13 +957,6 @@ struct reg_table_entry g_registry_table[] = {
 			     CFG_ROAM_RSSI_DIFF_MAX,
 			     cb_notify_set_roam_rssi_diff, 0),
 
-	REG_VARIABLE(CFG_ROAM_RSSI_ABS_THRESHOLD_NAME, WLAN_PARAM_SignedInteger,
-		     struct hdd_config, rssi_abs_thresh,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_ROAM_RSSI_ABS_THRESHOLD_DEFAULT,
-		     CFG_ROAM_RSSI_ABS_THRESHOLD_MIN,
-		     CFG_ROAM_RSSI_ABS_THRESHOLD_MAX),
-
 	REG_DYNAMIC_VARIABLE(CFG_ENABLE_WES_MODE_NAME, WLAN_PARAM_Integer,
 			     struct hdd_config, isWESModeEnabled,
 			     VAR_FLAGS_OPTIONAL |
@@ -1253,14 +1206,6 @@ struct reg_table_entry g_registry_table[] = {
 			     CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
 			     cb_notify_set_neighbor_lookup_rssi_threshold, 0),
 
-	REG_VARIABLE(CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
-		     WLAN_PARAM_SignedInteger, struct hdd_config,
-		     rssi_thresh_offset_5g,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_5G_RSSI_THRESHOLD_OFFSET_DEFAULT,
-		     CFG_5G_RSSI_THRESHOLD_OFFSET_MIN,
-		     CFG_5G_RSSI_THRESHOLD_OFFSET_MAX),
-
 	REG_DYNAMIC_VARIABLE(CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_NAME,
 			     WLAN_PARAM_Integer,
 			     struct hdd_config, nOpportunisticThresholdDiff,
@@ -1306,13 +1251,6 @@ struct reg_table_entry g_registry_table[] = {
 			     CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX,
 			     cb_notify_set_neighbor_scan_max_chan_time, 0),
 
-	REG_VARIABLE(CFG_11R_NEIGHBOR_REQ_MAX_TRIES_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, nMaxNeighborReqTries,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_11R_NEIGHBOR_REQ_MAX_TRIES_DEFAULT,
-		     CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MIN,
-		     CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MAX),
-
 	REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_NAME,
 			     WLAN_PARAM_Integer,
 			     struct hdd_config, nNeighborResultsRefreshPeriod,
@@ -2679,14 +2617,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_ENABLE_PACKET_LOG_MAX),
 #endif
 
-#ifdef WLAN_FEATURE_ROAM_OFFLOAD
-	REG_VARIABLE(CFG_ROAMING_OFFLOAD_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, isRoamOffloadEnabled,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
-		     CFG_ROAMING_OFFLOAD_DEFAULT,
-		     CFG_ROAMING_OFFLOAD_MIN,
-		     CFG_ROAMING_OFFLOAD_MAX),
-#endif
 #ifdef MSM_PLATFORM
 	REG_VARIABLE(CFG_BUS_BANDWIDTH_HIGH_THRESHOLD, WLAN_PARAM_Integer,
 		     struct hdd_config, busBandwidthHighThreshold,
@@ -3336,37 +3266,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_SELF_GEN_FRM_PWR_MIN,
 		     CFG_SELF_GEN_FRM_PWR_MAX),
 
-	REG_VARIABLE(CFG_EARLY_STOP_SCAN_ENABLE, WLAN_PARAM_Integer,
-		     struct hdd_config, early_stop_scan_enable,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EARLY_STOP_SCAN_ENABLE_DEFAULT,
-		     CFG_EARLY_STOP_SCAN_ENABLE_MIN,
-		     CFG_EARLY_STOP_SCAN_ENABLE_MAX),
-
-	REG_VARIABLE(CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
-		     WLAN_PARAM_SignedInteger, struct hdd_config,
-		     early_stop_scan_min_threshold,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_DEFAULT,
-		     CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MIN,
-		     CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MAX),
-
-	REG_VARIABLE(CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
-		     WLAN_PARAM_SignedInteger, struct hdd_config,
-		     early_stop_scan_max_threshold,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_DEFAULT,
-		     CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MIN,
-		     CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MAX),
-
-	REG_VARIABLE(CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
-		     WLAN_PARAM_SignedInteger,
-		     struct hdd_config, first_scan_bucket_threshold,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_FIRST_SCAN_BUCKET_THRESHOLD_DEFAULT,
-		     CFG_FIRST_SCAN_BUCKET_THRESHOLD_MIN,
-		     CFG_FIRST_SCAN_BUCKET_THRESHOLD_MAX),
-
 #ifdef FEATURE_LFR_SUBNET_DETECTION
 	REG_VARIABLE(CFG_ENABLE_LFR_SUBNET_DETECTION, WLAN_PARAM_Integer,
 		     struct hdd_config, enable_lfr_subnet_detection,
@@ -3400,50 +3299,6 @@ struct reg_table_entry g_registry_table[] = {
 #endif /* WLAN_FEATURE_TSF_PLUS */
 #endif
 
-	REG_VARIABLE(CFG_ROAM_DENSE_TRAFFIC_THRESHOLD, WLAN_PARAM_Integer,
-		struct hdd_config, roam_dense_traffic_thresh,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_DEFAULT,
-		CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MIN,
-		CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MAX),
-
-	REG_VARIABLE(CFG_ROAM_DENSE_RSSI_THRE_OFFSET, WLAN_PARAM_Integer,
-		struct hdd_config, roam_dense_rssi_thresh_offset,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT,
-		CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN,
-		CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX),
-
-	REG_VARIABLE(CFG_ROAM_DENSE_MIN_APS, WLAN_PARAM_Integer,
-		struct hdd_config, roam_dense_min_aps,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ROAM_DENSE_MIN_APS_DEFAULT,
-		CFG_ROAM_DENSE_MIN_APS_MIN,
-		CFG_ROAM_DENSE_MIN_APS_MAX),
-
-	REG_VARIABLE(CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_NAME,
-		WLAN_PARAM_SignedInteger, struct hdd_config,
-		roam_bg_scan_bad_rssi_thresh,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_DEFAULT,
-		CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_MIN,
-		CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_MAX),
-
-	REG_VARIABLE(CFG_ROAM_BG_SCAN_CLIENT_BITMAP_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, roam_bg_scan_client_bitmap,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ROAM_BG_SCAN_CLIENT_BITMAP_DEFAULT,
-		CFG_ROAM_BG_SCAN_CLIENT_BITMAP_MIN,
-		CFG_ROAM_BG_SCAN_CLIENT_BITMAP_MAX),
-
-	REG_VARIABLE(CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_NAME,
-		WLAN_PARAM_Integer, struct hdd_config,
-		roam_bad_rssi_thresh_offset_2g,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_DEFAULT,
-		CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_MIN,
-		CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_MAX),
-
 	REG_VARIABLE(CFG_ROAM_HO_DELAY_FOR_RX_NAME,
 		WLAN_PARAM_Integer, struct hdd_config,
 		ho_delay_for_rx,
@@ -3654,13 +3509,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_MIN,
 		     CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_MAX),
 
-	REG_VARIABLE(CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, roamscan_adaptive_dwell_mode,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_DEFAULT,
-		CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MIN,
-		CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MAX),
-
 	REG_VARIABLE(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, extscan_adaptive_dwell_mode,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -3892,55 +3740,6 @@ struct reg_table_entry g_registry_table[] = {
 		CFG_RESTART_BEACONING_ON_CH_AVOID_MIN,
 		CFG_RESTART_BEACONING_ON_CH_AVOID_MAX),
 
-	REG_VARIABLE(CFG_PER_ROAM_ENABLE_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, is_per_roam_enabled,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_PER_ROAM_ENABLE_DEFAULT,
-		CFG_PER_ROAM_ENABLE_MIN,
-		CFG_PER_ROAM_ENABLE_MAX),
-
-	REG_VARIABLE(CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, per_roam_high_rate_threshold,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_DEFAULT,
-		CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MIN,
-		CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MAX),
-
-	REG_VARIABLE(CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, per_roam_low_rate_threshold,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_PER_ROAM_CONFIG_LOW_RATE_TH_DEFAULT,
-		CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MIN,
-		CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MAX),
-
-	REG_VARIABLE(CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
-		WLAN_PARAM_Integer, struct hdd_config, per_roam_th_percent,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_DEFAULT,
-		CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MIN,
-		CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MAX),
-
-	REG_VARIABLE(CFG_PER_ROAM_REST_TIME_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, per_roam_rest_time,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_PER_ROAM_REST_TIME_DEFAULT,
-		CFG_PER_ROAM_REST_TIME_MIN,
-		CFG_PER_ROAM_REST_TIME_MAX),
-
-	REG_VARIABLE(CFG_PER_ROAM_MONITOR_TIME, WLAN_PARAM_Integer,
-		struct hdd_config, per_roam_mon_time,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_PER_ROAM_MONTIOR_TIME_DEFAULT,
-		CFG_PER_ROAM_MONITOR_TIME_MIN,
-		CFG_PER_ROAM_MONITOR_TIME_MAX),
-
-	REG_VARIABLE(CFG_PER_ROAM_MIN_CANDIDATE_RSSI, WLAN_PARAM_Integer,
-		struct hdd_config, min_candidate_rssi,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_PER_ROAM_MIN_CANDIDATE_RSSI_DEFAULT,
-		CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MIN,
-		CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MAX),
-
 	REG_VARIABLE(CFG_ACTIVE_UC_APF_MODE_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, active_uc_apf_mode,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -4188,28 +3987,6 @@ struct reg_table_entry g_registry_table[] = {
 		CFG_ITO_REPEAT_COUNT_MIN,
 		CFG_ITO_REPEAT_COUNT_MAX),
 
-	REG_VARIABLE(CFG_ROAM_DISALLOW_DURATION_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, disallow_duration,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ROAM_DISALLOW_DURATION_DEFAULT,
-		CFG_ROAM_DISALLOW_DURATION_MIN,
-		CFG_ROAM_DISALLOW_DURATION_MAX),
-
-	REG_VARIABLE(CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
-		WLAN_PARAM_Integer, struct hdd_config,
-		rssi_channel_penalization,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ROAM_RSSI_CHANNEL_PENALIZATION_DEFAULT,
-		CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MIN,
-		CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MAX),
-
-	REG_VARIABLE(CFG_ROAM_NUM_DISALLOWED_APS_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, num_disallowed_aps,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ROAM_NUM_DISALLOWED_APS_DEFAULT,
-		CFG_ROAM_NUM_DISALLOWED_APS_MIN,
-		CFG_ROAM_NUM_DISALLOWED_APS_MAX),
-
 	REG_VARIABLE(CFG_OCE_ENABLE_STA_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, oce_sta_enabled,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -4231,55 +4008,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_ENABLE_11D_IN_WORLD_MODE_MIN,
 		     CFG_ENABLE_11D_IN_WORLD_MODE_MAX),
 
-	REG_VARIABLE(CFG_ENABLE_5G_BAND_PREF_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, enable_5g_band_pref,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ENABLE_5G_BAND_PREF_DEFAULT,
-		CFG_ENABLE_5G_BAND_PREF_MIN,
-		CFG_ENABLE_5G_BAND_PREF_MAX),
-
-	REG_VARIABLE(CFG_5G_RSSI_BOOST_THRESHOLD_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, rssi_boost_threshold_5g,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_5G_RSSI_BOOST_THRESHOLD_DEFAULT,
-		CFG_5G_RSSI_BOOST_THRESHOLD_MIN,
-		CFG_5G_RSSI_BOOST_THRESHOLD_MAX),
-
-	REG_VARIABLE(CFG_5G_RSSI_BOOST_FACTOR_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, rssi_boost_factor_5g,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_5G_RSSI_BOOST_FACTOR_DEFAULT,
-		CFG_5G_RSSI_BOOST_FACTOR_MIN,
-		CFG_5G_RSSI_BOOST_FACTOR_MAX),
-
-	REG_VARIABLE(CFG_5G_MAX_RSSI_BOOST_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, max_rssi_boost_5g,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_5G_MAX_RSSI_BOOST_DEFAULT,
-		CFG_5G_MAX_RSSI_BOOST_MIN,
-		CFG_5G_MAX_RSSI_BOOST_MAX),
-
-	REG_VARIABLE(CFG_5G_RSSI_PENALIZE_THRESHOLD_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, rssi_penalize_threshold_5g,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_5G_RSSI_PENALIZE_THRESHOLD_DEFAULT,
-		CFG_5G_RSSI_PENALIZE_THRESHOLD_MIN,
-		CFG_5G_RSSI_PENALIZE_THRESHOLD_MAX),
-
-	REG_VARIABLE(CFG_5G_RSSI_PENALIZE_FACTOR_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, rssi_penalize_factor_5g,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_5G_RSSI_PENALIZE_FACTOR_DEFAULT,
-		CFG_5G_RSSI_PENALIZE_FACTOR_MIN,
-		CFG_5G_RSSI_PENALIZE_FACTOR_MAX),
-
-	REG_VARIABLE(CFG_5G_MAX_RSSI_PENALIZE_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, max_rssi_penalize_5g,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_5G_MAX_RSSI_PENALIZE_DEFAULT,
-		CFG_5G_MAX_RSSI_PENALIZE_MIN,
-		CFG_5G_MAX_RSSI_PENALIZE_MAX),
-
 	REG_VARIABLE(CFG_LPRx_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, enable_lprx,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -6567,50 +6295,6 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
 	return status;
 }
 
-/**
- * hdd_update_per_config_to_sme() -initializes the sme config for PER roam
- *
- * @hdd_ctx: the pointer to hdd context
- * @sme_config: sme configuation pointer
- *
- * Return: None
- */
-static void hdd_update_per_config_to_sme(struct hdd_context *hdd_ctx,
-					 tSmeConfigParams *sme_config)
-{
-	sme_config->csrConfig.per_roam_config.enable =
-			hdd_ctx->config->is_per_roam_enabled;
-
-	/* Assigning Tx and Rx for same value */
-	sme_config->csrConfig.per_roam_config.tx_high_rate_thresh =
-			hdd_ctx->config->per_roam_high_rate_threshold;
-	sme_config->csrConfig.per_roam_config.rx_high_rate_thresh =
-			hdd_ctx->config->per_roam_high_rate_threshold;
-
-	/* Assigning Tx and Rx for same value */
-	sme_config->csrConfig.per_roam_config.tx_low_rate_thresh =
-			hdd_ctx->config->per_roam_low_rate_threshold;
-	sme_config->csrConfig.per_roam_config.rx_low_rate_thresh =
-			hdd_ctx->config->per_roam_low_rate_threshold;
-
-	/* Assigning Tx and Rx for same value */
-	sme_config->csrConfig.per_roam_config.tx_rate_thresh_percnt =
-			hdd_ctx->config->per_roam_th_percent;
-	sme_config->csrConfig.per_roam_config.rx_rate_thresh_percnt =
-			hdd_ctx->config->per_roam_th_percent;
-
-	sme_config->csrConfig.per_roam_config.per_rest_time =
-			hdd_ctx->config->per_roam_rest_time;
-	sme_config->csrConfig.per_roam_config.tx_per_mon_time =
-			hdd_ctx->config->per_roam_mon_time;
-	sme_config->csrConfig.per_roam_config.rx_per_mon_time =
-			hdd_ctx->config->per_roam_mon_time;
-
-	/* Assigning minimum roamable AP RSSI for candidate selection */
-	sme_config->csrConfig.per_roam_config.min_candidate_rssi =
-			hdd_ctx->config->min_candidate_rssi;
-}
-
 /**
  * hdd_set_policy_mgr_user_cfg() -initializes the policy manager
  * configuration parameters
@@ -6960,16 +6644,7 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
 		pConfig->isFastRoamIniFeatureEnabled;
 	smeConfig->csrConfig.csr_mawc_config.mawc_enabled =
 		pConfig->MAWCEnabled;
-	smeConfig->csrConfig.csr_mawc_config.mawc_roam_enabled =
-		pConfig->mawc_roam_enabled;
-	smeConfig->csrConfig.csr_mawc_config.mawc_roam_traffic_threshold =
-		pConfig->mawc_roam_traffic_threshold;
-	smeConfig->csrConfig.csr_mawc_config.mawc_roam_ap_rssi_threshold =
-		pConfig->mawc_roam_ap_rssi_threshold;
-	smeConfig->csrConfig.csr_mawc_config.mawc_roam_rssi_high_adjust =
-		pConfig->mawc_roam_rssi_high_adjust;
-	smeConfig->csrConfig.csr_mawc_config.mawc_roam_rssi_low_adjust =
-		pConfig->mawc_roam_rssi_low_adjust;
+
 #ifdef FEATURE_WLAN_ESE
 	smeConfig->csrConfig.isEseIniFeatureEnabled =
 		pConfig->isEseIniFeatureEnabled;
@@ -6979,7 +6654,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
 	smeConfig->csrConfig.isFastTransitionEnabled =
 		pConfig->isFastTransitionEnabled;
 	smeConfig->csrConfig.RoamRssiDiff = pConfig->RoamRssiDiff;
-	smeConfig->csrConfig.rssi_abs_thresh = pConfig->rssi_abs_thresh;
 	smeConfig->csrConfig.isWESModeEnabled = pConfig->isWESModeEnabled;
 	smeConfig->csrConfig.isRoamOffloadScanEnabled =
 		pConfig->isRoamOffloadScanEnabled;
@@ -7011,8 +6685,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
 	smeConfig->csrConfig.neighborRoamConfig.
 		neighbor_scan_min_timer_period =
 		pConfig->neighbor_scan_min_period;
-	smeConfig->csrConfig.neighborRoamConfig.nMaxNeighborRetries =
-		pConfig->nMaxNeighborReqTries;
 	smeConfig->csrConfig.neighborRoamConfig.nNeighborResultsRefreshPeriod =
 		pConfig->nNeighborResultsRefreshPeriod;
 	smeConfig->csrConfig.neighborRoamConfig.nEmptyScanRefreshPeriod =
@@ -7073,10 +6745,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
 
 	smeConfig->csrConfig.enableSelfRecovery =
 			hdd_ctx->config->enableSelfRecovery;
-#ifdef WLAN_FEATURE_ROAM_OFFLOAD
-	smeConfig->csrConfig.isRoamOffloadEnabled =
-		hdd_ctx->config->isRoamOffloadEnabled;
-#endif
 	smeConfig->csrConfig.conc_custom_rule1 =
 		hdd_ctx->config->conc_custom_rule1;
 	smeConfig->csrConfig.conc_custom_rule2 =
@@ -7107,27 +6775,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
 	smeConfig->csrConfig.max_scan_count =
 			hdd_ctx->config->max_scan_count;
 
-	smeConfig->csrConfig.early_stop_scan_enable =
-		hdd_ctx->config->early_stop_scan_enable;
-	smeConfig->csrConfig.early_stop_scan_min_threshold =
-		hdd_ctx->config->early_stop_scan_min_threshold;
-	smeConfig->csrConfig.early_stop_scan_max_threshold =
-		hdd_ctx->config->early_stop_scan_max_threshold;
-	smeConfig->csrConfig.first_scan_bucket_threshold =
-		hdd_ctx->config->first_scan_bucket_threshold;
-
-	smeConfig->csrConfig.roam_dense_rssi_thresh_offset =
-			hdd_ctx->config->roam_dense_rssi_thresh_offset;
-	smeConfig->csrConfig.roam_dense_min_aps =
-			hdd_ctx->config->roam_dense_min_aps;
-	smeConfig->csrConfig.roam_dense_traffic_thresh =
-			hdd_ctx->config->roam_dense_traffic_thresh;
-	smeConfig->csrConfig.roam_bg_scan_bad_rssi_thresh =
-		hdd_ctx->config->roam_bg_scan_bad_rssi_thresh;
-	smeConfig->csrConfig.roam_bg_scan_client_bitmap =
-		hdd_ctx->config->roam_bg_scan_client_bitmap;
-	smeConfig->csrConfig.roam_bad_rssi_thresh_offset_2g =
-		hdd_ctx->config->roam_bad_rssi_thresh_offset_2g;
 	smeConfig->csrConfig.ho_delay_for_rx =
 		hdd_ctx->config->ho_delay_for_rx;
 	smeConfig->csrConfig.min_delay_btw_roam_scans =
@@ -7147,15 +6794,11 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
 			hdd_ctx->config->scan_adaptive_dwell_mode;
 	smeConfig->csrConfig.scan_adaptive_dwell_mode_nc =
 			hdd_ctx->config->scan_adaptive_dwell_mode_nc;
-	smeConfig->csrConfig.roamscan_adaptive_dwell_mode =
-			hdd_ctx->config->roamscan_adaptive_dwell_mode;
 	smeConfig->csrConfig.enable_ftopen =
 			hdd_ctx->config->enable_ftopen;
 	smeConfig->csrConfig.roam_force_rssi_trigger =
 			hdd_ctx->config->roam_force_rssi_trigger;
 
-	hdd_update_per_config_to_sme(hdd_ctx, smeConfig);
-
 	smeConfig->csrConfig.enable_edca_params =
 			pConfig->enable_edca_params;
 
@@ -7213,12 +6856,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
 
 	smeConfig->csrConfig.pkt_err_disconn_th =
 			hdd_ctx->config->pkt_err_disconn_th;
-	smeConfig->csrConfig.disallow_duration =
-			hdd_ctx->config->disallow_duration;
-	smeConfig->csrConfig.rssi_channel_penalization =
-			hdd_ctx->config->rssi_channel_penalization;
-	smeConfig->csrConfig.num_disallowed_aps =
-			hdd_ctx->config->num_disallowed_aps;
 
 	smeConfig->csrConfig.is_force_1x1 =
 			hdd_ctx->config->is_force_1x1;

+ 23 - 22
core/hdd/src/wlan_hdd_main.c

@@ -1192,6 +1192,24 @@ static int hdd_update_tdls_config(struct hdd_context *hdd_ctx)
 	return 0;
 }
 
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+static void hdd_update_roam_offload(struct hdd_context *hdd_ctx,
+				    struct wma_tgt_services *cfg)
+{
+	bool roam_offload_enable;
+
+	ucfg_mlme_get_roaming_offload(hdd_ctx->hdd_psoc, &roam_offload_enable);
+	ucfg_mlme_set_roaming_offload(hdd_ctx->hdd_psoc,
+				      roam_offload_enable &
+				      cfg->en_roam_offload);
+}
+#else
+static inline void hdd_update_roam_offload(struct hdd_context *hdd_ctx,
+					   struct wma_tgt_services *cfg)
+{
+}
+#endif
+
 static void hdd_update_tgt_services(struct hdd_context *hdd_ctx,
 				    struct wma_tgt_services *cfg)
 {
@@ -1245,9 +1263,7 @@ static void hdd_update_tgt_services(struct hdd_context *hdd_ctx,
 	else
 		cfg_tdls_set_sleep_sta_enable(hdd_ctx->hdd_psoc, false);
 #endif
-#ifdef WLAN_FEATURE_ROAM_OFFLOAD
-	config->isRoamOffloadEnabled &= cfg->en_roam_offload;
-#endif
+	hdd_update_roam_offload(hdd_ctx, cfg);
 	config->sap_get_peer_info &= cfg->get_peer_info_enabled;
 	config->MAWCEnabled &= cfg->is_fw_mawc_capable;
 	hdd_update_tdls_config(hdd_ctx);
@@ -10413,7 +10429,6 @@ static int hdd_features_init(struct hdd_context *hdd_ctx)
 {
 	tSirTxPowerLimit hddtxlimit;
 	QDF_STATUS status;
-	struct sme_5g_band_pref_params band_pref_params;
 	int ret;
 	mac_handle_t mac_handle;
 	struct hdd_config *cfg;
@@ -10504,22 +10519,6 @@ static int hdd_features_init(struct hdd_context *hdd_ctx)
 		}
 	}
 
-	if (hdd_ctx->config->enable_5g_band_pref) {
-		band_pref_params.rssi_boost_threshold_5g =
-				hdd_ctx->config->rssi_boost_threshold_5g;
-		band_pref_params.rssi_boost_factor_5g =
-				hdd_ctx->config->rssi_boost_factor_5g;
-		band_pref_params.max_rssi_boost_5g =
-				hdd_ctx->config->max_rssi_boost_5g;
-		band_pref_params.rssi_penalize_threshold_5g =
-				hdd_ctx->config->rssi_penalize_threshold_5g;
-		band_pref_params.rssi_penalize_factor_5g =
-				hdd_ctx->config->rssi_penalize_factor_5g;
-		band_pref_params.max_rssi_penalize_5g =
-				hdd_ctx->config->max_rssi_penalize_5g;
-		sme_set_5g_band_pref(mac_handle, &band_pref_params);
-	}
-
 	/* register P2P Listen Offload event callback */
 	if (wma_is_p2p_lo_capable())
 		sme_register_p2p_lo_event(mac_handle, hdd_ctx,
@@ -13837,6 +13836,7 @@ static int hdd_update_scan_config(struct hdd_context *hdd_ctx)
 	struct scan_user_cfg scan_cfg;
 	struct hdd_config *cfg = hdd_ctx->config;
 	QDF_STATUS status;
+	uint8_t scan_bucket_thre;
 
 	scan_cfg.active_dwell = cfg->nActiveMaxChnTime;
 	scan_cfg.passive_dwell = cfg->nPassiveMaxChnTime;
@@ -13850,7 +13850,9 @@ static int hdd_update_scan_config(struct hdd_context *hdd_ctx)
 		cfg->scanAgingTimeout * 1000;
 	scan_cfg.prefer_5ghz = cfg->nRoamPrefer5GHz;
 	scan_cfg.select_5ghz_margin = cfg->nSelect5GHzMargin;
-	scan_cfg.scan_bucket_threshold = cfg->first_scan_bucket_threshold;
+	ucfg_mlme_get_first_scan_bucket_threshold(hdd_ctx->hdd_psoc,
+						  &scan_bucket_thre);
+	scan_cfg.scan_bucket_threshold = (int32_t)scan_bucket_thre;
 	scan_cfg.rssi_cat_gap = cfg->nRssiCatGap;
 	scan_cfg.scan_dwell_time_mode = cfg->scan_adaptive_dwell_mode;
 	scan_cfg.is_snr_monitoring_enabled = cfg->fEnableSNRMonitoring;
@@ -13860,7 +13862,6 @@ static int hdd_update_scan_config(struct hdd_context *hdd_ctx)
 	scan_cfg.enable_mac_spoofing = cfg->enable_mac_spoofing;
 	scan_cfg.sta_miracast_mcc_rest_time =
 				cfg->sta_miracast_mcc_rest_time_val;
-
 	hdd_update_pno_config(&scan_cfg.pno_cfg, cfg);
 	hdd_update_ie_whitelist_attr(&scan_cfg.ie_whitelist, cfg);
 	hdd_update_score_config(&scan_cfg.score_config, cfg);

+ 0 - 1
core/mac/inc/ani_global.h

@@ -895,7 +895,6 @@ typedef struct sAniSirGlobal {
 	uint8_t user_configured_nss;
 	bool snr_monitor_enabled;
 	bool ignore_assoc_disallowed;
-	int8_t first_scan_bucket_threshold;
 	uint32_t peer_rssi;
 	uint32_t peer_txrate;
 	uint32_t peer_rxrate;

+ 1 - 3
core/mac/inc/sir_api.h

@@ -2641,7 +2641,6 @@ typedef enum {
  * @rssi_diff:                  RSSI difference for the AP to be better over the
  *                              current AP to avoid ping pong effects
  * @good_rssi_roam:             Lazy Roam
- * @is_5g_pref_enabled:         5GHz BSSID preference feature enable/disable.
  * @bg_scan_bad_rssi_thresh:    Bad RSSI threshold to perform bg scan.
  * @bad_rssi_thresh_offset_2g:  Offset from Bad RSSI threshold for 2G to 5G Roam
  * @bg_scan_client_bitmap:      Bitmap to identify the client scans to snoop.
@@ -2668,7 +2667,6 @@ struct roam_ext_params {
 	int alert_rssi_threshold;
 	int rssi_diff;
 	int good_rssi_roam;
-	bool is_5g_pref_enabled;
 	int dense_rssi_thresh_offset;
 	int dense_min_aps_cnt;
 	int initial_dense_status;
@@ -2795,7 +2793,7 @@ struct lca_disallow_config_params {
 
 /**
  * struct mawc_params - Motion Aided Wireless Connectivity configuration
- * @MAWCEnabled: Global configuration for MAWC (Roaming/PNO/ExtScan)
+ * @mawc_enabled: Global configuration for MAWC (Roaming/PNO/ExtScan)
  * @mawc_roam_enabled: MAWC roaming enable/disable
  * @mawc_roam_traffic_threshold: Traffic threshold in kBps for MAWC roaming
  * @mawc_roam_ap_rssi_threshold: AP RSSI threshold for MAWC roaming

+ 0 - 5
core/mac/inc/wni_cfg.h

@@ -62,7 +62,6 @@ enum {
 	WNI_CFG_QOS_ENABLED,
 	WNI_CFG_HCF_ENABLED,
 	WNI_CFG_RSN_ENABLED,
-	WNI_CFG_MAX_NUM_PRE_AUTH,
 	WNI_CFG_HEART_BEAT_THRESHOLD,
 	WNI_CFG_PROBE_AFTER_HB_FAIL_TIMEOUT,
 	WNI_CFG_MANUFACTURER_NAME,
@@ -606,10 +605,6 @@ enum {
 #define WNI_CFG_BACKGROUND_SCAN_PERIOD_STAMAX    180000
 #define WNI_CFG_BACKGROUND_SCAN_PERIOD_STADEF    5000
 
-#define WNI_CFG_MAX_NUM_PRE_AUTH_STAMIN    0
-#define WNI_CFG_MAX_NUM_PRE_AUTH_STAMAX    256
-#define WNI_CFG_MAX_NUM_PRE_AUTH_STADEF    64
-
 #define WNI_CFG_HEART_BEAT_THRESHOLD_STAMIN    0
 #define WNI_CFG_HEART_BEAT_THRESHOLD_STAMAX    65535
 #define WNI_CFG_HEART_BEAT_THRESHOLD_STADEF    40

+ 0 - 8
core/mac/src/cfg/cfgUtil/cfg.txt

@@ -872,14 +872,6 @@ LIM
 * Max number of Preauthentication
 *
 
-WNI_CFG_MAX_NUM_PRE_AUTH    I    4    8
-V    RW    NP  RESTART
-NONE
-0    256    64
-V    RW    NP  RESTART
-NONE
-0    256    64
-
 *
 * Preauthentication Cleanup Timeout (kilo usec)
 *

+ 0 - 1
core/mac/src/cfg/cfg_param_name.c

@@ -77,7 +77,6 @@ const char *cfg_get_string(uint16_t cfg_id)
 	CASE_RETURN_STRING(WNI_CFG_QOS_ENABLED);
 	CASE_RETURN_STRING(WNI_CFG_HCF_ENABLED);
 	CASE_RETURN_STRING(WNI_CFG_RSN_ENABLED);
-	CASE_RETURN_STRING(WNI_CFG_MAX_NUM_PRE_AUTH);
 	CASE_RETURN_STRING(WNI_CFG_HEART_BEAT_THRESHOLD);
 	CASE_RETURN_STRING(WNI_CFG_PROBE_AFTER_HB_FAIL_TIMEOUT);
 	CASE_RETURN_STRING(WNI_CFG_MANUFACTURER_NAME);

+ 0 - 6
core/mac/src/cfg/cfg_proc_msg.c

@@ -208,12 +208,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
 	WNI_CFG_RSN_ENABLED_STAMIN,
 	WNI_CFG_RSN_ENABLED_STAMAX,
 	WNI_CFG_RSN_ENABLED_STADEF},
-	{WNI_CFG_MAX_NUM_PRE_AUTH,
-	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
-	CFG_CTL_RESTART,
-	WNI_CFG_MAX_NUM_PRE_AUTH_STAMIN,
-	WNI_CFG_MAX_NUM_PRE_AUTH_STAMAX,
-	WNI_CFG_MAX_NUM_PRE_AUTH_STADEF},
 	{WNI_CFG_HEART_BEAT_THRESHOLD,
 	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
 	CFG_CTL_NTF_LIM,

+ 2 - 2
core/mac/src/pe/lim/lim_admit_control.c

@@ -897,7 +897,7 @@ lim_send_hal_msg_add_ts(tpAniSirGlobal pMac,
 	pAddTsParam->tsm_interval = tsm_interval;
 #endif
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
-	if (pMac->roam.configParam.isRoamOffloadEnabled &&
+	if (pMac->mlme_cfg->lfr.lfr3_roaming_offload &&
 	    psessionEntry->is11Rconnection)
 		pAddTsParam->setRICparams = 1;
 #endif
@@ -968,7 +968,7 @@ lim_send_hal_msg_del_ts(tpAniSirGlobal pMac,
 			delts.tsinfo.traffic.userPrio;
 
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
-	if (pMac->roam.configParam.isRoamOffloadEnabled &&
+	if (pMac->mlme_cfg->lfr.lfr3_roaming_offload &&
 	    psessionEntry->is11Rconnection) {
 		qdf_mem_copy(&pDelTsParam->delTsInfo, &delts,
 			     sizeof(tSirDeltsReqInfo));

+ 2 - 2
core/mac/src/pe/lim/lim_ft.c

@@ -1054,8 +1054,8 @@ QDF_STATUS lim_process_ft_aggr_qos_req(tpAniSirGlobal pMac, uint32_t *pMsgBuf)
 	}
 
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
-	if (!pMac->roam.configParam.isRoamOffloadEnabled ||
-	    (pMac->roam.configParam.isRoamOffloadEnabled &&
+	if (!pMac->mlme_cfg->lfr.lfr3_roaming_offload ||
+	    (pMac->mlme_cfg->lfr.lfr3_roaming_offload &&
 	     !psessionEntry->is11Rconnection))
 #endif
 	{

+ 1 - 4
core/mac/src/pe/lim/lim_process_auth_frame.c

@@ -456,10 +456,7 @@ static void lim_process_auth_frame_type1(tpAniSirGlobal mac_ctx,
 			return;
 		}
 	}
-	if (wlan_cfg_get_int(mac_ctx, WNI_CFG_MAX_NUM_PRE_AUTH,
-				(uint32_t *) &maxnum_preauth) != QDF_STATUS_SUCCESS)
-		pe_warn("could not retrieve MaxNumPreAuth");
-
+	maxnum_preauth = mac_ctx->mlme_cfg->lfr.max_num_pre_auth;
 	if (mac_ctx->lim.gLimNumPreAuthContexts == maxnum_preauth &&
 			!lim_delete_open_auth_pre_auth_node(mac_ctx)) {
 		pe_err("Max no of preauth context reached");

+ 1 - 4
core/mac/src/pe/lim/lim_process_mlm_req_messages.c

@@ -1175,10 +1175,7 @@ static void lim_process_mlm_auth_req(tpAniSirGlobal mac_ctx, uint32_t *msg)
 						eSIR_MAC_SUCCESS_STATUS;
 		goto end;
 	} else {
-		if (wlan_cfg_get_int(mac_ctx, WNI_CFG_MAX_NUM_PRE_AUTH,
-			(uint32_t *) &num_preauth_ctx) != QDF_STATUS_SUCCESS)
-			pe_warn("Could not retrieve NumPreAuthLimit from CFG");
-
+		num_preauth_ctx = mac_ctx->mlme_cfg->lfr.max_num_pre_auth;
 		if (mac_ctx->lim.gLimNumPreAuthContexts == num_preauth_ctx) {
 			pe_warn("Number of pre-auth reached max limit");
 			/* Return Auth confirm with reject code */

+ 1 - 3
core/mac/src/pe/lim/lim_timer_utils.c

@@ -247,9 +247,7 @@ uint32_t lim_create_timers(tpAniSirGlobal pMac)
 	}
 
 	/* Alloc and init table for the preAuth timer list */
-	if (wlan_cfg_get_int(pMac, WNI_CFG_MAX_NUM_PRE_AUTH,
-			     &cfgValue) != QDF_STATUS_SUCCESS)
-		pe_err("could not retrieve mac preauth value");
+	cfgValue = pMac->mlme_cfg->lfr.max_num_pre_auth;
 	pMac->lim.gLimPreAuthTimerTable.numEntry = cfgValue;
 	pMac->lim.gLimPreAuthTimerTable.pTable =
 		qdf_mem_malloc(cfgValue * sizeof(tLimPreAuthNode *));

+ 1 - 14
core/sme/inc/csr_api.h

@@ -1115,7 +1115,6 @@ typedef struct tagCsrConfigParam {
 	struct mawc_params csr_mawc_config;
 	uint8_t isFastTransitionEnabled;
 	uint8_t RoamRssiDiff;
-	int32_t rssi_abs_thresh;
 	bool isWESModeEnabled;
 	tCsrNeighborRoamConfigParams neighborRoamConfig;
 	/*
@@ -1181,18 +1180,12 @@ typedef struct tagCsrConfigParam {
 	uint8_t cc_switch_mode;
 #endif
 	uint8_t allowDFSChannelRoam;
-#ifdef WLAN_FEATURE_ROAM_OFFLOAD
-	bool isRoamOffloadEnabled;
-#endif
 	bool obssEnabled;
 	uint8_t conc_custom_rule1;
 	uint8_t conc_custom_rule2;
 	uint8_t is_sta_connection_in_5gz_enabled;
 
 	uint8_t max_scan_count;
-	bool early_stop_scan_enable;
-	int8_t early_stop_scan_min_threshold;
-	int8_t early_stop_scan_max_threshold;
 	int8_t first_scan_bucket_threshold;
 	uint8_t fEnableDebugLog;
 	uint8_t max_intf_count;
@@ -1207,7 +1200,6 @@ typedef struct tagCsrConfigParam {
 	uint32_t auto_bmps_timer_val;
 	uint32_t dual_mac_feature_disable;
 	uint32_t sta_sap_scc_on_dfs_chan;
-	uint32_t roam_dense_traffic_thresh;
 	uint32_t roam_dense_rssi_thresh_offset;
 	uint32_t roam_dense_min_aps;
 	int8_t roam_bg_scan_bad_rssi_thresh;
@@ -1230,9 +1222,7 @@ typedef struct tagCsrConfigParam {
 	bool enable_fatal_event;
 	enum scan_dwelltime_adaptive_mode scan_adaptive_dwell_mode;
 	enum scan_dwelltime_adaptive_mode scan_adaptive_dwell_mode_nc;
-	enum scan_dwelltime_adaptive_mode roamscan_adaptive_dwell_mode;
 	struct csr_sta_roam_policy_params sta_roam_policy_params;
-	struct wmi_per_roam_config per_roam_config;
 	bool enable_bcast_probe_rsp;
 	bool is_fils_enabled;
 #ifdef WLAN_FEATURE_11AX
@@ -1244,9 +1234,6 @@ typedef struct tagCsrConfigParam {
 	uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL];
 	uint16_t pkt_err_disconn_th;
 	bool is_force_1x1;
-	uint32_t disallow_duration;
-	uint32_t rssi_channel_penalization;
-	uint32_t num_disallowed_aps;
 	struct sir_score_config bss_score_params;
 	uint8_t oce_feature_bitmap;
 	uint32_t btm_offload_config;
@@ -1266,7 +1253,7 @@ typedef struct tagCsrUpdateConfigParam {
 } tCsrUpdateConfigParam;
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
 #define csr_roamIsRoamOffloadEnabled(pMac) \
-	(pMac->roam.configParam.isRoamOffloadEnabled)
+	(pMac->mlme_cfg->lfr.lfr3_roaming_offload)
 #define DEFAULT_REASSOC_FAILURE_TIMEOUT 1000
 #else
 #define csr_roamIsRoamOffloadEnabled(pMac)  false

+ 0 - 14
core/sme/inc/csr_internal.h

@@ -65,11 +65,6 @@
 	( \
 	  (((pMac)->roam.configParam.nSelect5GHzMargin) ? true : false) \
 	)
-#define CSR_IS_SELECT_5G_PREFERRED(pMac) \
-	( \
-	  (((pMac)->roam.configParam.roam_params.is_5g_pref_enabled) ? \
-	   true : false) \
-	)
 #define CSR_IS_ROAM_PREFER_5GHZ(pMac)	\
 	( \
 	  (((pMac)->roam.configParam.nRoamPrefer5GHz) ? true : false) \
@@ -475,7 +470,6 @@ struct csr_config {
 #endif
 	uint8_t isFastTransitionEnabled;
 	uint8_t RoamRssiDiff;
-	int32_t rssi_abs_thresh;
 	bool nRoamPrefer5GHz;
 	bool nRoamIntraBand;
 	bool isWESModeEnabled;
@@ -534,9 +528,6 @@ struct csr_config {
 	uint8_t conc_custom_rule2;
 	uint8_t is_sta_connection_in_5gz_enabled;
 	struct roam_ext_params roam_params;
-	bool early_stop_scan_enable;
-	int8_t early_stop_scan_min_threshold;
-	int8_t early_stop_scan_max_threshold;
 	bool ignore_peer_ht_opmode;
 	bool enable_edca_params;
 	uint32_t edca_vo_cwmin;
@@ -555,9 +546,7 @@ struct csr_config {
 	bool vendor_vht_sap;
 	enum scan_dwelltime_adaptive_mode scan_adaptive_dwell_mode;
 	enum scan_dwelltime_adaptive_mode scan_adaptive_dwell_mode_nc;
-	enum scan_dwelltime_adaptive_mode roamscan_adaptive_dwell_mode;
 	struct csr_sta_roam_policy_params sta_roam_policy;
-	struct wmi_per_roam_config per_roam_config;
 	bool enable_bcast_probe_rsp;
 	bool is_fils_enabled;
 #ifdef WLAN_FEATURE_11AX
@@ -566,9 +555,6 @@ struct csr_config {
 #endif
 	uint16_t pkt_err_disconn_th;
 	bool is_force_1x1;
-	uint32_t disallow_duration;
-	uint32_t rssi_channel_penalization;
-	uint32_t num_disallowed_aps;
 	uint16_t wlm_latency_enable;
 	uint16_t wlm_latency_level;
 	uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL];

+ 0 - 1
core/sme/inc/csr_neighbor_roam.h

@@ -43,7 +43,6 @@ typedef enum {
 
 /* Parameters that are obtained from CFG */
 typedef struct sCsrNeighborRoamCfgParams {
-	uint8_t maxNeighborRetries;
 	uint32_t neighborScanPeriod;
 	uint32_t neighbor_scan_min_period;
 	tCsrChannelInfo channelInfo;

+ 0 - 11
core/sme/inc/sme_api.h

@@ -2071,17 +2071,6 @@ QDF_STATUS sme_get_peer_info_ext(tHalHandle hal,
 		void (*callbackfn)(struct sir_peer_info_ext_resp *param,
 			void *pcontext));
 
-/**
- * sme_set_5g_band_pref() - sme api to set 5Ghz preference
- * @hal: hal handle for getting global mac struct
- * @pref_params: preference info request struct
- *
- * This function will set 5Ghz preference for STA connection
- *
- * Return: None
- */
-void sme_set_5g_band_pref(tHalHandle hal_handle,
-			  struct sme_5g_band_pref_params *pref_params);
 /**
  * sme_get_chain_rssi() - Get chain rssi
  * @hal: Global HAL handle

+ 7 - 80
core/sme/src/common/sme_api.c

@@ -1002,21 +1002,21 @@ QDF_STATUS sme_update_roam_params(tHalHandle hal,
 	roam_params_dst = &mac_ctx->roam.configParam.roam_params;
 	switch (update_param) {
 	case REASON_ROAM_EXT_SCAN_PARAMS_CHANGED:
-		roam_params_dst->raise_rssi_thresh_5g =
+		mac_ctx->mlme_cfg->lfr.rssi_boost_threshold_5g =
 			roam_params_src->raise_rssi_thresh_5g;
-		roam_params_dst->drop_rssi_thresh_5g =
+		mac_ctx->mlme_cfg->lfr.rssi_penalize_threshold_5g =
 			roam_params_src->drop_rssi_thresh_5g;
-		roam_params_dst->raise_factor_5g =
+		mac_ctx->mlme_cfg->lfr.rssi_boost_factor_5g =
 			roam_params_src->raise_factor_5g;
-		roam_params_dst->drop_factor_5g =
+		mac_ctx->mlme_cfg->lfr.rssi_penalize_factor_5g =
 			roam_params_src->drop_factor_5g;
-		roam_params_dst->max_raise_rssi_5g =
+		mac_ctx->mlme_cfg->lfr.max_rssi_boost_5g =
 			roam_params_src->max_raise_rssi_5g;
-		roam_params_dst->max_drop_rssi_5g =
+		mac_ctx->mlme_cfg->lfr.max_rssi_penalize_5g =
 			roam_params_src->max_drop_rssi_5g;
 		roam_params_dst->alert_rssi_threshold =
 			roam_params_src->alert_rssi_threshold;
-		roam_params_dst->is_5g_pref_enabled = true;
+		mac_ctx->mlme_cfg->lfr.enable_5g_band_pref = true;
 		break;
 	case REASON_ROAM_SET_SSID_ALLOWED:
 		qdf_mem_set(&roam_params_dst->ssid_allowed_list, 0,
@@ -12057,36 +12057,6 @@ QDF_STATUS sme_power_debug_stats_req(tHalHandle hal, void (*callback_fn)
 #endif
 
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
-/*
- * sme_update_roam_offload_enabled() - enable/disable roam offload feaure
- *  It is used at in the REG_DYNAMIC_VARIABLE macro definition of
- *
- * hHal - The handle returned by mac_open.
- * nRoamOffloadEnabled - The bool to update with
- * Return QDF_STATUS_SUCCESS - SME update config successfully.
- *	   Other status means SME is failed to update.
- */
-
-QDF_STATUS sme_update_roam_offload_enabled(tHalHandle hHal,
-					   bool nRoamOffloadEnabled)
-{
-	tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
-	QDF_STATUS status = QDF_STATUS_SUCCESS;
-
-	status = sme_acquire_global_lock(&pMac->sme);
-	if (QDF_IS_STATUS_SUCCESS(status)) {
-		QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
-			  "%s: LFR3:gRoamOffloadEnabled is changed from %d to %d",
-			  __func__, pMac->roam.configParam.isRoamOffloadEnabled,
-			  nRoamOffloadEnabled);
-		pMac->roam.configParam.isRoamOffloadEnabled =
-			nRoamOffloadEnabled;
-		sme_release_global_lock(&pMac->sme);
-	}
-
-	return status;
-}
-
 /**
  * sme_update_roam_key_mgmt_offload_enabled() - enable/disable key mgmt offload
  * This is a synchronous call
@@ -14903,49 +14873,6 @@ bool sme_roam_is_ese_assoc(struct csr_roam_info *roam_info)
 	return roam_info->isESEAssoc;
 }
 #endif
-/**
- * sme_set_5g_band_pref(): If 5G preference is enabled,set boost/drop
- * params from ini.
- * @hal_handle: Handle returned by mac_open
- * @5g_pref_params: pref params from ini.
- *
- * Returns: None
- */
-void sme_set_5g_band_pref(tHalHandle hal_handle,
-			  struct sme_5g_band_pref_params *pref_params)
-{
-
-	tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal_handle);
-	struct roam_ext_params *roam_params;
-	QDF_STATUS status    = QDF_STATUS_SUCCESS;
-
-	if (!pref_params) {
-		QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
-			  "Invalid 5G pref params!");
-		return;
-	}
-	status = sme_acquire_global_lock(&mac_ctx->sme);
-	if (QDF_STATUS_SUCCESS == status) {
-		roam_params = &mac_ctx->roam.configParam.roam_params;
-		roam_params->raise_rssi_thresh_5g =
-				pref_params->rssi_boost_threshold_5g;
-		roam_params->raise_factor_5g =
-				pref_params->rssi_boost_factor_5g;
-		roam_params->max_raise_rssi_5g =
-				pref_params->max_rssi_boost_5g;
-		roam_params->drop_rssi_thresh_5g =
-				pref_params->rssi_penalize_threshold_5g;
-		roam_params->drop_factor_5g =
-				pref_params->rssi_penalize_factor_5g;
-		roam_params->max_drop_rssi_5g =
-				pref_params->max_rssi_penalize_5g;
-
-		sme_release_global_lock(&mac_ctx->sme);
-	} else
-		QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
-			  "Unable to acquire global sme lock");
-}
-
 
 bool sme_neighbor_roam_is11r_assoc(tHalHandle hal_ctx, uint8_t session_id)
 {

+ 69 - 159
core/sme/src/csr/csr_api_roam.c

@@ -1179,7 +1179,7 @@ QDF_STATUS csr_update_channel_list(tpAniSirGlobal pMac)
 
 	csr_add_social_channels(pMac, pChanList, pScan, &num_channel);
 
-	if (pMac->roam.configParam.early_stop_scan_enable)
+	if (pMac->mlme_cfg->lfr.early_stop_scan_enable)
 		csr_roam_sort_channel_for_early_stop(pMac, pChanList,
 						     num_channel);
 	else
@@ -1711,7 +1711,6 @@ static void init_config_param(tpAniSirGlobal pMac)
 	pMac->roam.configParam.neighborRoamConfig.nMaxNeighborRetries = 3;
 	pMac->roam.configParam.neighborRoamConfig.nNeighborLookupRssiThreshold =
 		120;
-	pMac->roam.configParam.neighborRoamConfig.rssi_thresh_offset_5g = 0;
 	pMac->roam.configParam.neighborRoamConfig.nOpportunisticThresholdDiff =
 		30;
 	pMac->roam.configParam.neighborRoamConfig.nRoamRescanRssiDiff = 5;
@@ -1748,15 +1747,6 @@ static void init_config_param(tpAniSirGlobal pMac)
 	pMac->roam.configParam.nInitialDwellTime = 0;
 	pMac->roam.configParam.initial_scan_no_dfs_chnl = 0;
 	pMac->roam.configParam.csr_mawc_config.mawc_enabled = true;
-	pMac->roam.configParam.csr_mawc_config.mawc_roam_enabled = true;
-	pMac->roam.configParam.csr_mawc_config.mawc_roam_traffic_threshold =
-		MAWC_ROAM_TRAFFIC_THRESHOLD_DEFAULT;
-	pMac->roam.configParam.csr_mawc_config.mawc_roam_ap_rssi_threshold =
-		MAWC_ROAM_AP_RSSI_THRESHOLD_DEFAULT;
-	pMac->roam.configParam.csr_mawc_config.mawc_roam_rssi_high_adjust =
-		MAWC_ROAM_RSSI_HIGH_ADJUST_DEFAULT;
-	pMac->roam.configParam.csr_mawc_config.mawc_roam_rssi_low_adjust =
-		MAWC_ROAM_RSSI_LOW_ADJUST_DEFAULT;
 
 	qdf_mem_zero(&pMac->roam.configParam.bss_score_params,
 		     sizeof(struct sir_score_config));
@@ -2766,6 +2756,24 @@ void csr_set_11k_offload_config_param(struct csr_config *csr_config,
 		max_neighbor_report_req_cap;
 }
 
+static void
+csr_copy_mawc_config(tpAniSirGlobal pMac,
+		     struct mawc_params *mawc_config)
+{
+	mawc_config->mawc_enabled =
+		pMac->roam.configParam.csr_mawc_config.mawc_enabled;
+	mawc_config->mawc_roam_enabled =
+		pMac->mlme_cfg->lfr.mawc_roam_enabled;
+	mawc_config->mawc_roam_traffic_threshold =
+		pMac->mlme_cfg->lfr.mawc_roam_traffic_threshold;
+	mawc_config->mawc_roam_ap_rssi_threshold =
+		pMac->mlme_cfg->lfr.mawc_roam_ap_rssi_threshold;
+	mawc_config->mawc_roam_rssi_high_adjust =
+		pMac->mlme_cfg->lfr.mawc_roam_rssi_high_adjust;
+	mawc_config->mawc_roam_rssi_low_adjust =
+		pMac->mlme_cfg->lfr.mawc_roam_rssi_low_adjust;
+}
+
 QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 					   tCsrConfigParam *pParam)
 {
@@ -2891,10 +2899,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 				pParam->nScanResultAgeCount;
 		}
 
-		pMac->first_scan_bucket_threshold =
-			pParam->first_scan_bucket_threshold;
 		csr_assign_rssi_for_category(pMac,
-			pMac->first_scan_bucket_threshold,
+			pMac->mlme_cfg->lfr.first_scan_bucket_threshold,
 			pParam->bCatRssiOffset);
 		pMac->roam.configParam.fSupplicantCountryCodeHasPriority =
 			pParam->fSupplicantCountryCodeHasPriority;
@@ -2926,8 +2932,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 		pMac->roam.configParam.isFastTransitionEnabled =
 			pParam->isFastTransitionEnabled;
 		pMac->roam.configParam.RoamRssiDiff = pParam->RoamRssiDiff;
-		pMac->roam.configParam.rssi_abs_thresh =
-						pParam->rssi_abs_thresh;
 		pMac->roam.configParam.nRoamPrefer5GHz =
 			pParam->nRoamPrefer5GHz;
 		pMac->roam.configParam.nRoamIntraBand = pParam->nRoamIntraBand;
@@ -2942,9 +2946,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 			pParam->bFastRoamInConIniFeatureEnabled;
 		pMac->roam.configParam.isFastRoamIniFeatureEnabled =
 			pParam->isFastRoamIniFeatureEnabled;
-		qdf_mem_copy(&pMac->roam.configParam.csr_mawc_config,
-				&pParam->csr_mawc_config,
-				sizeof(pParam->csr_mawc_config));
+		pMac->roam.configParam.csr_mawc_config.mawc_enabled =
+			pParam->csr_mawc_config.mawc_enabled;
 #ifdef FEATURE_WLAN_ESE
 		pMac->roam.configParam.isEseIniFeatureEnabled =
 			pParam->isEseIniFeatureEnabled;
@@ -2961,8 +2964,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 		sme_debug("nNeighborLookupRssiThreshold: %d",
 			pMac->roam.configParam.neighborRoamConfig.
 			nNeighborLookupRssiThreshold);
-		sme_debug("rssi_thresh_offset_5g: %d",
-			pMac->roam.configParam.neighborRoamConfig.rssi_thresh_offset_5g);
 		sme_debug("nOpportunisticThresholdDiff: %d",
 			pMac->roam.configParam.neighborRoamConfig.
 			nOpportunisticThresholdDiff);
@@ -2975,9 +2976,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 		sme_debug("nNeighborScanMaxChanTime: %d",
 			pMac->roam.configParam.neighborRoamConfig.
 			nNeighborScanMaxChanTime);
-		sme_debug("nMaxNeighborRetries: %d",
-			pMac->roam.configParam.neighborRoamConfig.
-			nMaxNeighborRetries);
 		sme_debug("nNeighborResultsRefreshPeriod: %d",
 			pMac->roam.configParam.neighborRoamConfig.
 			nNeighborResultsRefreshPeriod);
@@ -3069,10 +3067,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 #endif
 		pMac->roam.configParam.allowDFSChannelRoam =
 			pParam->allowDFSChannelRoam;
-#ifdef WLAN_FEATURE_ROAM_OFFLOAD
-		pMac->roam.configParam.isRoamOffloadEnabled =
-			pParam->isRoamOffloadEnabled;
-#endif
 		pMac->roam.configParam.obssEnabled = pParam->obssEnabled;
 		pMac->roam.configParam.vendor_vht_sap =
 			pParam->vendor_vht_sap;
@@ -3083,61 +3077,15 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 		pMac->roam.configParam.is_sta_connection_in_5gz_enabled =
 			pParam->is_sta_connection_in_5gz_enabled;
 
-		pMac->roam.configParam.early_stop_scan_enable =
-			pParam->early_stop_scan_enable;
-		pMac->roam.configParam.early_stop_scan_min_threshold =
-			pParam->early_stop_scan_min_threshold;
-		pMac->roam.configParam.early_stop_scan_max_threshold =
-			pParam->early_stop_scan_max_threshold;
 		pMac->isCoalesingInIBSSAllowed =
 			pParam->isCoalesingInIBSSAllowed;
 
-		pMac->roam.configParam.roam_params.dense_rssi_thresh_offset =
-			pParam->roam_dense_rssi_thresh_offset;
-		pMac->roam.configParam.roam_params.dense_min_aps_cnt =
-			pParam->roam_dense_min_aps;
-		pMac->roam.configParam.roam_params.traffic_threshold =
-			pParam->roam_dense_traffic_thresh;
-
-		pMac->roam.configParam.roam_params.bg_scan_bad_rssi_thresh =
-			pParam->roam_bg_scan_bad_rssi_thresh;
-		pMac->roam.configParam.roam_params.bg_scan_client_bitmap =
-			pParam->roam_bg_scan_client_bitmap;
-		pMac->roam.configParam.roam_params.
-			roam_bad_rssi_thresh_offset_2g =
-			pParam->roam_bad_rssi_thresh_offset_2g;
-
 		pMac->roam.configParam.enable_ftopen =
 			pParam->enable_ftopen;
 		pMac->roam.configParam.scan_adaptive_dwell_mode =
 			pParam->scan_adaptive_dwell_mode;
 		pMac->roam.configParam.scan_adaptive_dwell_mode_nc =
 			pParam->scan_adaptive_dwell_mode_nc;
-		pMac->roam.configParam.roamscan_adaptive_dwell_mode =
-			pParam->roamscan_adaptive_dwell_mode;
-
-		pMac->roam.configParam.per_roam_config.enable =
-			pParam->per_roam_config.enable;
-		pMac->roam.configParam.per_roam_config.tx_high_rate_thresh =
-			pParam->per_roam_config.tx_high_rate_thresh;
-		pMac->roam.configParam.per_roam_config.rx_high_rate_thresh =
-			pParam->per_roam_config.rx_high_rate_thresh;
-		pMac->roam.configParam.per_roam_config.tx_low_rate_thresh =
-			pParam->per_roam_config.tx_low_rate_thresh;
-		pMac->roam.configParam.per_roam_config.rx_low_rate_thresh =
-			pParam->per_roam_config.rx_low_rate_thresh;
-		pMac->roam.configParam.per_roam_config.tx_rate_thresh_percnt =
-			pParam->per_roam_config.tx_rate_thresh_percnt;
-		pMac->roam.configParam.per_roam_config.rx_rate_thresh_percnt =
-			pParam->per_roam_config.rx_rate_thresh_percnt;
-		pMac->roam.configParam.per_roam_config.per_rest_time =
-			pParam->per_roam_config.per_rest_time;
-		pMac->roam.configParam.per_roam_config.tx_per_mon_time =
-			pParam->per_roam_config.tx_per_mon_time;
-		pMac->roam.configParam.per_roam_config.rx_per_mon_time =
-			pParam->per_roam_config.rx_per_mon_time;
-		pMac->roam.configParam.per_roam_config.min_candidate_rssi =
-			pParam->per_roam_config.min_candidate_rssi;
 
 		pMac->fEnableDebugLog = pParam->fEnableDebugLog;
 
@@ -3168,12 +3116,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 			pParam->dual_mac_feature_disable;
 		pMac->sta_sap_scc_on_dfs_chan =
 			pParam->sta_sap_scc_on_dfs_chan;
-		pMac->roam.configParam.early_stop_scan_enable =
-			pParam->early_stop_scan_enable;
-		pMac->roam.configParam.early_stop_scan_min_threshold =
-			pParam->early_stop_scan_min_threshold;
-		pMac->roam.configParam.early_stop_scan_max_threshold =
-			pParam->early_stop_scan_max_threshold;
 		pMac->roam.configParam.enable_edca_params =
 			pParam->enable_edca_params;
 		pMac->roam.configParam.edca_vo_cwmin = pParam->edca_vo_cwmin;
@@ -3204,12 +3146,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 			pParam->enable_bcast_probe_rsp;
 		pMac->roam.configParam.is_fils_enabled =
 			pParam->is_fils_enabled;
-		pMac->roam.configParam.disallow_duration =
-			pParam->disallow_duration;
-		pMac->roam.configParam.rssi_channel_penalization =
-			pParam->rssi_channel_penalization;
-		pMac->roam.configParam.num_disallowed_aps =
-			pParam->num_disallowed_aps;
 		pMac->roam.configParam.wlm_latency_enable =
 			pParam->wlm_latency_enable;
 		pMac->roam.configParam.wlm_latency_level =
@@ -3343,7 +3279,6 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
 	pParam->enable2x2 = cfg_params->enable2x2;
 	pParam->isFastTransitionEnabled = cfg_params->isFastTransitionEnabled;
 	pParam->RoamRssiDiff = cfg_params->RoamRssiDiff;
-	pParam->rssi_abs_thresh = cfg_params->rssi_abs_thresh;
 	pParam->nRoamPrefer5GHz = cfg_params->nRoamPrefer5GHz;
 	pParam->nRoamIntraBand = cfg_params->nRoamIntraBand;
 	pParam->isWESModeEnabled = cfg_params->isWESModeEnabled;
@@ -3387,19 +3322,12 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
 	pParam->allowDFSChannelRoam = cfg_params->allowDFSChannelRoam;
 	pParam->nInitialDwellTime = cfg_params->nInitialDwellTime;
 	pParam->initial_scan_no_dfs_chnl = cfg_params->initial_scan_no_dfs_chnl;
-#ifdef WLAN_FEATURE_ROAM_OFFLOAD
-	pParam->isRoamOffloadEnabled = cfg_params->isRoamOffloadEnabled;
-#endif
 	csr_set_channels(pMac, pParam);
 	pParam->obssEnabled = cfg_params->obssEnabled;
 	pParam->vendor_vht_sap =
 		pMac->roam.configParam.vendor_vht_sap;
-	pParam->roam_dense_rssi_thresh_offset =
-		cfg_params->roam_params.dense_rssi_thresh_offset;
 	pParam->roam_dense_min_aps =
 			cfg_params->roam_params.dense_min_aps_cnt;
-	pParam->roam_dense_traffic_thresh =
-			cfg_params->roam_params.traffic_threshold;
 
 	pParam->roam_bg_scan_bad_rssi_thresh =
 		cfg_params->roam_params.bg_scan_bad_rssi_thresh;
@@ -3413,38 +3341,12 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
 			cfg_params->scan_adaptive_dwell_mode;
 	pParam->scan_adaptive_dwell_mode_nc =
 			cfg_params->scan_adaptive_dwell_mode_nc;
-	pParam->roamscan_adaptive_dwell_mode =
-			cfg_params->roamscan_adaptive_dwell_mode;
-
-	pParam->per_roam_config.enable = cfg_params->per_roam_config.enable;
-	pParam->per_roam_config.tx_high_rate_thresh =
-			cfg_params->per_roam_config.tx_high_rate_thresh;
-	pParam->per_roam_config.rx_high_rate_thresh =
-			cfg_params->per_roam_config.rx_high_rate_thresh;
-	pParam->per_roam_config.tx_low_rate_thresh =
-			cfg_params->per_roam_config.tx_low_rate_thresh;
-	pParam->per_roam_config.rx_low_rate_thresh =
-			cfg_params->per_roam_config.rx_low_rate_thresh;
-	pParam->per_roam_config.tx_rate_thresh_percnt =
-			cfg_params->per_roam_config.tx_rate_thresh_percnt;
-	pParam->per_roam_config.rx_rate_thresh_percnt =
-			cfg_params->per_roam_config.rx_rate_thresh_percnt;
-	pParam->per_roam_config.per_rest_time =
-			cfg_params->per_roam_config.per_rest_time;
-	pParam->per_roam_config.tx_per_mon_time =
-			cfg_params->per_roam_config.tx_per_mon_time;
-	pParam->per_roam_config.rx_per_mon_time =
-			cfg_params->per_roam_config.rx_per_mon_time;
-	pParam->per_roam_config.min_candidate_rssi =
-			cfg_params->per_roam_config.min_candidate_rssi;
 
 	pParam->conc_custom_rule1 = cfg_params->conc_custom_rule1;
 	pParam->conc_custom_rule2 = cfg_params->conc_custom_rule2;
 	pParam->is_sta_connection_in_5gz_enabled =
 		cfg_params->is_sta_connection_in_5gz_enabled;
 	pParam->max_scan_count = pMac->scan.max_scan_count;
-	pParam->first_scan_bucket_threshold =
-		pMac->first_scan_bucket_threshold;
 #ifdef FEATURE_AP_MCC_CH_AVOIDANCE
 	pParam->sap_channel_avoidance = pMac->sap.sap_channel_avoidance;
 #endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
@@ -3463,12 +3365,6 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
 	pParam->fEnableDebugLog = pMac->fEnableDebugLog;
 	pParam->f_sta_miracast_mcc_rest_time_val =
 		pMac->f_sta_miracast_mcc_rest_time_val;
-	pParam->early_stop_scan_enable =
-		pMac->roam.configParam.early_stop_scan_enable;
-	pParam->early_stop_scan_min_threshold =
-		pMac->roam.configParam.early_stop_scan_min_threshold;
-	pParam->early_stop_scan_max_threshold =
-		pMac->roam.configParam.early_stop_scan_max_threshold;
 	pParam->ignore_peer_ht_opmode =
 		pMac->roam.configParam.ignore_peer_ht_opmode;
 	pParam->enableHtSmps = pMac->roam.configParam.enableHtSmps;
@@ -3501,19 +3397,9 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
 		pMac->roam.configParam.enable_bcast_probe_rsp;
 	pParam->is_fils_enabled =
 		pMac->roam.configParam.is_fils_enabled;
-	pParam->disallow_duration =
-		pMac->roam.configParam.disallow_duration;
-	pParam->rssi_channel_penalization =
-		pMac->roam.configParam.rssi_channel_penalization;
-	pParam->num_disallowed_aps =
-		pMac->roam.configParam.num_disallowed_aps;
 	pParam->oce_feature_bitmap =
 		pMac->roam.configParam.oce_feature_bitmap;
 	pParam->roam_force_rssi_trigger = cfg_params->roam_force_rssi_trigger;
-	qdf_mem_copy(&pParam->csr_mawc_config,
-		&pMac->roam.configParam.csr_mawc_config,
-		sizeof(pParam->csr_mawc_config));
-
 	qdf_mem_copy(&pParam->bss_score_params,
 		     &pMac->roam.configParam.bss_score_params,
 		     sizeof(struct sir_score_config));
@@ -18772,7 +18658,8 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
 	req_buf->RoamRescanRssiDiff =
 		roam_info->cfgParams.nRoamRescanRssiDiff;
 	req_buf->RoamRssiDiff = mac_ctx->roam.configParam.RoamRssiDiff;
-	req_buf->rssi_abs_thresh = mac_ctx->roam.configParam.rssi_abs_thresh;
+	req_buf->rssi_abs_thresh =
+		mac_ctx->mlme_cfg->lfr.roam_rssi_abs_threshold;
 	req_buf->reason = reason;
 	req_buf->NeighborScanTimerPeriod =
 		roam_info->cfgParams.neighborScanPeriod;
@@ -18792,9 +18679,7 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
 		roam_info->cfgParams.nRoamBmissFinalBcnt;
 	req_buf->RoamBeaconRssiWeight =
 		roam_info->cfgParams.nRoamBeaconRssiWeight;
-	qdf_mem_copy(&req_buf->mawc_roam_params,
-		&mac_ctx->roam.configParam.csr_mawc_config,
-		sizeof(req_buf->mawc_roam_params));
+	csr_copy_mawc_config(mac_ctx, &req_buf->mawc_roam_params);
 	sme_debug("MAWC:global=%d,roam=%d,traffic=%d,ap_rssi=%d,high=%d,low=%d",
 			req_buf->mawc_roam_params.mawc_enabled,
 			req_buf->mawc_roam_params.mawc_roam_enabled,
@@ -18913,19 +18798,19 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
 	req_buf->allowDFSChannelRoam =
 	mac_ctx->roam.configParam.allowDFSChannelRoam;
 	req_buf->early_stop_scan_enable =
-		mac_ctx->roam.configParam.early_stop_scan_enable;
+		mac_ctx->mlme_cfg->lfr.early_stop_scan_enable;
 	req_buf->early_stop_scan_min_threshold =
-		mac_ctx->roam.configParam.early_stop_scan_min_threshold;
+		mac_ctx->mlme_cfg->lfr.early_stop_scan_min_threshold;
 	req_buf->early_stop_scan_max_threshold =
-		mac_ctx->roam.configParam.early_stop_scan_max_threshold;
+		mac_ctx->mlme_cfg->lfr.early_stop_scan_max_threshold;
 	req_buf->roamscan_adaptive_dwell_mode =
-		mac_ctx->roam.configParam.roamscan_adaptive_dwell_mode;
+		mac_ctx->mlme_cfg->lfr.adaptive_roamscan_dwell_mode;
 	req_buf->lca_config_params.disallow_duration =
-		mac_ctx->roam.configParam.disallow_duration;
+		mac_ctx->mlme_cfg->lfr.lfr3_disallow_duration;
 	req_buf->lca_config_params.rssi_channel_penalization =
-		mac_ctx->roam.configParam.rssi_channel_penalization;
+		mac_ctx->mlme_cfg->lfr.lfr3_rssi_channel_penalization;
 	req_buf->lca_config_params.num_disallowed_aps =
-		mac_ctx->roam.configParam.num_disallowed_aps;
+		mac_ctx->mlme_cfg->lfr.lfr3_num_disallowed_aps;
 
 	/* For RSO Stop, we need to notify FW to deinit BTM */
 	if (command == ROAM_SCAN_OFFLOAD_STOP)
@@ -19501,27 +19386,27 @@ csr_create_per_roam_request(tpAniSirGlobal mac_ctx,
 	}
 	req_buf->vdev_id = session_id;
 	req_buf->per_config.enable =
-		mac_ctx->roam.configParam.per_roam_config.enable;
+		mac_ctx->mlme_cfg->lfr.per_roam_enable;
 	req_buf->per_config.tx_high_rate_thresh =
-		mac_ctx->roam.configParam.per_roam_config.tx_high_rate_thresh;
+		mac_ctx->mlme_cfg->lfr.per_roam_config_high_rate_th;
 	req_buf->per_config.rx_high_rate_thresh =
-		mac_ctx->roam.configParam.per_roam_config.rx_high_rate_thresh;
+		mac_ctx->mlme_cfg->lfr.per_roam_config_high_rate_th;
 	req_buf->per_config.tx_low_rate_thresh =
-		mac_ctx->roam.configParam.per_roam_config.tx_low_rate_thresh;
+		mac_ctx->mlme_cfg->lfr.per_roam_config_low_rate_th;
 	req_buf->per_config.rx_low_rate_thresh =
-		mac_ctx->roam.configParam.per_roam_config.rx_low_rate_thresh;
+		mac_ctx->mlme_cfg->lfr.per_roam_config_low_rate_th;
 	req_buf->per_config.per_rest_time =
-		mac_ctx->roam.configParam.per_roam_config.per_rest_time;
+		mac_ctx->mlme_cfg->lfr.per_roam_rest_time;
 	req_buf->per_config.tx_per_mon_time =
-		mac_ctx->roam.configParam.per_roam_config.tx_per_mon_time;
+		mac_ctx->mlme_cfg->lfr.per_roam_monitor_time;
 	req_buf->per_config.rx_per_mon_time =
-		mac_ctx->roam.configParam.per_roam_config.rx_per_mon_time;
+		mac_ctx->mlme_cfg->lfr.per_roam_monitor_time;
 	req_buf->per_config.tx_rate_thresh_percnt =
-		mac_ctx->roam.configParam.per_roam_config.tx_rate_thresh_percnt;
+		mac_ctx->mlme_cfg->lfr.per_roam_config_rate_th_percent;
 	req_buf->per_config.rx_rate_thresh_percnt =
-		mac_ctx->roam.configParam.per_roam_config.rx_rate_thresh_percnt;
+		mac_ctx->mlme_cfg->lfr.per_roam_config_rate_th_percent;
 	req_buf->per_config.min_candidate_rssi =
-		mac_ctx->roam.configParam.per_roam_config.min_candidate_rssi;
+		mac_ctx->mlme_cfg->lfr.per_roam_min_candidate_rssi;
 
 	QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
 		"PER based roaming configuaration enable: %d vdev: %d high_rate_thresh: %d low_rate_thresh: %d rate_thresh_percnt: %d per_rest_time: %d monitor_time: %d min cand rssi: %d",
@@ -19560,7 +19445,7 @@ csr_roam_offload_per_scan(tpAniSirGlobal mac_ctx, uint8_t session_id)
 	if (roam_info->last_sent_cmd == ROAM_SCAN_OFFLOAD_STOP)
 		return QDF_STATUS_SUCCESS;
 
-	if (!mac_ctx->roam.configParam.per_roam_config.enable) {
+	if (!mac_ctx->mlme_cfg->lfr.per_roam_enable) {
 		QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
 			 "PER based roaming is disabled in configuration");
 		return QDF_STATUS_SUCCESS;
@@ -19981,6 +19866,31 @@ csr_roam_offload_scan(tpAniSirGlobal mac_ctx, uint8_t session_id,
 	sme_debug("5g offset threshold: %d", req_buf->rssi_thresh_offset_5g);
 	qdf_mem_copy(roam_params_dst, roam_params_src,
 		sizeof(*roam_params_dst));
+	roam_params_dst->traffic_threshold =
+		mac_ctx->mlme_cfg->lfr.roam_dense_traffic_threshold;
+	roam_params_dst->dense_rssi_thresh_offset =
+		mac_ctx->mlme_cfg->lfr.roam_dense_rssi_thre_offset;
+	roam_params_dst->dense_min_aps_cnt =
+		mac_ctx->mlme_cfg->lfr.roam_dense_min_aps;
+	roam_params_dst->bg_scan_bad_rssi_thresh =
+		mac_ctx->mlme_cfg->lfr.roam_bg_scan_bad_rssi_threshold;
+	roam_params_dst->bg_scan_client_bitmap =
+		mac_ctx->mlme_cfg->lfr.roam_bg_scan_client_bitmap;
+	roam_params_dst->roam_bad_rssi_thresh_offset_2g =
+		mac_ctx->mlme_cfg->lfr.roam_bg_scan_bad_rssi_offset_2g;
+	roam_params_dst->raise_rssi_thresh_5g =
+		mac_ctx->mlme_cfg->lfr.rssi_boost_threshold_5g;
+	roam_params_dst->drop_rssi_thresh_5g =
+		mac_ctx->mlme_cfg->lfr.rssi_penalize_threshold_5g;
+	roam_params_dst->raise_factor_5g =
+		mac_ctx->mlme_cfg->lfr.rssi_boost_factor_5g;
+	roam_params_dst->drop_factor_5g =
+		mac_ctx->mlme_cfg->lfr.rssi_penalize_factor_5g;
+	roam_params_dst->max_raise_rssi_5g =
+		mac_ctx->mlme_cfg->lfr.max_rssi_boost_5g;
+	roam_params_dst->max_drop_rssi_5g =
+		mac_ctx->mlme_cfg->lfr.max_rssi_penalize_5g;
+
 	/*
 	 * rssi_diff which is updated via framework is equivalent to the
 	 * INI RoamRssiDiff parameter and hence should be updated.

+ 1 - 5
core/sme/src/csr/csr_neighbor_roam.c

@@ -1186,9 +1186,6 @@ static QDF_STATUS csr_neighbor_roam_init11r_assoc_info(tpAniSirGlobal pMac)
 		pFTRoamInfo = &pNeighborRoamInfo->FTRoamInfo;
 
 		pNeighborRoamInfo->is11rAssoc = false;
-		pNeighborRoamInfo->cfgParams.maxNeighborRetries =
-			pMac->roam.configParam.neighborRoamConfig.
-			nMaxNeighborRetries;
 
 		pFTRoamInfo->neighborReportTimeout =
 			CSR_NEIGHBOR_ROAM_REPORT_QUERY_TIMEOUT;
@@ -1238,12 +1235,11 @@ QDF_STATUS csr_neighbor_roam_init(tpAniSirGlobal pMac, uint8_t sessionId)
 	pNeighborRoamInfo->cfgParams.minChannelScanTime =
 		pMac->roam.configParam.neighborRoamConfig.
 		nNeighborScanMinChanTime;
-	pNeighborRoamInfo->cfgParams.maxNeighborRetries = 0;
 	pNeighborRoamInfo->cfgParams.neighborLookupThreshold =
 		pMac->roam.configParam.neighborRoamConfig.
 		nNeighborLookupRssiThreshold;
 	pNeighborRoamInfo->cfgParams.rssi_thresh_offset_5g =
-		pMac->roam.configParam.neighborRoamConfig.rssi_thresh_offset_5g;
+		pMac->mlme_cfg->lfr.rssi_threshold_offset_5g;
 	pNeighborRoamInfo->cfgParams.delay_before_vdev_stop =
 		pMac->roam.configParam.neighborRoamConfig.
 		delay_before_vdev_stop;