diff --git a/src/eapol.c b/src/eapol.c index 0d9072e0..fe68b669 100644 --- a/src/eapol.c +++ b/src/eapol.c @@ -1786,6 +1786,12 @@ bool eapol_frame_watch_remove(uint32_t id) return watchlist_remove(&frame_watches, id); } +void eapol_tx_frame(uint32_t ifindex, uint16_t proto, const uint8_t *dst, + const struct eapol_frame *frame) +{ + pae_write(ifindex, dst, NULL, proto, frame); +} + struct preauth_sm { uint32_t ifindex; uint8_t aa[6]; diff --git a/src/eapol.h b/src/eapol.h index 57ad9876..d90aede8 100644 --- a/src/eapol.h +++ b/src/eapol.h @@ -197,6 +197,8 @@ uint32_t eapol_frame_watch_add(uint32_t ifindex, eapol_frame_watch_func_t handler, void *user_data); bool eapol_frame_watch_remove(uint32_t id); +void eapol_tx_frame(uint32_t ifindex, uint16_t proto, const uint8_t *dst, + const struct eapol_frame *frame); struct preauth_sm *eapol_preauth_start(const uint8_t *aa, const struct handshake_state *hs,