1  /*
2   * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
3   * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
4   *
5   * Permission to use, copy, modify, and/or distribute this software for
6   * any purpose with or without fee is hereby granted, provided that the
7   * above copyright notice and this permission notice appear in all
8   * copies.
9   *
10   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11   * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12   * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13   * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14   * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15   * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16   * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17   * PERFORMANCE OF THIS SOFTWARE.
18   */
19  
20  #if !defined(CONFIG_P2P_H__)
21  #define CONFIG_P2P_H__
22  
23  #include "cfg_define.h"
24  #include "cfg_converged.h"
25  #include "qdf_types.h"
26  
27  /*
28   * <ini>
29   * gGoKeepAlivePeriod - P2P GO keep alive period.
30   * @Min: 1
31   * @Max: 65535
32   * @Default: 20
33   *
34   * This is P2P GO keep alive period.
35   *
36   * Related: None.
37   *
38   * Supported Feature: P2P
39   *
40   * Usage: External
41   *
42   * </ini>
43   */
44  #define CFG_GO_KEEP_ALIVE_PERIOD CFG_INI_UINT( \
45  	"gGoKeepAlivePeriod", \
46  	1, \
47  	65535, \
48  	20, \
49  	CFG_VALUE_OR_DEFAULT, \
50  	"P2P GO keep alive period")
51  
52  /*
53   * <ini>
54   * gGoLinkMonitorPeriod - period where link is idle and where
55   * we send NULL frame
56   * @Min: 3
57   * @Max: 50
58   * @Default: 10
59   *
60   * This is period where link is idle and where we send NULL frame for P2P GO.
61   *
62   * Related: None.
63   *
64   * Supported Feature: P2P
65   *
66   * Usage: External
67   *
68   * </ini>
69   */
70  #define CFG_GO_LINK_MONITOR_PERIOD CFG_INI_UINT( \
71  	"gGoLinkMonitorPeriod", \
72  	3, \
73  	50, \
74  	10, \
75  	CFG_VALUE_OR_DEFAULT, \
76  	"period where link is idle and where we send NULL frame")
77  
78  /*
79   * <ini>
80   * isP2pDeviceAddrAdministrated - Enables to derive the P2P MAC address from
81   * the primary MAC address
82   * @Min: 0
83   * @Max: 1
84   * @Default: 1
85   *
86   * This ini is used to enable/disable to derive the P2P MAC address from the
87   * primary MAC address.
88   *
89   * Related: None.
90   *
91   * Supported Feature: P2P
92   *
93   * Usage: External
94   *
95   * </ini>
96   */
97  #define CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED CFG_INI_BOOL( \
98  	"isP2pDeviceAddrAdministrated", \
99  	1, \
100  	"derive the P2P MAC address from the primary MAC address")
101  
102  /*
103   * <ini>
104   * action_frame_random_seq_num_enabled - Enables random sequence number
105   *                                       generation for action frames
106   * @Min: 0
107   * @Max: 1
108   * @Default: 1
109   *
110   * This ini is used to enable/disable random sequence number generation for
111   * action frames.
112   *
113   * Related: None.
114   *
115   * Supported Feature: P2P
116   *
117   * Usage: external
118   *
119   * </ini>
120   */
121  #define CFG_ACTION_FRAME_RANDOM_SEQ_NUM_ENABLED CFG_INI_BOOL( \
122  	"action_frame_random_seq_num_enabled", \
123  	1, \
124  	"Enable random seq nums for action frames")
125  
126  /*
127   * <ini>
128   * p2p_go_on_5ghz_indoor_chan - Allow P2P GO to operate on 5 GHz indoor channels
129   *
130   * @Min: 0
131   * @Max: 1
132   * @Default: 0
133   *
134   * This ini is used to enable/disable P2P-GO operation on 5 GHz
135   * indoor channels.
136   *
137   * Related: sta_sap_scc_on_indoor_channel, gindoor_channel_support
138   *
139   * Supported Feature: P2P GO
140   *
141   * Usage: external
142   *
143   * </ini>
144   */
145  #define CFG_P2P_GO_ON_5GHZ_INDOOR_CHANNEL CFG_INI_BOOL(\
146  					"p2p_go_on_5ghz_indoor_chan", \
147  					0, \
148  					"Allow P2P GO on 5 GHz indoor channels")
149  
150  /*
151   * <ini>
152   * p2p_go_ignore_non_p2p_probe_req - P2P GO ignore non-P2P probe req
153   *
154   * @Min: 0
155   * @Max: 1
156   * @Default: 0
157   *
158   * This ini is used to enable/disable P2P GO ignore non-P2P probe req and don't
159   * send probe rsp to non-p2p device like STA.
160   *
161   *
162   * Supported Feature: P2P GO
163   *
164   * Usage: external
165   *
166   * </ini>
167   */
168  #define CFG_GO_IGNORE_NON_P2P_PROBE_REQ CFG_INI_BOOL(\
169  					"go_ignore_non_p2p_probe_req", \
170  					0, \
171  					"P2P GO ignore non-P2P probe req")
172  
173  #define CFG_P2P_ALL \
174  	CFG(CFG_ACTION_FRAME_RANDOM_SEQ_NUM_ENABLED) \
175  	CFG(CFG_GO_KEEP_ALIVE_PERIOD) \
176  	CFG(CFG_GO_LINK_MONITOR_PERIOD) \
177  	CFG(CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED) \
178  	CFG(CFG_P2P_GO_ON_5GHZ_INDOOR_CHANNEL) \
179  	CFG(CFG_GO_IGNORE_NON_P2P_PROBE_REQ)
180  
181  #endif
182