Updated through tag hostap_2_5 from git://w1.fi/hostap.git
[mech_eap.git] / libeap / src / ap / x_snoop.h
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
29 static inline int x_snoop_init(struct hostapd_data *hapd)
30 {
31         return 0;
32 }
33
34 static inline struct l2_packet_data *
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
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
50 static inline void x_snoop_deinit(struct hostapd_data *hapd)
51 {
52 }
53
54 #endif /* CONFIG_PROXYARP */
55
56 #endif /* X_SNOOP_H */