2 * Network Configuration Module
4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
21 * This file declares wifi direct oem functions and structures.
23 * @file wifi-direct-ome.h
24 * @author Gibyoung Kim (lastkgb.kim@samsung.com)
28 #ifndef __WIFI_DIRECT_OEM_H__
29 #define __WIFI_DIRECT_OEM_H__
31 #define SUPPL_PLUGIN_PATH "/usr/lib/wifi-direct-plugin-wpasupplicant.so"
32 #define SUPPL_PLUGIN_64BIT_PATH "/usr/lib64/wifi-direct-plugin-wpasupplicant.so"
35 #define OEM_MACSTR_LEN 18
36 #define OEM_MACADDR_LEN 6
37 #define OEM_IPADDR_LEN 4
38 #define OEM_PINSTR_LEN 8
39 #define OEM_PASS_PHRASE_LEN 64
40 #define OEM_DEV_NAME_LEN 32
41 #define OEM_IFACE_NAME_LEN 16
42 #define OEM_SERVICE_TYPE_LEN 8
43 #define OEM_QUERY_ID_LEN 15
44 #define OEM_SERVICE_MAX_LEN 1024
46 #if defined(TIZEN_FEATURE_ASP)
47 /* Referring to Wi-Fi Peer-to-Peer Services Technical Specification v1.1
48 * The default P2Ps PIN is 12345670. Any device decided to be GO will use
49 * that as device password
51 #define OEM_DEFAULT_P2PS_PIN "12345670"
52 #endif /* TIZEN_FEATURE_ASP */
54 #define OEM_MAX_PEER_NUM 8
57 WFD_OEM_SC_SUCCESS = 0,
58 WFD_OEM_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE = 1,
59 WFD_OEM_SC_FAIL_INCOMPATIBLE_PARAMS = 2,
60 WFD_OEM_SC_FAIL_LIMIT_REACHED = 3,
61 WFD_OEM_SC_FAIL_INVALID_PARAMS = 4,
62 WFD_OEM_SC_FAIL_UNABLE_TO_ACCOMMODATE = 5,
63 WFD_OEM_SC_FAIL_PREV_PROTOCOL_ERROR = 6,
64 WFD_OEM_SC_FAIL_NO_COMMON_CHANNELS = 7,
65 WFD_OEM_SC_FAIL_UNKNOWN_GROUP = 8,
66 WFD_OEM_SC_FAIL_BOTH_GO_INTENT_15 = 9,
67 WFD_OEM_SC_FAIL_INCOMPATIBLE_PROV_METHOD = 10,
68 WFD_OEM_SC_FAIL_REJECTED_BY_USER = 11,
69 #if defined(TIZEN_FEATURE_ASP)
70 WFD_OEM_SC_SUCCESS_ACCEPTED_BY_USER = 12,
71 #endif /* TIZEN_FEATURE_ASP */
72 } wfd_oem_status_code_e;
75 WFD_OEM_WPA_STATE_DISCONNECTED,
76 WFD_OEM_WPA_STATE_INTERFACE_DISABLED,
77 WFD_OEM_WPA_STATE_INACTIVE,
78 WFD_OEM_WPA_STATE_SCANNING,
79 WFD_OEM_WPA_STATE_AUTHENTICATING,
80 WFD_OEM_WPA_STATE_ASSOCIATING,
81 WFD_OEM_WPA_STATE_ASSOCIATED,
82 WFD_OEM_WPA_STATE_4WAY_HANDSHAKE,
83 WFD_OEM_WPA_STATE_GROUP_HANDSHAKE,
84 WFD_OEM_WPA_STATE_COMPLETED,
85 WFD_OEM_WPA_STATE_MAX,
86 } ws_wpa_state_type_e;
88 #if defined(TIZEN_FEATURE_ASP)
90 WFD_OEM_ASP_WPS_TYPE_NONE = 0x00, /**< No WPS type */
91 WFD_OEM_ASP_WPS_TYPE_DEFAULT = 0x00, /**< Default WPS type both P2PS and PIN */
92 WFD_OEM_ASP_WPS_TYPE_PIN_BOTH = 0x02, /**< WPS type PIN code both display and keypad*/
93 WFD_OEM_ASP_WPS_TYPE_PIN_DISPLAY = 0x03, /**< WPS type display PIN code only*/
94 WFD_OEM_ASP_WPS_TYPE_PIN_KEYPAD = 0x04, /**< WPS type keypad to input the PIN only*/
98 WFD_OEM_ASP_SESSION_ROLE_NONE = 0x00, /**< Session network role none */
99 WFD_OEM_ASP_SESSION_ROLE_NEW = 0x01, /**< Session network role new */
100 WFD_OEM_ASP_SESSION_ROLE_CLIENT = 0x02, /**< Session network role client */
101 WFD_OEM_ASP_SESSION_ROLE_GO = 0x04, /**< Session network role GO */
102 } wfd_oem_asp_network_role_e;
103 #endif /* TIZEN_FEATURE_ASP */
107 WFD_OEM_EVENT_DEACTIVATED,
108 WFD_OEM_EVENT_PEER_FOUND,
109 WFD_OEM_EVENT_PEER_DISAPPEARED,
110 WFD_OEM_EVENT_DISCOVERY_FINISHED,
112 WFD_OEM_EVENT_PROV_DISC_REQ, /* 5 */
113 WFD_OEM_EVENT_PROV_DISC_RESP,
114 WFD_OEM_EVENT_PROV_DISC_FAIL,
116 WFD_OEM_EVENT_GO_NEG_REQ,
117 WFD_OEM_EVENT_GO_NEG_FAIL,
118 WFD_OEM_EVENT_GO_NEG_DONE, /* 10 */
119 WFD_OEM_EVENT_WPS_FAIL,
120 WFD_OEM_EVENT_WPS_DONE,
121 WFD_OEM_EVENT_KEY_NEG_FAIL,
122 WFD_OEM_EVENT_KEY_NEG_DONE,
124 WFD_OEM_EVENT_CONN_FAIL, /* 15 */
125 WFD_OEM_EVENT_CONN_DONE,
127 WFD_OEM_EVENT_GROUP_CREATED,
128 WFD_OEM_EVENT_GROUP_DESTROYED,
130 WFD_OEM_EVENT_INVITATION_REQ,
131 WFD_OEM_EVENT_INVITATION_RES, /* 20 */
132 WFD_OEM_EVENT_STA_CONNECTED,
133 WFD_OEM_EVENT_STA_DISCONNECTED,
135 WFD_OEM_EVENT_TERMINATING, /* 23 */
137 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
138 WFD_OEM_EVENT_SERV_DISC_RESP,
139 WFD_OEM_EVENT_SERV_DISC_STARTED,
140 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
142 WFD_OEM_EVENT_GROUP_FORMATION_FAILURE,
143 WFD_OEM_EVENT_INVITATION_ACCEPTED,
144 #if defined(TIZEN_FEATURE_ASP)
145 WFD_OEM_EVENT_ASP_SERV_RESP,
146 WFD_OEM_EVENT_ASP_PROV_START,
147 WFD_OEM_EVENT_ASP_PROV_DONE,
148 #endif /* TIZEN_FEATURE_ASP */
153 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
155 WFD_OEM_DISPLAY_TYPE_SOURCE,
156 WFD_OEM_DISPLAY_TYPE_PRISINK,
157 WFD_OEM_DISPLAY_TYPE_SECSINK,
158 WFD_OEM_DISPLAY_TYPE_DUAL,
159 } wfd_oem_display_type_e;
171 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
173 #if defined(TIZEN_FEATURE_ASP)
176 unsigned int config_method;
177 long long unsigned search_id;
178 unsigned char service_type_length;
180 } wfd_oem_advertise_service_s;
181 #endif /* TIZEN_FEATURE_ASP */
185 char dev_name[OEM_DEV_NAME_LEN+1];
186 unsigned char dev_addr[OEM_MACADDR_LEN];
187 unsigned char intf_addr[OEM_MACADDR_LEN];
188 unsigned char go_dev_addr[OEM_MACADDR_LEN];
197 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
198 wfd_oem_display_s display;
199 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
203 unsigned char p2p_dev_addr[OEM_MACADDR_LEN];
204 unsigned char p2p_intf_addr[OEM_MACADDR_LEN];
205 char name[OEM_DEV_NAME_LEN + 1];
212 int device_go_intent;
213 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
214 wfd_oem_display_s display;
215 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
216 unsigned char p2p_go_addr[OEM_MACADDR_LEN];
217 #if defined(TIZEN_FEATURE_ASP)
218 int has_asp_services;
219 #endif /* TIZEN_FEATURE_ASP */
220 } wfd_oem_dev_data_s;
223 char ssid[OEM_DEV_NAME_LEN+1];
224 unsigned char peer_device_addr[OEM_MACADDR_LEN];
225 unsigned char peer_intf_addr[OEM_MACADDR_LEN];
226 int persistent_group;
230 } wfd_oem_conn_data_s;
233 unsigned char sa[OEM_MACADDR_LEN];
234 unsigned char go_dev_addr[OEM_MACADDR_LEN];
235 unsigned char bssid[OEM_MACADDR_LEN];
240 } wfd_oem_invite_data_s;
243 char ssid[OEM_DEV_NAME_LEN+1];
246 char pass[OEM_PASS_PHRASE_LEN+1];
247 unsigned char go_dev_addr[OEM_MACADDR_LEN];
248 #ifdef TIZEN_FEATURE_IP_OVER_EAPOL
249 unsigned char ip_addr[OEM_IPADDR_LEN];
250 unsigned char ip_addr_mask[OEM_IPADDR_LEN];
251 unsigned char ip_addr_go[OEM_IPADDR_LEN];
252 #endif /* TIZEN_FEATURE_IP_OVER_EAPOL */
253 } wfd_oem_group_data_s;
255 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
257 WFD_OEM_SERV_STATUS_SUCCESS,
258 WFD_OEM_SERV_STATUS_FAIL,
259 } wfd_oem_serv_status_e;
262 WFD_OEM_SERV_TYPE_ALL,
263 WFD_OEM_SERV_TYPE_BTADDR,
264 } wfd_oem_serv_type_e;
269 unsigned char data[OEM_MACADDR_LEN];
270 unsigned char value[20];
271 } wfd_oem_service_data_s;
272 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
276 unsigned char dev_addr[OEM_MACADDR_LEN]; /* device address */
277 unsigned char intf_addr[OEM_MACADDR_LEN];
279 char wps_pin[OEM_PINSTR_LEN+1]; /* just for DISPLAY */
280 char ifname[OEM_IFACE_NAME_LEN+1];
282 unsigned char ip_addr_peer[OEM_IPADDR_LEN];
285 #if defined(TIZEN_FEATURE_ASP)
287 #endif /* TIZEN_FEATURE_ASP */
291 WFD_OEM_EDATA_TYPE_NONE,
292 WFD_OEM_EDATA_TYPE_DEVICE,
293 WFD_OEM_EDATA_TYPE_CONN,
294 WFD_OEM_EDATA_TYPE_INVITE,
295 WFD_OEM_EDATA_TYPE_GROUP,
296 WFD_OEM_EDATA_TYPE_SERVICE,
297 WFD_OEM_EDATA_TYPE_NEW_SERVICE,
298 #if defined(TIZEN_FEATURE_ASP)
299 WFD_OEM_EDATA_TYPE_ASP_SERVICE,
300 WFD_OEM_EDATA_TYPE_ASP_PROV,
301 #endif /* TIZEN_FEATURE_ASP */
305 WFD_OEM_SCAN_MODE_ACTIVE,
306 WFD_OEM_SCAN_MODE_PASSIVE,
307 } wfd_oem_scan_mode_e;
310 WFD_OEM_SCAN_TYPE_FULL,
311 WFD_OEM_SCAN_TYPE_SOCIAL,
312 WFD_OEM_SCAN_TYPE_SPECIFIC,
313 WFD_OEM_SCAN_TYPE_CHANNEL1,
314 WFD_OEM_SCAN_TYPE_CHANNEL6,
315 WFD_OEM_SCAN_TYPE_CHANNEL11,
316 WFD_OEM_SCAN_TYPE_GO_FREQ,
317 } wfd_oem_scan_type_e;
320 WFD_OEM_WPS_MODE_NONE,
321 WFD_OEM_WPS_MODE_PBC = 0x1,
322 WFD_OEM_WPS_MODE_DISPLAY = 0x2,
323 WFD_OEM_WPS_MODE_KEYPAD = 0x4,
324 #if defined(TIZEN_FEATURE_ASP)
325 WFD_OEM_WPS_MODE_P2PS = 0x8,
326 #endif /* TIZEN_FEATURE_ASP */
327 } wfd_oem_wps_mode_e;
329 #define WFD_OEM_GROUP_FLAG_GROUP_OWNER 0x1
330 #define WFD_OEM_GROUP_FLAG_PERSISTENT_GROUP 0x2
333 WFD_OEM_CONN_TYPE_NONE,
334 WFD_OEM_CONN_TYPE_JOIN,
335 WFD_OEM_CONN_TYPE_AUTH,
336 WFD_OEM_CONN_TYPE_PERSISTENT = 0x4,
337 } wfd_oem_conn_flag_e;
340 WFD_OEM_DEV_ROLE_NONE,
343 } wfd_oem_dev_role_e;
351 #if defined(TIZEN_FEATURE_ASP)
353 #endif /* TIZEN_FEATURE_ASP */
354 } wfd_oem_scan_param_s;
358 int conn_flags; /* join, auth, persistent */
361 char wps_pin[OEM_PINSTR_LEN+1];
362 } wfd_oem_conn_param_s;
366 int persistent_group_id;
368 char passphrase[OEM_PASS_PHRASE_LEN + 1];
369 } wfd_oem_group_param_s;
374 unsigned char go_dev_addr[OEM_MACADDR_LEN];
375 } wfd_oem_invite_param_s;
378 WFD_OEM_CONFIG_ATTR_STR_DEVICE_NAME,
379 WFD_OEM_CONFIG_ATTR_STR_SSID_POSTFIX,
380 WFD_OEM_CONFIG_ATTR_STR_COUNTRY,
381 WFD_OEM_CONFIG_ATTR_NUM_GO_INTENT,
382 WFD_OEM_CONFIG_ATTR_NUM_LISTEN_FREQ,
383 WFD_OEM_CONFIG_ATTR_NUM_OPER_FREQ,
384 WFD_OEM_CONFIG_ATTR_NUM_PREF_FREQ,
385 WFD_OEM_CONFIG_ATTR_NUM_PERSIST_RECONN,
386 WFD_OEM_CONFIG_ATTR_NUM_WIFI_DISPLAY,
387 WFD_OEM_CONFIG_ATTR_NUM_P2P_DISABLED,
388 WFD_OEM_CONFIG_ATTR_NUM_MAX_STA,
389 WFD_OEM_CONFIG_ATTR_LIMIT = WFD_OEM_CONFIG_ATTR_NUM_MAX_STA,
390 } wfd_oem_conf_attr_e;
392 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
394 WFD_OEM_SERVICE_TYPE_ALL,
395 WFD_OEM_SERVICE_TYPE_BONJOUR,
396 WFD_OEM_SERVICE_TYPE_UPNP,
397 WFD_OEM_SERVICE_TYPE_WS_DISCOVERY,
398 WFD_OEM_SERVICE_TYPE_WIFI_DISPLAY,
399 WFD_OEM_SERVICE_TYPE_VENDOR = 0xff,
400 } wfd_oem_service_type_e;
403 WFD_OEM_BONJOUR_RDATA_PTR = 0x0c,
404 WFD_OEM_BONJOUR_RDATA_TXT = 0x10,
405 } wfd_oem_bonjour_rdata_type_e;
408 /** Device address for which service discovery is requested */
409 char dev_addr[OEM_MACSTR_LEN+1];
411 /** service type requested */
412 char service_type[OEM_SERVICE_TYPE_LEN+1];
414 /** query identifier returned by wpa_supplicant for each service discovery request */
415 char query_id[OEM_QUERY_ID_LEN+1];
431 wfd_oem_bonjour_rdata_type_e rdata_type;
438 } wfd_oem_new_service_s;
439 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
441 #define WFD_OEM_STR_PROTO_WPA "WPA"
442 #define WFD_OEM_STR_PROTO_RSN "RSN"
443 #define WFD_OEM_STR_KEY_MGMT_IEEE8021X "WPA-EAP"
444 #define WFD_OEM_STR_KEY_MGMT_PSK "WPA-PSK"
445 #define WFD_OEM_STR_KEY_MGMT_NONE "WPA-NONE"
446 #define WFD_OEM_STR_CIPHER_NONE "NONE"
447 #define WFD_OEM_STR_CIPHER_WEP40 "WEP40"
448 #define WFD_OEM_STR_CIPHER_WEP104 "WEP104"
449 #define WFD_OEM_STR_CIPHER_TKIP "TKIP"
450 #define WFD_OEM_STR_CIPHER_CCMP "CCMP"
451 #define WFD_OEM_STR_AUTH_ALG_OPEN "OPEN"
452 #define WFD_OEM_STR_MODE_GC "0"
453 #define WFD_OEM_STR_MODE_GO "3"
456 WFD_OEM_PROTO_WPA = 0x01, /* WPA */
457 WFD_OEM_PROTO_RSN = 0x02, /* RSN */
461 WFD_OEM_KEY_MGMT_IEEE8021X = 0x01, /* WPA-EAP */
462 WFD_OEM_KEY_MGMT_PSK = 0x02, /* WPA-PSK */
463 WFD_OEM_KEY_MGMT_NONE = 0x04, /* WPA-NONE */
464 } wfd_oem_key_mgmt_e;
467 WFD_OEM_CIPHER_NONE = 0x01, /* NONE */
468 WFD_OEM_CIPHER_WEP40 = 0x02, /* WEP40 */
469 WFD_OEM_CIPHER_WEP104 = 0x04, /* WEP104 */
470 WFD_OEM_CIPHER_TKIP = 0x08, /* TKIP */
471 WFD_OEM_CIPHER_CCMP = 0x10, /* CCMP */
475 WFD_OEM_AUTH_ALG_OPEN = 0x01, /* OPEN */
476 } wfd_oem_auth_alg_e;
479 WFD_OEM_PERSISTENT_MODE_GC = 0x0,
480 WFD_OEM_PERSISTENT_MODE_GO = 0x3,
481 } wfd_oem_persistent_mode_e;
483 #if defined(TIZEN_FEATURE_ASP)
485 WFD_OEM_TYPE_ADVERTISE,
488 } wfd_oem_asp_service_type_e;
491 wfd_oem_asp_service_type_e type;
493 long long unsigned search_id;
496 unsigned char preferred_connection;
498 unsigned char status;
500 unsigned int config_method;
501 unsigned char tran_id;
508 } wfd_oem_asp_service_s;
511 unsigned char session_mac[OEM_MACADDR_LEN];
512 unsigned int session_id;
518 int persistent_group_id;
519 char *session_information;
522 unsigned char service_mac[OEM_MACADDR_LEN];
523 unsigned char group_mac[OEM_MACADDR_LEN];
524 char wps_pin[OEM_PINSTR_LEN+1];
525 unsigned char ip_addr[OEM_IPADDR_LEN];
526 } wfd_oem_asp_prov_s;
527 #endif /* TIZEN_FEATURE_ASP */
530 char ssid[OEM_DEV_NAME_LEN + 1];
531 unsigned char go_mac_address[OEM_MACADDR_LEN];
532 char psk[OEM_PASS_PHRASE_LEN +1];
540 unsigned char p2p_client_list[OEM_MACADDR_LEN][OEM_MAX_PEER_NUM];
541 } wfd_oem_persistent_group_s;
543 typedef int (*wfd_oem_event_cb) (void *user_data, void *event);
545 typedef struct _wfd_oem_ops_s {
546 int (*init) (wfd_oem_event_cb event_callback, void *user_data);
547 int (*deinit) (void);
548 int (*activate) (int concurrent);
549 int (*deactivate) (int concurrent);
550 int (*start_scan) (wfd_oem_scan_param_s *param);
551 int (*stop_scan) (void);
552 int (*get_visibility) (int *visibility);
553 int (*set_visibility) (int visibility);
554 int (*get_scan_result) (GList **peers, int *peer_count);
555 int (*get_peer_info) (unsigned char *peer_addr, wfd_oem_device_s **peer);
556 int (*prov_disc_req) (unsigned char *peer_addr, wfd_oem_wps_mode_e wps_mode, int join);
557 int (*connect) (unsigned char *peer_addr, wfd_oem_conn_param_s *param);
558 int (*disconnect) (unsigned char *peer_addr, int is_iface_addr);
559 int (*reject_connection) (unsigned char *peer_addr);
560 int (*cancel_connection) (unsigned char *peer_addr);
561 int (*get_connected_peers) (GList **peers, int *peer_count);
562 int (*wps_start) (unsigned char *peer_addr, int wps_mode, const char *pin);
563 int (*enrollee_start) (unsigned char *peer_addr, int wps_mode, const char *pin);
564 int (*wps_cancel) (void);
565 int (*get_pin) (char *pin);
566 int (*set_pin) (char *pin);
567 int (*generate_pin) (char **pin);
568 int (*get_supported_wps_mode) (int *wps_mode);
569 int (*create_group) (wfd_oem_group_param_s *param);
570 int (*destroy_group) (const char *ifname);
571 int (*invite) (unsigned char *peer_addr, wfd_oem_invite_param_s *param);
573 int (*get_dev_name) (char *dev_name);
574 int (*set_dev_name) (char *dev_name);
575 int (*get_dev_mac) (char *dev_mac);
576 int (*get_dev_type) (int *pri_dev_type, int *sec_dev_type);
577 int (*set_dev_type) (int pri_dev_type, int sec_dev_type);
578 int (*get_go_intent) (int *go_intent);
579 int (*set_go_intent) (int go_intent);
580 int (*set_country) (char *ccode);
582 int (*get_persistent_groups) (wfd_oem_persistent_group_s **groups, int *group_count);
583 int (*remove_persistent_group) (char *ssid, unsigned char *bssid);
584 int (*set_persistent_reconnect) (unsigned char *bssid, int reconnect);
586 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
587 int (*start_service_discovery) (unsigned char mac_addr[6], int service_type);
588 int (*cancel_service_discovery) (unsigned char mac_addr[6], int service_type);
590 int (*serv_add) (wfd_oem_new_service_s *service);
591 int (*serv_del) (wfd_oem_new_service_s *service);
592 int (*serv_disc_start) (wfd_oem_new_service_s *service);
593 int (*serv_disc_stop) (int handle);
594 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
596 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
597 int (*miracast_init) (int enable);
598 int (*set_display) (wfd_oem_display_s *wifi_display);
599 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
601 int (*refresh) (void);
602 int (*save_config) (void);
603 int (*set_operating_channel)(int channel);
604 int (*remove_all_network)(void);
605 int (*get_wpa_status)(int *wpa_status);
607 #if defined(TIZEN_FEATURE_ASP)
608 int (*advertise_service)(wfd_oem_asp_service_s *service, int replace);
609 int (*cancel_advertise_service)(wfd_oem_asp_service_s *service);
610 int (*seek_service)(wfd_oem_asp_service_s *service);
611 int (*cancel_seek_service)(wfd_oem_asp_service_s *service);
612 int (*asp_prov_disc_req)(wfd_oem_asp_prov_s *params);
613 #endif /* TIZEN_FEATURE_ASP */
616 int wfd_oem_init(wfd_oem_ops_s *ops, wfd_oem_event_cb event_callback, void *user_data);
617 int wfd_oem_destroy(wfd_oem_ops_s *ops);
618 int wfd_oem_activate(wfd_oem_ops_s *ops, int concurrent);
619 int wfd_oem_deactivate(wfd_oem_ops_s *ops, int concurrent);
620 int wfd_oem_start_scan(wfd_oem_ops_s *ops, wfd_oem_scan_param_s *param);
621 int wfd_oem_stop_scan(wfd_oem_ops_s *ops);
622 int wfd_oem_get_visibility(wfd_oem_ops_s *ops, int *visibility);
623 int wfd_oem_set_visibility(wfd_oem_ops_s *ops, int visibility);
624 int wfd_oem_get_scan_result(wfd_oem_ops_s *ops, GList **peers, int *peer_count);
625 int wfd_oem_get_peer_info(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_device_s **peer);
626 int wfd_oem_prov_disc_req(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_wps_mode_e wps_mode, int join);
627 int wfd_oem_connect(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_conn_param_s *param);
628 int wfd_oem_disconnect(wfd_oem_ops_s *ops, unsigned char *peer_addr, int is_iface_addr);
629 int wfd_oem_reject_connection(wfd_oem_ops_s *ops, unsigned char *peer_addr);
630 int wfd_oem_cancel_connection(wfd_oem_ops_s *ops, unsigned char *peer_addr);
631 int wfd_oem_get_connected_peers(wfd_oem_ops_s *ops, GList **peers, int *peer_count);
632 int wfd_oem_wps_start(wfd_oem_ops_s *ops, unsigned char *peer_addr, int wps_mode, const char *pin);
633 int wfd_oem_enrollee_start(wfd_oem_ops_s *ops, unsigned char *peer_addr, int wps_mode, const char *pin);
634 int wfd_oem_wps_cancel(wfd_oem_ops_s *ops);
635 int wfd_oem_get_pin(wfd_oem_ops_s *ops, char *pin);
636 int wfd_oem_set_pin(wfd_oem_ops_s *ops, char *pin);
637 int wfd_oem_generate_pin(wfd_oem_ops_s *ops, char **pin);
638 int wfd_oem_get_supported_wps_mode(wfd_oem_ops_s *ops, int *wps_mode);
639 int wfd_oem_create_group(wfd_oem_ops_s *ops, wfd_oem_group_param_s *param);
640 int wfd_oem_destroy_group(wfd_oem_ops_s *ops, const char *ifname);
641 int wfd_oem_invite(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_invite_param_s *param);
643 int wfd_oem_get_dev_name(wfd_oem_ops_s *ops, char *dev_name);
644 int wfd_oem_set_dev_name(wfd_oem_ops_s *ops, char *dev_name);
645 int wfd_oem_get_dev_mac(wfd_oem_ops_s *ops, char *dev_mac);
646 int wfd_oem_get_dev_type(wfd_oem_ops_s *ops, int *pri_dev_type, int *sec_dev_type);
647 int wfd_oem_set_dev_type(wfd_oem_ops_s *ops, int priv_dev_type, int sec_dev_type);
648 int wfd_oem_get_go_intent(wfd_oem_ops_s *ops, int *go_intent);
649 int wfd_oem_set_go_intent(wfd_oem_ops_s *ops, int go_intent);
650 int wfd_oem_set_country(wfd_oem_ops_s *ops, char *ccode);
652 int wfd_oem_get_persistent_groups(wfd_oem_ops_s *ops, wfd_oem_persistent_group_s **groups, int *group_count);
653 int wfd_oem_remove_persistent_group(wfd_oem_ops_s *ops, char *ssid, unsigned char *bssid);
654 int wfd_oem_set_persistent_reconnect(wfd_oem_ops_s *ops, unsigned char *bssid, int reconnect);
656 #ifdef TIZEN_FEATURE_SERVICE_DISCOVERY
657 int wfd_oem_start_service_discovery(wfd_oem_ops_s *ops, unsigned char *peer_addr, int service_type);
658 int wfd_oem_cancel_service_discovery(wfd_oem_ops_s *ops, unsigned char *peer_addr, int service_type);
660 int wfd_oem_serv_add(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service);
661 int wfd_oem_serv_del(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service);
662 int wfd_oem_serv_disc_start(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service);
663 int wfd_oem_serv_disc_stop(wfd_oem_ops_s *ops, int handle);
664 #endif /* TIZEN_FEATURE_SERVICE_DISCOVERY */
666 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
667 int wfd_oem_miracast_init(wfd_oem_ops_s *ops, int enable);
668 int wfd_oem_set_display(wfd_oem_ops_s *ops, wfd_oem_display_s *wifi_display);
669 #endif /* TIZEN_FEATURE_WIFI_DISPLAY */
671 int wfd_oem_refresh(wfd_oem_ops_s *ops);
672 #if defined(TIZEN_FEATURE_ASP)
673 int wfd_oem_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service, int replace);
674 int wfd_oem_cancel_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service);
675 int wfd_oem_seek_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service);
676 int wfd_oem_cancel_seek_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service);
677 int wfd_oem_asp_prov_disc_req(wfd_oem_ops_s *ops, wfd_oem_asp_prov_s *params);
678 #endif /* TIZEN_FEATURE_ASP */
680 #endif /* __WIFI_DIRECT_OEM_H__ */