1 /*
2  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
3  * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 
18 #ifndef _WLAN_MGMT_TXRX_RX_REO_UTILS_API_H_
19 #define _WLAN_MGMT_TXRX_RX_REO_UTILS_API_H_
20 
21 /**
22  * DOC:  wlan_mgmt_txrx_rx_reo_utils_api.h
23  *
24  * management rx-reorder public APIs and structures
25  * for umac converged components.
26  *
27  */
28 
29 #include <wlan_mgmt_txrx_utils_api.h>
30 
31 struct mgmt_txrx_priv_pdev_context;
32 
33 #ifdef WLAN_MGMT_RX_REO_SUPPORT
34 /**
35  * wlan_get_mlo_link_id_from_pdev() - Helper API to get the MLO HW link id
36  * from the pdev object.
37  * @pdev: Pointer to pdev object
38  *
39  * Return: On success returns the MLO HW link id corresponding to the pdev
40  * object. On failure returns -1.
41  */
42 int8_t
43 wlan_get_mlo_link_id_from_pdev(struct wlan_objmgr_pdev *pdev);
44 
45 /**
46  * wlan_get_mlo_grp_id_from_pdev() - Helper API to get the MLO Group id
47  * from the pdev object.
48  * @pdev: Pointer to pdev object
49  *
50  * Return: On success returns the MLO Group id corresponding to the pdev
51  * object. On failure returns -1.
52  */
53 int8_t
54 wlan_get_mlo_grp_id_from_pdev(struct wlan_objmgr_pdev *pdev);
55 
56 /**
57  * wlan_get_pdev_from_mlo_link_id() - Helper API to get the pdev
58  * object from the link id.
59  * @mlo_link_id: MLO HW link id
60  * @ml_grp_id: MLO Group id which it belongs to
61  * @refdbgid: Reference debug id
62  *
63  * Return: On success returns the pdev object from the link_id.
64  * On failure returns NULL.
65  */
66 struct wlan_objmgr_pdev *
67 wlan_get_pdev_from_mlo_link_id(uint8_t mlo_link_id, uint8_t ml_grp_id,
68 			       wlan_objmgr_ref_dbgid refdbgid);
69 #else
70 static inline int8_t
wlan_get_mlo_link_id_from_pdev(struct wlan_objmgr_pdev * pdev)71 wlan_get_mlo_link_id_from_pdev(struct wlan_objmgr_pdev *pdev)
72 {
73 	return 0;
74 }
75 static inline int8_t
wlan_get_mlo_grp_id_from_pdev(struct wlan_objmgr_pdev * pdev)76 wlan_get_mlo_grp_id_from_pdev(struct wlan_objmgr_pdev *pdev)
77 {
78 	return 0;
79 }
80 static inline struct wlan_objmgr_pdev *
wlan_get_pdev_from_mlo_link_id(uint8_t mlo_link_id,uint8_t ml_grp_id,wlan_objmgr_ref_dbgid refdbgid)81 wlan_get_pdev_from_mlo_link_id(uint8_t mlo_link_id, uint8_t ml_grp_id,
82 			       wlan_objmgr_ref_dbgid refdbgid)
83 {
84 	return NULL;
85 }
86 #endif
87 
88 #ifdef WLAN_MGMT_RX_REO_SUPPORT
89 
90 #define mgmt_rx_reo_alert(params...) \
91 	QDF_TRACE_FATAL(QDF_MODULE_ID_MGMT_RX_REO, params)
92 #define mgmt_rx_reo_err(params...) \
93 	QDF_TRACE_ERROR(QDF_MODULE_ID_MGMT_RX_REO, params)
94 #define mgmt_rx_reo_warn(params...) \
95 	QDF_TRACE_WARN(QDF_MODULE_ID_MGMT_RX_REO, params)
96 #define mgmt_rx_reo_notice(params...) \
97 	QDF_TRACE_INFO(QDF_MODULE_ID_MGMT_RX_REO, params)
98 #define mgmt_rx_reo_info(params...) \
99 	QDF_TRACE_INFO(QDF_MODULE_ID_MGMT_RX_REO, params)
100 #define mgmt_rx_reo_debug(params...) \
101 	QDF_TRACE_DEBUG(QDF_MODULE_ID_MGMT_RX_REO, params)
102 
103 #define mgmt_rx_reo_alert_no_fl(params...) \
104 	QDF_TRACE_FATAL_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params)
105 #define mgmt_rx_reo_err_no_fl(params...) \
106 	QDF_TRACE_ERROR_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params)
107 #define mgmt_rx_reo_warn_no_fl(params...) \
108 	QDF_TRACE_WARN_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params)
109 #define mgmt_rx_reo_notice_no_fl(params...) \
110 	QDF_TRACE_INFO_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params)
111 #define mgmt_rx_reo_info_no_fl(params...) \
112 	QDF_TRACE_INFO_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params)
113 #define mgmt_rx_reo_debug_no_fl(params...) \
114 	QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params)
115 
116 #define mgmt_rx_reo_alert_rl(params...) \
117 	QDF_TRACE_FATAL_RL(QDF_MODULE_ID_MGMT_RX_REO, params)
118 #define mgmt_rx_reo_err_rl(params...) \
119 	QDF_TRACE_ERROR_RL(QDF_MODULE_ID_MGMT_RX_REO, params)
120 #define mgmt_rx_reo_warn_rl(params...) \
121 	QDF_TRACE_WARN_RL(QDF_MODULE_ID_MGMT_RX_REO, params)
122 #define mgmt_rx_reo_notice_rl(params...) \
123 	QDF_TRACE_INFO_RL(QDF_MODULE_ID_MGMT_RX_REO, params)
124 #define mgmt_rx_reo_info_rl(params...) \
125 	QDF_TRACE_INFO_RL(QDF_MODULE_ID_MGMT_RX_REO, params)
126 #define mgmt_rx_reo_debug_rl(params...) \
127 	QDF_TRACE_DEBUG_RL(QDF_MODULE_ID_MGMT_RX_REO, params)
128 
129 #ifdef WLAN_MGMT_RX_REO_SIM_SUPPORT
130 /**
131  * wlan_mgmt_rx_reo_sim_start() - Helper API to start management Rx reorder
132  * simulation
133  *
134  * This API starts the simulation framework which mimics the management frame
135  * generation by target. MAC HW is modelled as a kthread. FW and host layers
136  * are modelled as an ordered work queues.
137  * @ml_grp_id: MLO group id of the required mlo context
138  *
139  * Return: QDF_STATUS
140  */
141 QDF_STATUS
142 wlan_mgmt_rx_reo_sim_start(uint8_t ml_grp_id);
143 
144 /**
145  * wlan_mgmt_rx_reo_sim_stop() - Helper API to stop management Rx reorder
146  * simulation
147  * @ml_grp_id: MLO group id of the required mlo context
148  *
149  * This API stops the simulation framework which mimics the management frame
150  * generation by target. MAC HW is modelled as a kthread. FW and host layers
151  * are modelled as an ordered work queues.
152  *
153  * Return: QDF_STATUS
154  */
155 QDF_STATUS
156 wlan_mgmt_rx_reo_sim_stop(uint8_t ml_grp_id);
157 #else
158 /**
159  * wlan_mgmt_rx_reo_sim_start() - Helper API to start management Rx reorder
160  * simulation
161  * @ml_grp_id: MLO group id of the required mlo context
162  *
163  * Error print is added to indicate that simulation framework is not compiled.
164  *
165  * Return: QDF_STATUS_E_INVAL
166  */
167 static inline QDF_STATUS
wlan_mgmt_rx_reo_sim_start(uint8_t ml_grp_id)168 wlan_mgmt_rx_reo_sim_start(uint8_t ml_grp_id)
169 {
170 	mgmt_txrx_err("Mgmt rx reo simulation is not compiled");
171 
172 	return QDF_STATUS_E_INVAL;
173 }
174 
175 /**
176  * wlan_mgmt_rx_reo_sim_stop() - Helper API to stop management Rx reorder
177  * simulation
178  * @ml_grp_id: MLO group id of the required mlo context
179  *
180  * Error print is added to indicate that simulation framework is not compiled.
181  *
182  * Return: QDF_STATUS_E_INVAL
183  */
184 static inline QDF_STATUS
wlan_mgmt_rx_reo_sim_stop(uint8_t ml_grp_id)185 wlan_mgmt_rx_reo_sim_stop(uint8_t ml_grp_id)
186 {
187 	mgmt_txrx_err("Mgmt rx reo simulation is not compiled");
188 
189 	return QDF_STATUS_E_INVAL;
190 }
191 #endif /* WLAN_MGMT_RX_REO_SIM_SUPPORT */
192 
193 /**
194  * wlan_mgmt_rx_reo_get_snapshot_info() - Get snapshot info
195  * @pdev: pointer to pdev
196  * @id: snapshot identifier
197  * @snapshot_info: pointer to snapshot info
198  *
199  * Helper API to get information of snapshot @id for pdev @pdev.
200  *
201  * Return: QDF_STATUS
202  */
203 QDF_STATUS
204 wlan_mgmt_rx_reo_get_snapshot_info
205 			(struct wlan_objmgr_pdev *pdev,
206 			 enum mgmt_rx_reo_shared_snapshot_id id,
207 			 struct mgmt_rx_reo_snapshot_info *snapshot_info);
208 
209 /**
210  * wlan_mgmt_txrx_process_rx_frame() - API to process the incoming management
211  * frame
212  * @pdev: pointer to pdev
213  * @buf: pointer to buffer
214  * @mgmt_rx_params: pointer to management rx params
215  *
216  * API to process the incoming management frame.
217  *
218  * Return: QDF_STATUS
219  */
220 QDF_STATUS wlan_mgmt_txrx_process_rx_frame(
221 			struct wlan_objmgr_pdev *pdev,
222 			qdf_nbuf_t buf,
223 			struct mgmt_rx_event_params *mgmt_rx_params);
224 
225 /**
226  * wlan_mgmt_rx_reo_init() - Initializes the management rx-reorder module
227  *
228  * This function gets called from dispatcher init and initializes the management
229  * rx-reorder module.
230  *
231  * Return: QDF_STATUS
232  */
233 QDF_STATUS
234 wlan_mgmt_rx_reo_init(void);
235 
236 /**
237  * wlan_mgmt_rx_reo_deinit() - De initializes the management rx-reorder module
238  *
239  * This function gets called from dispatcher deinit and de initializes the
240  * management rx-reorder module.
241  *
242  * Return: QDF_STATUS
243  */
244 QDF_STATUS
245 wlan_mgmt_rx_reo_deinit(void);
246 
247 /**
248  * wlan_mgmt_rx_reo_validate_mlo_link_info() - Validate the MLO HW link
249  * related information extracted from the MLO global shared memory arena
250  * @psoc: pointer to psoc object
251  *
252  * This function validates the MLO HW link related information extracted from
253  * the MLO global shared memory arena. This includes number of active HW links
254  * and the valid link bitmap. Same information is available with MLO manager and
255  * it is considered as the source of truth.
256  *
257  * Return: QDF_STATUS
258  */
259 QDF_STATUS
260 wlan_mgmt_rx_reo_validate_mlo_link_info(struct wlan_objmgr_psoc *psoc);
261 
262 /**
263  * wlan_mgmt_rx_reo_pdev_obj_create_notification() - pdev create handler for
264  * management rx-reorder module
265  * @pdev: pointer to pdev object
266  * @mgmt_txrx_pdev_ctx: pdev private object of mgmt txrx module
267  *
268  * This function gets called from object manager when pdev is being created and
269  * creates management rx-reorder pdev context
270  *
271  * Return: QDF_STATUS
272  */
273 QDF_STATUS
274 wlan_mgmt_rx_reo_pdev_obj_create_notification(
275 			struct wlan_objmgr_pdev *pdev,
276 			struct mgmt_txrx_priv_pdev_context *mgmt_txrx_pdev_ctx);
277 
278 /**
279  * wlan_mgmt_rx_reo_pdev_obj_destroy_notification() - pdev destroy handler for
280  * management rx-reorder feature
281  * @pdev: pointer to pdev object
282  * @mgmt_txrx_pdev_ctx: pdev private object of mgmt txrx module
283  *
284  * This function gets called from object manager when pdev is being destroyed
285  * and destroys management rx-reorder pdev context
286  *
287  * Return: QDF_STATUS
288  */
289 QDF_STATUS
290 wlan_mgmt_rx_reo_pdev_obj_destroy_notification(
291 			struct wlan_objmgr_pdev *pdev,
292 			struct mgmt_txrx_priv_pdev_context *mgmt_txrx_pdev_ctx);
293 
294 /**
295  * wlan_mgmt_rx_reo_psoc_obj_create_notification() - psoc create handler for
296  * management rx-reorder module
297  * @psoc: pointer to psoc object
298  *
299  * This function gets called from object manager when psoc is being created.
300  *
301  * Return: QDF_STATUS
302  */
303 QDF_STATUS
304 wlan_mgmt_rx_reo_psoc_obj_create_notification(struct wlan_objmgr_psoc *psoc);
305 
306 /**
307  * wlan_mgmt_rx_reo_psoc_obj_destroy_notification() - psoc destroy handler for
308  * management rx-reorder feature
309  * @psoc: pointer to psoc object
310  *
311  * This function gets called from object manager when psoc is being destroyed.
312  *
313  * Return: QDF_STATUS
314  */
315 QDF_STATUS
316 wlan_mgmt_rx_reo_psoc_obj_destroy_notification(struct wlan_objmgr_psoc *psoc);
317 
318 /**
319  * wlan_mgmt_rx_reo_pdev_attach() - Initializes the per pdev data structures
320  * related to management rx-reorder module
321  * @pdev: pointer to pdev object
322  *
323  * Return: QDF_STATUS
324  */
325 QDF_STATUS wlan_mgmt_rx_reo_pdev_attach(struct wlan_objmgr_pdev *pdev);
326 
327 /**
328  * wlan_mgmt_rx_reo_psoc_attach() - Initializes the per psoc data structures
329  * related to management rx-reorder module
330  * @psoc: pointer to psoc object
331  *
332  * Return: QDF_STATUS
333  */
334 QDF_STATUS wlan_mgmt_rx_reo_psoc_attach(struct wlan_objmgr_psoc *psoc);
335 
336 /**
337  * wlan_mgmt_rx_reo_pdev_detach() - Clears the per pdev data structures related
338  * to management rx-reorder module
339  * @pdev: pointer to pdev object
340  *
341  * Return: QDF_STATUS
342  */
343 QDF_STATUS wlan_mgmt_rx_reo_pdev_detach(struct wlan_objmgr_pdev *pdev);
344 
345 /**
346  * wlan_mgmt_rx_reo_psoc_detach() - Clears the per psoc data structures related
347  * to management rx-reorder module
348  * @psoc: pointer to psoc object
349  *
350  * Return: QDF_STATUS
351  */
352 QDF_STATUS wlan_mgmt_rx_reo_psoc_detach(struct wlan_objmgr_psoc *psoc);
353 
354 /**
355  * wlan_mgmt_rx_reo_is_feature_enabled_at_psoc() - Check if MGMT Rx REO feature
356  * is enabled on a given psoc
357  * @psoc: pointer to psoc object
358  *
359  * Return: true if the feature is enabled, else false
360  */
361 bool
362 wlan_mgmt_rx_reo_is_feature_enabled_at_psoc(struct wlan_objmgr_psoc *psoc);
363 
364 /**
365  * wlan_mgmt_rx_reo_is_feature_enabled_at_pdev() - Check if MGMT Rx REO feature
366  * is enabled on a given pdev
367  * @pdev: pointer to pdev object
368  *
369  * Return: true if the feature is enabled, else false
370  */
371 bool
372 wlan_mgmt_rx_reo_is_feature_enabled_at_pdev(struct wlan_objmgr_pdev *pdev);
373 
374 /**
375  * wlan_mgmt_rx_reo_is_scheduler_enabled_at_psoc() - Check if MGMT Rx REO
376  * scheduler is enabled on a given psoc
377  * @psoc: pointer to psoc object
378  *
379  * Return: true if the scheduler is enabled, else false
380  */
381 bool
382 wlan_mgmt_rx_reo_is_scheduler_enabled_at_psoc(struct wlan_objmgr_psoc *psoc);
383 
384 /**
385  * wlan_mgmt_rx_reo_is_scheduler_enabled_at_pdev() - Check if MGMT Rx REO
386  * scheduler is enabled on a given pdev
387  * @pdev: pointer to pdev object
388  *
389  * Return: true if the scheduler is enabled, else false
390  */
391 bool
392 wlan_mgmt_rx_reo_is_scheduler_enabled_at_pdev(struct wlan_objmgr_pdev *pdev);
393 
394 /**
395  * wlan_mgmt_rx_reo_get_pkt_ctr_delta_thresh() - Get the packet counter delta
396  * threshold value
397  * @psoc: pointer to psoc object
398  *
399  * Return: Packet counter delta threshold value
400  */
401 uint16_t
402 wlan_mgmt_rx_reo_get_pkt_ctr_delta_thresh(struct wlan_objmgr_psoc *psoc);
403 
404 #ifdef WLAN_MGMT_RX_REO_DEBUG_SUPPORT
405 /**
406  * wlan_mgmt_rx_reo_get_ingress_frame_debug_list_size() - Get the size of
407  * ingress  frame debug list
408  * @psoc: pointer to psoc object
409  *
410  * Return: Size of ingress frame debug list
411  */
412 uint16_t
413 wlan_mgmt_rx_reo_get_ingress_frame_debug_list_size
414 					(struct wlan_objmgr_psoc *psoc);
415 
416 /**
417  * wlan_mgmt_rx_reo_get_egress_frame_debug_list_size() - Get the size of
418  * egress  frame debug list
419  * @psoc: pointer to psoc object
420  *
421  * Return: Size of egress frame debug list
422  */
423 uint16_t
424 wlan_mgmt_rx_reo_get_egress_frame_debug_list_size
425 					(struct wlan_objmgr_psoc *psoc);
426 
427 /**
428  * wlan_mgmt_rx_reo_get_scheduler_debug_list_size() - Get the size of
429  * scheduler debug list
430  * @psoc: pointer to psoc object
431  *
432  * Return: Size of scheduler debug list
433  */
434 uint16_t
435 wlan_mgmt_rx_reo_get_scheduler_debug_list_size(struct wlan_objmgr_psoc *psoc);
436 #else
437 static inline uint16_t
wlan_mgmt_rx_reo_get_ingress_frame_debug_list_size(struct wlan_objmgr_psoc * psoc)438 wlan_mgmt_rx_reo_get_ingress_frame_debug_list_size(struct wlan_objmgr_psoc *psoc)
439 {
440 	return 0;
441 }
442 
443 static inline uint16_t
wlan_mgmt_rx_reo_get_egress_frame_debug_list_size(struct wlan_objmgr_psoc * psoc)444 wlan_mgmt_rx_reo_get_egress_frame_debug_list_size(struct wlan_objmgr_psoc *psoc)
445 {
446 	return 0;
447 }
448 
449 static inline uint16_t
wlan_mgmt_rx_reo_get_scheduler_debug_list_size(struct wlan_objmgr_psoc * psoc)450 wlan_mgmt_rx_reo_get_scheduler_debug_list_size(struct wlan_objmgr_psoc *psoc)
451 {
452 	return 0;
453 }
454 #endif /* WLAN_MGMT_RX_REO_DEBUG_SUPPORT */
455 
456 /**
457  * wlan_mgmt_rx_reo_is_simulation_in_progress() - API to check whether
458  * simulation is in progress
459  * @ml_grp_id: MLO group id of the required mlo context
460  *
461  * Return: true if simulation is in progress, else false
462  */
463 bool
464 wlan_mgmt_rx_reo_is_simulation_in_progress(uint8_t ml_grp_id);
465 
466 /**
467  * wlan_mgmt_rx_reo_print_ingress_frame_stats() - Helper API to print
468  * stats related to incoming management frames
469  * @ml_grp_id: MLO group id of the required mlo context
470  *
471  * This API prints stats related to management frames entering management
472  * Rx reorder module.
473  *
474  * Return: QDF_STATUS
475  */
476 QDF_STATUS
477 wlan_mgmt_rx_reo_print_ingress_frame_stats(uint8_t ml_grp_id);
478 
479 /**
480  * wlan_mgmt_rx_reo_print_ingress_frame_info() - Print the debug information
481  * about the latest frames entered the reorder module
482  * @ml_grp_id: MLO group id of the required mlo context
483  * @num_frames: Number of frames for which the debug information is to be
484  * printed. If @num_frames is 0, then debug information about all the frames
485  * in the ring buffer will be  printed.
486  *
487  * Return: QDF_STATUS of operation
488  */
489 QDF_STATUS
490 wlan_mgmt_rx_reo_print_ingress_frame_info(uint8_t ml_grp_id,
491 					  uint16_t num_frames);
492 
493 /**
494  * wlan_mgmt_rx_reo_print_egress_frame_stats() - Helper API to print
495  * stats related to outgoing management frames
496  * @ml_grp_id: MLO group id of the required mlo context
497  *
498  * This API prints stats related to management frames exiting management
499  * Rx reorder module.
500  *
501  * Return: QDF_STATUS
502  */
503 QDF_STATUS
504 wlan_mgmt_rx_reo_print_egress_frame_stats(uint8_t ml_grp_id);
505 
506 /**
507  * wlan_mgmt_rx_reo_print_egress_frame_info() - Print the debug information
508  * about the latest frames leaving the reorder module
509  * @num_frames: Number of frames for which the debug information is to be
510  * printed. If @num_frames is 0, then debug information about all the frames
511  * in the ring buffer will be  printed.
512  * @ml_grp_id: MLO group id of the required mlo context
513  *
514  * Return: QDF_STATUS of operation
515  */
516 QDF_STATUS
517 wlan_mgmt_rx_reo_print_egress_frame_info(uint8_t ml_grp_id,
518 					 uint16_t num_frames);
519 
520 /**
521  * wlan_mgmt_rx_reo_release_frames() - Release management frames which are ready
522  * for delivery
523  * @mlo_grp_id: MLO group ID
524  * @link_bitmap: Link bitmap
525  *
526  * Return: QDF_STATUS
527  */
528 QDF_STATUS
529 wlan_mgmt_rx_reo_release_frames(uint8_t mlo_grp_id, uint32_t link_bitmap);
530 #else
531 static inline QDF_STATUS
wlan_mgmt_rx_reo_validate_mlo_link_info(struct wlan_objmgr_psoc * psoc)532 wlan_mgmt_rx_reo_validate_mlo_link_info(struct wlan_objmgr_psoc *psoc)
533 {
534 	return QDF_STATUS_SUCCESS;
535 }
536 
537 /**
538  * wlan_mgmt_rx_reo_pdev_obj_create_notification() - pdev create handler for
539  * management rx-reorder feature
540  * @pdev: pointer to pdev object
541  * @mgmt_txrx_pdev_ctx: pdev private object of mgmt txrx module
542  *
543  * This function gets called from object manager when pdev is being created and
544  * creates management rx-reorder pdev context
545  *
546  * Return: QDF_STATUS
547  */
548 static inline QDF_STATUS
wlan_mgmt_rx_reo_pdev_obj_create_notification(struct wlan_objmgr_pdev * pdev,struct mgmt_txrx_priv_pdev_context * mgmt_txrx_pdev_ctx)549 wlan_mgmt_rx_reo_pdev_obj_create_notification(
550 			struct wlan_objmgr_pdev *pdev,
551 			struct mgmt_txrx_priv_pdev_context *mgmt_txrx_pdev_ctx)
552 {
553 	return QDF_STATUS_SUCCESS;
554 }
555 
556 /**
557  * wlan_mgmt_rx_reo_pdev_obj_destroy_notification() - pdev destroy handler for
558  * management rx-reorder feature
559  * @pdev: pointer to pdev object
560  * @mgmt_txrx_pdev_ctx: pdev private object of mgmt txrx module
561  *
562  * This function gets called from object manager when pdev is being destroyed
563  * and destroys management rx-reorder pdev context
564  *
565  * Return: QDF_STATUS
566  */
567 static inline QDF_STATUS
wlan_mgmt_rx_reo_pdev_obj_destroy_notification(struct wlan_objmgr_pdev * pdev,struct mgmt_txrx_priv_pdev_context * mgmt_txrx_pdev_ctx)568 wlan_mgmt_rx_reo_pdev_obj_destroy_notification(
569 			struct wlan_objmgr_pdev *pdev,
570 			struct mgmt_txrx_priv_pdev_context *mgmt_txrx_pdev_ctx)
571 {
572 	return QDF_STATUS_SUCCESS;
573 }
574 
575 /**
576  * wlan_mgmt_rx_reo_psoc_obj_create_notification() - psoc create handler for
577  * management rx-reorder module
578  * @psoc: pointer to psoc object
579  *
580  * This function gets called from object manager when psoc is being created.
581  *
582  * Return: QDF_STATUS
583  */
584 static inline QDF_STATUS
wlan_mgmt_rx_reo_psoc_obj_create_notification(struct wlan_objmgr_psoc * psoc)585 wlan_mgmt_rx_reo_psoc_obj_create_notification(struct wlan_objmgr_psoc *psoc)
586 {
587 	return QDF_STATUS_SUCCESS;
588 }
589 
590 /**
591  * wlan_mgmt_rx_reo_psoc_obj_destroy_notification() - psoc destroy handler for
592  * management rx-reorder feature
593  * @psoc: pointer to psoc object
594  *
595  * This function gets called from object manager when psoc is being destroyed.
596  *
597  * Return: QDF_STATUS
598  */
599 static inline QDF_STATUS
wlan_mgmt_rx_reo_psoc_obj_destroy_notification(struct wlan_objmgr_psoc * psoc)600 wlan_mgmt_rx_reo_psoc_obj_destroy_notification(struct wlan_objmgr_psoc *psoc)
601 {
602 	if (!psoc)
603 		return QDF_STATUS_E_FAILURE;
604 	return QDF_STATUS_SUCCESS;
605 }
606 
607 /**
608  * wlan_mgmt_rx_reo_pdev_attach() - Initializes the per pdev data structures
609  * related to management rx-reorder module
610  * @pdev: pointer to pdev object
611  *
612  * Return: QDF_STATUS
613  */
614 static inline QDF_STATUS
wlan_mgmt_rx_reo_pdev_attach(struct wlan_objmgr_pdev * pdev)615 wlan_mgmt_rx_reo_pdev_attach(struct wlan_objmgr_pdev *pdev)
616 {
617 	return QDF_STATUS_SUCCESS;
618 }
619 
620 /**
621  * wlan_mgmt_rx_reo_psoc_attach() - Initializes the per psoc data structures
622  * related to management rx-reorder module
623  * @psoc: pointer to psoc object
624  *
625  * Return: QDF_STATUS
626  */
627 static inline QDF_STATUS
wlan_mgmt_rx_reo_psoc_attach(struct wlan_objmgr_psoc * psoc)628 wlan_mgmt_rx_reo_psoc_attach(struct wlan_objmgr_psoc *psoc)
629 {
630 	return QDF_STATUS_SUCCESS;
631 }
632 
633 /**
634  * wlan_mgmt_rx_reo_pdev_detach() - Clears the per pdev data structures related
635  * to management rx-reorder module
636  * @pdev: pointer to pdev object
637  *
638  * Return: QDF_STATUS
639  */
640 static inline QDF_STATUS
wlan_mgmt_rx_reo_pdev_detach(struct wlan_objmgr_pdev * pdev)641 wlan_mgmt_rx_reo_pdev_detach(struct wlan_objmgr_pdev *pdev)
642 {
643 	return QDF_STATUS_SUCCESS;
644 }
645 
646 /**
647  * wlan_mgmt_rx_reo_psoc_detach() - Clears the per psoc data structures related
648  * to management rx-reorder module
649  * @psoc: pointer to psoc object
650  *
651  * Return: QDF_STATUS
652  */
653 static inline QDF_STATUS
wlan_mgmt_rx_reo_psoc_detach(struct wlan_objmgr_psoc * psoc)654 wlan_mgmt_rx_reo_psoc_detach(struct wlan_objmgr_psoc *psoc)
655 {
656 	return QDF_STATUS_SUCCESS;
657 }
658 
659 /**
660  * wlan_mgmt_rx_reo_init() - Initializes the management rx-reorder module
661  *
662  * This function gets called from dispatcher init and initializes the management
663  * rx-reorder module.
664  *
665  * Return: QDF_STATUS
666  */
667 static inline QDF_STATUS
wlan_mgmt_rx_reo_init(void)668 wlan_mgmt_rx_reo_init(void)
669 {
670 	return QDF_STATUS_SUCCESS;
671 }
672 
673 /**
674  * wlan_mgmt_rx_reo_deinit() - De initializes the management rx-reorder module
675  *
676  * This function gets called from dispatcher deinit and de initializes the
677  * management rx-reorder module.
678  *
679  * Return: QDF_STATUS
680  */
681 static inline QDF_STATUS
wlan_mgmt_rx_reo_deinit(void)682 wlan_mgmt_rx_reo_deinit(void)
683 {
684 	return QDF_STATUS_SUCCESS;
685 }
686 #endif /* WLAN_MGMT_RX_REO_SUPPORT */
687 #endif /* _WLAN_MGMT_TXRX_RX_REO_UTILS_API_H_ */
688