1 /*
2  * Generic Snooping for Proxy ARP
3  * Copyright (c) 2014, Qualcomm Atheros, Inc.
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  */
8 
9 #ifndef X_SNOOP_H
10 #define X_SNOOP_H
11 
12 #include "l2_packet/l2_packet.h"
13 
14 #ifdef CONFIG_PROXYARP
15 
16 int x_snoop_init(struct hostapd_data *hapd);
17 struct l2_packet_data *
18 x_snoop_get_l2_packet(struct hostapd_data *hapd,
19 		      void (*handler)(void *ctx, const u8 *src_addr,
20 				      const u8 *buf, size_t len),
21 		      enum l2_packet_filter_type type);
22 void x_snoop_mcast_to_ucast_convert_send(struct hostapd_data *hapd,
23 					 struct sta_info *sta, u8 *buf,
24 					 size_t len);
25 void x_snoop_deinit(struct hostapd_data *hapd);
26 
27 #else /* CONFIG_PROXYARP */
28 
x_snoop_init(struct hostapd_data * hapd)29 static inline int x_snoop_init(struct hostapd_data *hapd)
30 {
31 	return 0;
32 }
33 
34 static inline struct l2_packet_data *
x_snoop_get_l2_packet(struct hostapd_data * hapd,void (* handler)(void * ctx,const u8 * src_addr,const u8 * buf,size_t len),enum l2_packet_filter_type type)35 x_snoop_get_l2_packet(struct hostapd_data *hapd,
36 		      void (*handler)(void *ctx, const u8 *src_addr,
37 				      const u8 *buf, size_t len),
38 		      enum l2_packet_filter_type type)
39 {
40 	return NULL;
41 }
42 
43 static inline void
x_snoop_mcast_to_ucast_convert_send(struct hostapd_data * hapd,struct sta_info * sta,void * buf,size_t len)44 x_snoop_mcast_to_ucast_convert_send(struct hostapd_data *hapd,
45 				    struct sta_info *sta, void *buf,
46 				    size_t len)
47 {
48 }
49 
x_snoop_deinit(struct hostapd_data * hapd)50 static inline void x_snoop_deinit(struct hostapd_data *hapd)
51 {
52 }
53 
54 #endif /* CONFIG_PROXYARP */
55 
56 #endif /* X_SNOOP_H */
57