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