1fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt/*
2fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt * WPA Supplicant - Basic mesh peer management
3fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt * Copyright (c) 2013-2014, cozybit, Inc.  All rights reserved.
4fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt *
5fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt * See README for more details.
7fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt */
8fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt
9fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt#ifndef MESH_MPM_H
10fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt#define MESH_MPM_H
11fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt
12fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt/* notify MPM of new mesh peer to be inserted in MPM and driver */
13fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtvoid wpa_mesh_new_mesh_peer(struct wpa_supplicant *wpa_s, const u8 *addr,
14fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt			    struct ieee802_11_elems *elems);
15fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtvoid mesh_mpm_deinit(struct wpa_supplicant *wpa_s, struct hostapd_iface *ifmsh);
16fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtvoid mesh_mpm_auth_peer(struct wpa_supplicant *wpa_s, const u8 *addr);
17fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtvoid mesh_mpm_free_sta(struct sta_info *sta);
18aff761db795db8b506c6f6af7ff607856cf85a81Dmitry Shmidtvoid wpa_mesh_set_plink_state(struct wpa_supplicant *wpa_s,
19aff761db795db8b506c6f6af7ff607856cf85a81Dmitry Shmidt			      struct sta_info *sta,
20aff761db795db8b506c6f6af7ff607856cf85a81Dmitry Shmidt			      enum mesh_plink_state state);
21fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt
22fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt#ifdef CONFIG_MESH
23fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt
24fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtvoid mesh_mpm_action_rx(struct wpa_supplicant *wpa_s,
25fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt			const struct ieee80211_mgmt *mgmt, size_t len);
26fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtvoid mesh_mpm_mgmt_rx(struct wpa_supplicant *wpa_s, struct rx_mgmt *rx_mgmt);
27fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt
28fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt#else /* CONFIG_MESH */
29fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt
30fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtstatic inline void mesh_mpm_action_rx(struct wpa_supplicant *wpa_s,
31fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt				      const struct ieee80211_mgmt *mgmt,
32fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt				      size_t len)
33fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt{
34fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt}
35fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt
36fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtstatic inline void mesh_mpm_mgmt_rx(struct wpa_supplicant *wpa_s,
37fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt				    struct rx_mgmt *rx_mgmt)
38fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt{
39fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt}
40fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt
41fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt#endif /* CONFIG_MESH */
42fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt
43fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt#endif /* MESH_MPM_H */
44