wps_upnp.h revision 189251
1189251Ssam/* 2189251Ssam * UPnP WPS Device 3189251Ssam * Copyright (c) 2000-2003 Intel Corporation 4189251Ssam * Copyright (c) 2006-2007 Sony Corporation 5189251Ssam * Copyright (c) 2008-2009 Atheros Communications 6189251Ssam * Copyright (c) 2009, Jouni Malinen <j@w1.fi> 7189251Ssam * 8189251Ssam * See wps_upnp.c for more details on licensing and code history. 9189251Ssam */ 10189251Ssam 11189251Ssam#ifndef WPS_UPNP_H 12189251Ssam#define WPS_UPNP_H 13189251Ssam 14189251Ssamstruct upnp_wps_device_sm; 15189251Ssamstruct wps_context; 16189251Ssamstruct wps_data; 17189251Ssam 18189251Ssamstruct upnp_wps_peer { 19189251Ssam struct wps_data *wps; 20189251Ssam}; 21189251Ssam 22189251Ssamenum upnp_wps_wlanevent_type { 23189251Ssam UPNP_WPS_WLANEVENT_TYPE_PROBE = 1, 24189251Ssam UPNP_WPS_WLANEVENT_TYPE_EAP = 2 25189251Ssam}; 26189251Ssam 27189251Ssamstruct upnp_wps_device_ctx { 28189251Ssam struct wpabuf * (*rx_req_get_device_info)( 29189251Ssam void *priv, struct upnp_wps_peer *peer); 30189251Ssam struct wpabuf * (*rx_req_put_message)( 31189251Ssam void *priv, struct upnp_wps_peer *peer, 32189251Ssam const struct wpabuf *msg); 33189251Ssam struct wpabuf * (*rx_req_get_ap_settings)(void *priv, 34189251Ssam const struct wpabuf *msg); 35189251Ssam int (*rx_req_set_ap_settings)(void *priv, const struct wpabuf *msg); 36189251Ssam int (*rx_req_del_ap_settings)(void *priv, const struct wpabuf *msg); 37189251Ssam struct wpabuf * (*rx_req_get_sta_settings)(void *priv, 38189251Ssam const struct wpabuf *msg); 39189251Ssam int (*rx_req_set_sta_settings)(void *priv, const struct wpabuf *msg); 40189251Ssam int (*rx_req_del_sta_settings)(void *priv, const struct wpabuf *msg); 41189251Ssam int (*rx_req_put_wlan_response)( 42189251Ssam void *priv, enum upnp_wps_wlanevent_type ev_type, 43189251Ssam const u8 *mac_addr, const struct wpabuf *msg, 44189251Ssam enum wps_msg_type msg_type); 45189251Ssam int (*rx_req_set_selected_registrar)(void *priv, 46189251Ssam const struct wpabuf *msg); 47189251Ssam int (*rx_req_reboot_ap)(void *priv, const struct wpabuf *msg); 48189251Ssam int (*rx_req_reset_ap)(void *priv, const struct wpabuf *msg); 49189251Ssam int (*rx_req_reboot_sta)(void *priv, const struct wpabuf *msg); 50189251Ssam int (*rx_req_reset_sta)(void *priv, const struct wpabuf *msg); 51189251Ssam}; 52189251Ssam 53189251Ssamstruct upnp_wps_device_sm * 54189251Ssamupnp_wps_device_init(struct upnp_wps_device_ctx *ctx, struct wps_context *wps, 55189251Ssam void *priv); 56189251Ssamvoid upnp_wps_device_deinit(struct upnp_wps_device_sm *sm); 57189251Ssam 58189251Ssamint upnp_wps_device_start(struct upnp_wps_device_sm *sm, char *net_if); 59189251Ssamvoid upnp_wps_device_stop(struct upnp_wps_device_sm *sm); 60189251Ssam 61189251Ssamint upnp_wps_device_send_wlan_event(struct upnp_wps_device_sm *sm, 62189251Ssam const u8 from_mac_addr[ETH_ALEN], 63189251Ssam enum upnp_wps_wlanevent_type ev_type, 64189251Ssam const struct wpabuf *msg); 65189251Ssamint upnp_wps_subscribers(struct upnp_wps_device_sm *sm); 66189251Ssam 67189251Ssam#endif /* WPS_UPNP_H */ 68