1341618Scy/*
2341618Scy * hostapd / IEEE 802 OUI Extended Ethertype
3341618Scy * Copyright (c) 2016, Jouni Malinen <j@w1.fi>
4341618Scy *
5341618Scy * This software may be distributed under the terms of the BSD license.
6341618Scy * See README for more details.
7341618Scy */
8341618Scy
9341618Scy#ifndef ETH_P_OUI_H
10341618Scy#define ETH_P_OUI_H
11341618Scy
12341618Scystruct eth_p_oui_ctx;
13341618Scystruct hostapd_data;
14341618Scy
15341618Scy/* rx_callback only gets payload after OUI passed as buf */
16341618Scystruct eth_p_oui_ctx *
17341618Scyeth_p_oui_register(struct hostapd_data *hapd, const char *ifname, u8 oui_suffix,
18341618Scy		   void (*rx_callback)(void *ctx, const u8 *src_addr,
19341618Scy				       const u8 *dst_addr, u8 oui_suffix,
20341618Scy				       const u8 *buf, size_t len),
21341618Scy		   void *rx_callback_ctx);
22341618Scyvoid eth_p_oui_unregister(struct eth_p_oui_ctx *eth_p_oui);
23341618Scyint eth_p_oui_send(struct eth_p_oui_ctx *ctx, const u8 *src_addr,
24341618Scy		   const u8 *dst_addr, const u8 *buf, size_t len);
25341618Scyvoid eth_p_oui_deliver(struct eth_p_oui_ctx *ctx, const u8 *src_addr,
26341618Scy		       const u8 *dst_addr, const u8 *buf, size_t len);
27341618Scy
28341618Scy#endif /* ETH_P_OUI_H */
29