xref: /OK3568_Linux_fs/external/rkwifibt/drivers/bcmdhd/dhd_wet.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * Wireless Ethernet (WET) interface
3  *
4  * Copyright (C) 2020, Broadcom.
5  *
6  *      Unless you and Broadcom execute a separate written software license
7  * agreement governing use of this software, this software is licensed to you
8  * under the terms of the GNU General Public License version 2 (the "GPL"),
9  * available at http://www.broadcom.com/licenses/GPLv2.php, with the
10  * following added to such license:
11  *
12  *      As a special exception, the copyright holders of this software give you
13  * permission to link this software with independent modules, and to copy and
14  * distribute the resulting executable under terms of your choice, provided that
15  * you also meet, for each linked independent module, the terms and conditions of
16  * the license of that module.  An independent module is a module which is not
17  * derived from this software.  The special exception does not apply to any
18  * modifications of the software.
19  *
20  *
21  * <<Broadcom-WL-IPTag/Open:>>
22  *
23  * $Id$
24  */
25 
26 /** XXX Twiki: [WirelessEthernet] */
27 
28 #ifndef _dhd_wet_h_
29 #define _dhd_wet_h_
30 
31 #include <ethernet.h>
32 #include <dngl_stats.h>
33 #include <dhd.h>
34 
35 #define DHD_WET_ENAB 1
36 #define	WET_ENABLED(dhdp)	((dhdp)->info->wet_mode == DHD_WET_ENAB)
37 
38 /* forward declaration */
39 typedef struct dhd_wet_info dhd_wet_info_t;
40 
41 extern dhd_wet_info_t *dhd_get_wet_info(dhd_pub_t *pub);
42 extern void dhd_free_wet_info(dhd_pub_t *pub, void *wet);
43 
44 /* Process frames in transmit direction */
45 extern int dhd_wet_send_proc(void *weth, void *sdu, void **new);
46 extern void dhd_set_wet_host_ipv4(dhd_pub_t *pub, void *parms, uint32 len);
47 extern void dhd_set_wet_host_mac(dhd_pub_t *pub, void *parms, uint32 len);
48 /* Process frames in receive direction */
49 extern int dhd_wet_recv_proc(void *weth, void *sdu);
50 extern void dhd_wet_sta_delete_list(dhd_pub_t *dhd_pub);
51 
52 #ifdef PLC_WET
53 extern void dhd_wet_bssid_upd(dhd_wet_info_t *weth, dhd_bsscfg_t *cfg);
54 #endif /* PLC_WET */
55 
56 int dhd_set_wet_mode(dhd_pub_t *dhdp, uint32 val);
57 int dhd_get_wet_mode(dhd_pub_t *dhdp);
58 extern void dhd_wet_dump(dhd_pub_t *dhdp, struct bcmstrbuf *b);
59 
60 #endif	/* _dhd_wet_h_ */
61