os_if_dp.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. /*
  2. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. /**
  19. * DOC: os_if_dp.h
  20. *
  21. *
  22. */
  23. #ifndef __OSIF_DP_H__
  24. #define __OSIF_DP_H__
  25. #include "wlan_dp_public_struct.h"
  26. #include <wlan_cfg80211.h>
  27. #ifdef WLAN_FEATURE_DYNAMIC_RX_AGGREGATION
  28. /**
  29. * enum qdisc_filter_status - QDISC filter status
  30. * @QDISC_FILTER_RTNL_LOCK_FAIL: rtnl lock acquire failed
  31. * @QDISC_FILTER_PRIO_MATCH: qdisc filter with priority match
  32. * @QDISC_FILTER_PRIO_MISMATCH: no filter match with configured priority
  33. */
  34. enum qdisc_filter_status {
  35. QDISC_FILTER_RTNL_LOCK_FAIL,
  36. QDISC_FILTER_PRIO_MATCH,
  37. QDISC_FILTER_PRIO_MISMATCH,
  38. };
  39. #endif
  40. /**
  41. * osif_dp_classify_pkt() - classify packet
  42. * @skb: sk buff
  43. *
  44. * Return: None
  45. */
  46. void osif_dp_classify_pkt(struct sk_buff *skb);
  47. /**
  48. * osif_dp_mark_pkt_type() - Mark pkt type in CB
  49. * @skb: sk buff
  50. *
  51. * Return: None
  52. */
  53. void osif_dp_mark_pkt_type(struct sk_buff *skb);
  54. /* wait time for nud stats in milliseconds */
  55. #define WLAN_WAIT_TIME_NUD_STATS 800
  56. /* nud stats skb max length */
  57. #define WLAN_NUD_STATS_LEN 800
  58. /* ARP packet type for NUD debug stats */
  59. #define WLAN_NUD_STATS_ARP_PKT_TYPE 1
  60. #define MAX_USER_COMMAND_SIZE 4096
  61. #define DNS_DOMAIN_NAME_MAX_LEN 255
  62. #define ICMPV6_ADDR_LEN 16
  63. #define CONNECTIVITY_CHECK_SET_ARP \
  64. QCA_WLAN_VENDOR_CONNECTIVITY_CHECK_SET_ARP
  65. #define CONNECTIVITY_CHECK_SET_DNS \
  66. QCA_WLAN_VENDOR_CONNECTIVITY_CHECK_SET_DNS
  67. #define CONNECTIVITY_CHECK_SET_TCP_HANDSHAKE \
  68. QCA_WLAN_VENDOR_CONNECTIVITY_CHECK_SET_TCP_HANDSHAKE
  69. #define CONNECTIVITY_CHECK_SET_ICMPV4 \
  70. QCA_WLAN_VENDOR_CONNECTIVITY_CHECK_SET_ICMPV4
  71. #define CONNECTIVITY_CHECK_SET_ICMPV6 \
  72. QCA_WLAN_VENDOR_CONNECTIVITY_CHECK_SET_ICMPV6
  73. #define CONNECTIVITY_CHECK_SET_TCP_SYN \
  74. QCA_WLAN_VENDOR_CONNECTIVITY_CHECK_SET_TCP_SYN
  75. #define CONNECTIVITY_CHECK_SET_TCP_SYN_ACK \
  76. QCA_WLAN_VENDOR_CONNECTIVITY_CHECK_SET_TCP_SYN_ACK
  77. #define CONNECTIVITY_CHECK_SET_TCP_ACK \
  78. QCA_WLAN_VENDOR_CONNECTIVITY_CHECK_SET_TCP_ACK
  79. /**
  80. * os_if_dp_register_txrx_callbacks() - Register TX/RX OSIF callbacks
  81. * @cb_obj: Call back object pointer for ops registration
  82. *
  83. * Return: None
  84. */
  85. void os_if_dp_register_txrx_callbacks(struct wlan_dp_psoc_callbacks *cb_obj);
  86. /**
  87. * os_if_dp_register_hdd_callbacks() - Register callback handlers
  88. * @psoc: Pointer to psoc context
  89. * @cb_obj: Callback object pointer
  90. *
  91. * Return: None
  92. */
  93. void os_if_dp_register_hdd_callbacks(struct wlan_objmgr_psoc *psoc,
  94. struct wlan_dp_psoc_callbacks *cb_obj);
  95. /**
  96. * osif_dp_nud_register_netevent_notifier() - Register netevent notifier
  97. * @psoc: Pointer to psoc context
  98. *
  99. * Return: 0 on success, error code on failure
  100. */
  101. int osif_dp_nud_register_netevent_notifier(struct wlan_objmgr_psoc *psoc);
  102. /**
  103. * osif_dp_nud_unregister_netevent_notifier() - Unregister netevent notifier
  104. * @psoc: Pointer to psoc context
  105. *
  106. * Return: None
  107. */
  108. void osif_dp_nud_unregister_netevent_notifier(struct wlan_objmgr_psoc *psoc);
  109. /**
  110. * osif_dp_get_nud_stats() - get arp stats command to firmware
  111. * @wiphy: pointer to wireless wiphy structure.
  112. * @vdev: pointer to vdev context.
  113. * @data: pointer to apfind configuration data.
  114. * @data_len: the length in byte of apfind data.
  115. *
  116. * This is called when wlan driver needs to get arp stats to
  117. * firmware.
  118. *
  119. * Return: An error code or 0 on success.
  120. */
  121. int osif_dp_get_nud_stats(struct wiphy *wiphy, struct wlan_objmgr_vdev *vdev,
  122. const void *data, int data_len);
  123. /**
  124. * osif_dp_set_nud_stats() - set arp stats command to firmware
  125. * @wiphy: pointer to wireless wiphy structure.
  126. * @vdev: pointer to wireless_dev structure.
  127. * @data: pointer to apfind configuration data.
  128. * @data_len: the length in byte of apfind data.
  129. *
  130. * This is called when wlan driver needs to send arp stats to
  131. * firmware.
  132. *
  133. * Return: An error code or 0 on success.
  134. */
  135. int osif_dp_set_nud_stats(struct wiphy *wiphy, struct wlan_objmgr_vdev *vdev,
  136. const void *data, int data_len);
  137. #endif /* __OSIF_DP_H__ */