1281681Srpaulo/*
2281681Srpaulo * Generic Snooping for Proxy ARP
3281681Srpaulo * Copyright (c) 2014, Qualcomm Atheros, Inc.
4281681Srpaulo *
5281681Srpaulo * This software may be distributed under the terms of the BSD license.
6281681Srpaulo * See README for more details.
7281681Srpaulo */
8281681Srpaulo
9281681Srpaulo#ifndef X_SNOOP_H
10281681Srpaulo#define X_SNOOP_H
11281681Srpaulo
12281681Srpaulo#include "l2_packet/l2_packet.h"
13281681Srpaulo
14281681Srpaulo#ifdef CONFIG_PROXYARP
15281681Srpaulo
16281681Srpauloint x_snoop_init(struct hostapd_data *hapd);
17281681Srpaulostruct l2_packet_data *
18281681Srpaulox_snoop_get_l2_packet(struct hostapd_data *hapd,
19281681Srpaulo		      void (*handler)(void *ctx, const u8 *src_addr,
20281681Srpaulo				      const u8 *buf, size_t len),
21281681Srpaulo		      enum l2_packet_filter_type type);
22281681Srpaulovoid x_snoop_mcast_to_ucast_convert_send(struct hostapd_data *hapd,
23281681Srpaulo					 struct sta_info *sta, u8 *buf,
24281681Srpaulo					 size_t len);
25281681Srpaulovoid x_snoop_deinit(struct hostapd_data *hapd);
26281681Srpaulo
27281681Srpaulo#else /* CONFIG_PROXYARP */
28281681Srpaulo
29281681Srpaulostatic inline int x_snoop_init(struct hostapd_data *hapd)
30281681Srpaulo{
31281681Srpaulo	return 0;
32281681Srpaulo}
33281681Srpaulo
34281681Srpaulostatic inline struct l2_packet_data *
35281681Srpaulox_snoop_get_l2_packet(struct hostapd_data *hapd,
36281681Srpaulo		      void (*handler)(void *ctx, const u8 *src_addr,
37281681Srpaulo				      const u8 *buf, size_t len),
38281681Srpaulo		      enum l2_packet_filter_type type)
39281681Srpaulo{
40281681Srpaulo	return NULL;
41281681Srpaulo}
42281681Srpaulo
43281681Srpaulostatic inline void
44281681Srpaulox_snoop_mcast_to_ucast_convert_send(struct hostapd_data *hapd,
45281681Srpaulo				    struct sta_info *sta, void *buf,
46281681Srpaulo				    size_t len)
47281681Srpaulo{
48281681Srpaulo}
49281681Srpaulo
50281681Srpaulostatic inline void x_snoop_deinit(struct hostapd_data *hapd)
51281681Srpaulo{
52281681Srpaulo}
53281681Srpaulo
54281681Srpaulo#endif /* CONFIG_PROXYARP */
55281681Srpaulo
56281681Srpaulo#endif /* X_SNOOP_H */
57