1*85732ac8SCy Schubert /* 2*85732ac8SCy Schubert * hostapd / IEEE 802 OUI Extended Ethertype 3*85732ac8SCy Schubert * Copyright (c) 2016, Jouni Malinen <j@w1.fi> 4*85732ac8SCy Schubert * 5*85732ac8SCy Schubert * This software may be distributed under the terms of the BSD license. 6*85732ac8SCy Schubert * See README for more details. 7*85732ac8SCy Schubert */ 8*85732ac8SCy Schubert 9*85732ac8SCy Schubert #ifndef ETH_P_OUI_H 10*85732ac8SCy Schubert #define ETH_P_OUI_H 11*85732ac8SCy Schubert 12*85732ac8SCy Schubert struct eth_p_oui_ctx; 13*85732ac8SCy Schubert struct hostapd_data; 14*85732ac8SCy Schubert 15*85732ac8SCy Schubert /* rx_callback only gets payload after OUI passed as buf */ 16*85732ac8SCy Schubert struct eth_p_oui_ctx * 17*85732ac8SCy Schubert eth_p_oui_register(struct hostapd_data *hapd, const char *ifname, u8 oui_suffix, 18*85732ac8SCy Schubert void (*rx_callback)(void *ctx, const u8 *src_addr, 19*85732ac8SCy Schubert const u8 *dst_addr, u8 oui_suffix, 20*85732ac8SCy Schubert const u8 *buf, size_t len), 21*85732ac8SCy Schubert void *rx_callback_ctx); 22*85732ac8SCy Schubert void eth_p_oui_unregister(struct eth_p_oui_ctx *eth_p_oui); 23*85732ac8SCy Schubert int eth_p_oui_send(struct eth_p_oui_ctx *ctx, const u8 *src_addr, 24*85732ac8SCy Schubert const u8 *dst_addr, const u8 *buf, size_t len); 25*85732ac8SCy Schubert void eth_p_oui_deliver(struct eth_p_oui_ctx *ctx, const u8 *src_addr, 26*85732ac8SCy Schubert const u8 *dst_addr, const u8 *buf, size_t len); 27*85732ac8SCy Schubert 28*85732ac8SCy Schubert #endif /* ETH_P_OUI_H */ 29