/*
* Copyright (c) 2012 - 2018 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC: This file contains centralized definitions of converged configuration.
*/
#ifndef __CFG_NR_H
#define __CFG_NR_H
/*
*
* 11k_offload_enable_bitmask - 11K offload bitmask feature control
* @Min: 0
* @Max: 1
* @Default: 1
*
* Disabled when 0 and enabled when 1
* Usage: External
*
*
*/
#define CFG_OFFLOAD_11K_ENABLE_BITMASK CFG_INI_BOOL( \
"11k_offload_enable_bitmask", \
1, \
"11K offload bitmask feature control")
/*
*
* nr_offload_params_bitmask - bitmask to specify which of the
* neighbor report offload params are valid in the ini
* frame
* @Min: 0
* @Max: 63
* @Default: 63
*
* This ini specifies which of the neighbor report offload params are valid
* and should be considered by the FW. The bitmask is as follows
* B0: nr_offload_time_offset
* B1: nr_offload_low_rssi_offset
* B2: nr_offload_bmiss_count_trigger
* B3: nr_offload_per_threshold_offset
* B4: nr_offload_cache_timeout
* B5: nr_offload_max_req_cap
* B6-B7: Reserved
*
* Related : 11k_offload_enable_bitmask
*
* Usage: External
*
*
*/
#define CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK CFG_INI_UINT( \
"nr_offload_params_bitmask", \
0, \
63, \
63, \
CFG_VALUE_OR_DEFAULT, \
"Neighbor report offload params validity bitmask")
#define OFFLOAD_11K_BITMASK_NEIGHBOR_REPORT_REQUEST 0x1
/*
*
* nr_offload_time_offset - time interval in seconds after the
* neighbor report offload command to send the first neighbor report request
* frame
* @Min: 0
* @Max: 3600
* @Default: 30
*
* Related : nr_offload_params_bitmask
*
* Usage: External
*
*
*/
#define CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET CFG_INI_UINT( \
"nr_offload_time_offset", \
0, \
3600, \
30, \
CFG_VALUE_OR_DEFAULT, \
"Neighbor report time offset")
/*
*
* nr_offload_low_rssi_offset - offset from the roam RSSI threshold
* to trigger the neighbor report request frame (in dBm)
* @Min: 4
* @Max: 10
* @Default: 4
*
* Related : nr_offload_params_bitmask
*
* Usage: External
*
*
*/
#define CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET CFG_INI_UINT( \
"nr_offload_low_rssi_offset", \
4, \
10, \
4, \
CFG_VALUE_OR_DEFAULT, \
"Neighbor report low RSSI offset")
/*
*
* nr_offload_bmiss_count_trigger - Number of beacon miss events to
* trigger a neighbor report request frame
* @Min: 1
* @Max: 5
* @Default: 1
*
* Related : nr_offload_params_bitmask
*
* Usage: External
*
*
*/
#define CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER CFG_INI_UINT( \
"nr_offload_bmiss_count_trigger", \
1, \
5, \
1, \
CFG_VALUE_OR_DEFAULT, \
"Beacon miss count trigger for neighbor report req frame")
/*
*
* nr_offload_per_threshold_offset - offset from PER threshold to
* trigger a neighbor report request frame (in %)
* @Min: 5
* @Max: 20
* @Default: 5
*
* This ini is used to set the neighbor report offload parameter:
*
* Related : nr_offload_params_bitmask
*
* Usage: External
*
*
*/
#define CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET CFG_INI_UINT( \
"nr_offload_per_threshold_offset", \
5, \
20, \
5, \
CFG_VALUE_OR_DEFAULT, \
"PER threshold offset to trigger neighbor report req frame")
/*
*
* nr_offload_cache_timeout - time in seconds after which the
* neighbor report cache is marked as timed out and any of the triggers would
* cause a neighbor report request frame to be sent.
* @Min: 5
* @Max: 86400
* @Default: 1200
*
* Related : nr_offload_params_bitmask
*
* Usage: External
*
*
*/
#define CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT CFG_INI_UINT( \
"nr_offload_cache_timeout", \
5, \
86400, \
1200, \
CFG_VALUE_OR_DEFAULT, \
"Neighbor report cache timeout to trigger report req frame")
/*
*
* nr_offload_max_req_cap - Max number of neighbor
* report requests that can be sent to a connected peer in the current session.
* This counter is reset once a successful roam happens or at cache timeout
* @Min: 3
* @Max: 300
* @Default: 3
*
* Related : nr_offload_params_bitmask
*
* Usage: External
*
*
*/
#define CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP CFG_INI_UINT( \
"nr_offload_max_req_cap", \
3, \
300, \
3, \
CFG_VALUE_OR_DEFAULT, \
"Max neighbor report request to be sent to connected peer")
#define CFG_11K_ALL \
CFG(CFG_OFFLOAD_11K_ENABLE_BITMASK) \
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK) \
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET) \
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET) \
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER) \
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET) \
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT) \
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP)
#endif