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