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