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__
35 #define SUPPL_PLUGIN_PATH "/usr/lib/wifi-direct-plugin-wpasupplicant.so"
36 #define SUPPL_PLUGIN_64BIT_PATH "/usr/lib64/wifi-direct-plugin-wpasupplicant.so"
38 #if defined TIZEN_ENABLE_PRD
39 #define SUPPL_PRD_PLUGIN_PATH "/usr/lib/wifi-direct-prd-plugin-wpasupplicant.so"
40 #define SUPPL_PRD_PLUGIN_64BIT_PATH "/usr/lib64/wifi-direct-prd-plugin-wpasupplicant.so"
41 #endif /* TIZEN_ENABLE_PRD */
43 #define COMMON_IFACE_NAME "wlan0"
44 #define P2P_IFACE_NAME "p2p0"
45 #define GROUP_IFACE_NAME "p2p0"
46 #define GROUP_IFACE_PREFIX "p2p"
47 #define PRIMARY_DEVICE_TYPE "\x00\x0a\x00\x50\xf2\x04\x00\x05"
48 #define DEFAULT_DEVICE_NAME "Tizen"
49 #define DEFAULT_GO_INTENT 7
50 #define DEFAULT_PERSISTENT_RECONNECT 1
51 #define DEFAULT_LISTEN_REG_CLASS 81
52 #define DEFAULT_LISTEN_CHANNEL 1
53 #define DEFAULT_OPER_REG_CLASS 81
54 #define DEFAULT_OPER_CHANNEL 1
55 #define DEFAULT_CONFIG_METHOD "display push_button keypad p2ps"
56 #define DEFAULT_NO_GROUP_IFACE 0
58 #define OEM_MACSTR_LEN 18
59 #define OEM_MACADDR_LEN 6
60 #define OEM_IPADDR_LEN 4
61 #define OEM_PINSTR_LEN 8
62 #define OEM_PASS_PHRASE_LEN 64
63 #define OEM_DEV_NAME_LEN 32
64 #define OEM_IFACE_NAME_LEN 16
65 #define OEM_SERVICE_TYPE_LEN 8
66 #define OEM_QUERY_ID_LEN 15
67 #define OEM_SERVICE_MAX_LEN 1024
68 #define OEM_CONFIG_METHOD_LEN 256
69 #define OEM_VSIE_MAX_LEN 1024
71 /* Referring to Wi-Fi Peer-to-Peer Services Technical Specification v1.1
72 * The default P2Ps PIN is 12345670. Any device decided to be GO will use
73 * that as device password
75 #define OEM_DEFAULT_P2PS_PIN "12345670"
77 #define OEM_MAX_PEER_NUM 8
79 #define P2P_MAX_CHANNELS 50
82 WFD_OEM_SC_SUCCESS = 0,
83 WFD_OEM_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE = 1,
84 WFD_OEM_SC_FAIL_INCOMPATIBLE_PARAMS = 2,
85 WFD_OEM_SC_FAIL_LIMIT_REACHED = 3,
86 WFD_OEM_SC_FAIL_INVALID_PARAMS = 4,
87 WFD_OEM_SC_FAIL_UNABLE_TO_ACCOMMODATE = 5,
88 WFD_OEM_SC_FAIL_PREV_PROTOCOL_ERROR = 6,
89 WFD_OEM_SC_FAIL_NO_COMMON_CHANNELS = 7,
90 WFD_OEM_SC_FAIL_UNKNOWN_GROUP = 8,
91 WFD_OEM_SC_FAIL_BOTH_GO_INTENT_15 = 9,
92 WFD_OEM_SC_FAIL_INCOMPATIBLE_PROV_METHOD = 10,
93 WFD_OEM_SC_FAIL_REJECTED_BY_USER = 11,
94 WFD_OEM_SC_SUCCESS_ACCEPTED_BY_USER = 12,
95 } wfd_oem_status_code_e;
98 WFD_OEM_WPA_STATE_DISCONNECTED,
99 WFD_OEM_WPA_STATE_INTERFACE_DISABLED,
100 WFD_OEM_WPA_STATE_INACTIVE,
101 WFD_OEM_WPA_STATE_SCANNING,
102 WFD_OEM_WPA_STATE_AUTHENTICATING,
103 WFD_OEM_WPA_STATE_ASSOCIATING,
104 WFD_OEM_WPA_STATE_ASSOCIATED,
105 WFD_OEM_WPA_STATE_4WAY_HANDSHAKE,
106 WFD_OEM_WPA_STATE_GROUP_HANDSHAKE,
107 WFD_OEM_WPA_STATE_COMPLETED,
108 WFD_OEM_WPA_STATE_MAX,
109 } ws_wpa_state_type_e;
112 WFD_OEM_ASP_WPS_TYPE_NONE = 0x00, /**< No WPS type */
113 WFD_OEM_ASP_WPS_TYPE_DEFAULT = 0x00, /**< Default WPS type both P2PS and PIN */
114 WFD_OEM_ASP_WPS_TYPE_PIN_BOTH = 0x02, /**< WPS type PIN code both display and keypad*/
115 WFD_OEM_ASP_WPS_TYPE_PIN_DISPLAY = 0x03, /**< WPS type display PIN code only*/
116 WFD_OEM_ASP_WPS_TYPE_PIN_KEYPAD = 0x04, /**< WPS type keypad to input the PIN only*/
120 WFD_OEM_ASP_SESSION_ROLE_NONE = 0x00, /**< Session network role none */
121 WFD_OEM_ASP_SESSION_ROLE_NEW = 0x01, /**< Session network role new */
122 WFD_OEM_ASP_SESSION_ROLE_CLIENT = 0x02, /**< Session network role client */
123 WFD_OEM_ASP_SESSION_ROLE_GO = 0x04, /**< Session network role GO */
124 } wfd_oem_asp_network_role_e;
128 WFD_OEM_EVENT_DEACTIVATED,
129 WFD_OEM_EVENT_PEER_FOUND,
130 WFD_OEM_EVENT_PEER_DISAPPEARED,
131 WFD_OEM_EVENT_DISCOVERY_FINISHED,
133 WFD_OEM_EVENT_PROV_DISC_REQ, /* 5 */
134 WFD_OEM_EVENT_PROV_DISC_RESP,
135 WFD_OEM_EVENT_PROV_DISC_FAIL,
137 WFD_OEM_EVENT_GO_NEG_REQ,
138 WFD_OEM_EVENT_GO_NEG_FAIL,
139 WFD_OEM_EVENT_GO_NEG_DONE, /* 10 */
140 WFD_OEM_EVENT_WPS_FAIL,
141 WFD_OEM_EVENT_WPS_DONE,
142 WFD_OEM_EVENT_KEY_NEG_FAIL,
143 WFD_OEM_EVENT_KEY_NEG_DONE,
145 WFD_OEM_EVENT_CONN_FAIL, /* 15 */
146 WFD_OEM_EVENT_CONN_DONE,
148 WFD_OEM_EVENT_GROUP_CREATED,
149 WFD_OEM_EVENT_GROUP_DESTROYED,
151 WFD_OEM_EVENT_INVITATION_REQ,
152 WFD_OEM_EVENT_INVITATION_RES, /* 20 */
153 WFD_OEM_EVENT_STA_CONNECTED,
154 WFD_OEM_EVENT_STA_DISCONNECTED,
156 WFD_OEM_EVENT_TERMINATING, /* 23 */
158 WFD_OEM_EVENT_SERV_DISC_RESP,
159 WFD_OEM_EVENT_SERV_DISC_STARTED,
161 WFD_OEM_EVENT_GROUP_FORMATION_FAILURE,
162 WFD_OEM_EVENT_INVITATION_ACCEPTED,
164 WFD_OEM_EVENT_ASP_SERV_RESP,
165 WFD_OEM_EVENT_ASP_PROV_START,
166 WFD_OEM_EVENT_ASP_PROV_DONE,
172 * This enumeration is used in frame id value in vsie method calls
175 WFD_OEM_VSIE_FRAME_P2P_PROBE_REQ = 0,
176 WFD_OEM_VSIE_FRAME_P2P_PROBE_RESP = 1,
177 WFD_OEM_VSIE_FRAME_P2P_GO_PROBE_RESP = 2,
178 WFD_OEM_VSIE_FRAME_P2P_GO_BEACON = 3,
179 WFD_OEM_VSIE_FRAME_P2P_PD_REQ = 4,
180 WFD_OEM_VSIE_FRAME_P2P_PD_RESP = 5,
181 WFD_OEM_VSIE_FRAME_P2P_GO_NEG_REQ = 6,
182 WFD_OEM_VSIE_FRAME_P2P_GO_NEG_RESP = 7,
183 WFD_OEM_VSIE_FRAME_P2P_GO_NEG_CONF = 8,
184 WFD_OEM_VSIE_FRAME_P2P_INV_REQ = 9,
185 WFD_OEM_VSIE_FRAME_P2P_INV_RESP = 10,
186 WFD_OEM_VSIE_FRAME_P2P_ASSOC_REQ = 11,
187 WFD_OEM_VSIE_FRAME_P2P_ASSOC_RESP = 12,
188 WFD_OEM_VSIE_FRAME_ASSOC_REQ = 13,
189 WFD_OEM_VSIE_FRAME_MAX
190 } wfd_oem_vsie_frames_e;
193 WFD_OEM_DISPLAY_TYPE_SOURCE,
194 WFD_OEM_DISPLAY_TYPE_PRISINK,
195 WFD_OEM_DISPLAY_TYPE_SECSINK,
196 WFD_OEM_DISPLAY_TYPE_DUAL,
197 } wfd_oem_display_type_e;
200 char ifname[OEM_IFACE_NAME_LEN+1];
201 char p2p_ifname[OEM_IFACE_NAME_LEN+1];
202 char group_ifname[OEM_IFACE_NAME_LEN+1];
203 char device_name[OEM_DEV_NAME_LEN+1];
207 gboolean persistent_reconnect;
208 int listen_reg_class;
210 int operating_reg_class;
211 int operating_channel;
212 char config_methods[OEM_CONFIG_METHOD_LEN+1];
213 gboolean no_group_iface;
214 int group_operating_freq;
230 unsigned int config_method;
231 long long unsigned search_id;
232 unsigned char service_type_length;
234 unsigned char instance_name_length;
236 } wfd_oem_advertise_service_s;
240 char dev_name[OEM_DEV_NAME_LEN+1];
241 unsigned char dev_addr[OEM_MACADDR_LEN];
242 unsigned char intf_addr[OEM_MACADDR_LEN];
243 unsigned char go_dev_addr[OEM_MACADDR_LEN];
252 wfd_oem_display_s display;
258 unsigned char p2p_dev_addr[OEM_MACADDR_LEN];
259 unsigned char p2p_intf_addr[OEM_MACADDR_LEN];
260 char name[OEM_DEV_NAME_LEN + 1];
267 int device_go_intent;
268 wfd_oem_display_s display;
269 unsigned char p2p_go_addr[OEM_MACADDR_LEN];
270 int has_asp_services;
271 int has_asp2_services;
274 } wfd_oem_dev_data_s;
277 char ssid[OEM_DEV_NAME_LEN+1];
278 unsigned char peer_device_addr[OEM_MACADDR_LEN];
279 unsigned char peer_intf_addr[OEM_MACADDR_LEN];
280 int persistent_group;
284 } wfd_oem_conn_data_s;
287 unsigned char sa[OEM_MACADDR_LEN];
288 unsigned char go_dev_addr[OEM_MACADDR_LEN];
289 unsigned char bssid[OEM_MACADDR_LEN];
294 } wfd_oem_invite_data_s;
297 char ssid[OEM_DEV_NAME_LEN+1];
300 char pass[OEM_PASS_PHRASE_LEN+1];
301 unsigned char go_dev_addr[OEM_MACADDR_LEN];
302 unsigned char ip_addr[OEM_IPADDR_LEN];
303 unsigned char ip_addr_mask[OEM_IPADDR_LEN];
304 unsigned char ip_addr_go[OEM_IPADDR_LEN];
305 } wfd_oem_group_data_s;
308 WFD_OEM_SERV_STATUS_SUCCESS,
309 WFD_OEM_SERV_STATUS_FAIL,
310 } wfd_oem_serv_status_e;
313 WFD_OEM_SERV_TYPE_ALL,
314 WFD_OEM_SERV_TYPE_BTADDR,
315 } wfd_oem_serv_type_e;
320 unsigned char data[OEM_MACADDR_LEN];
321 unsigned char value[20];
322 } wfd_oem_service_data_s;
326 unsigned char dev_addr[OEM_MACADDR_LEN]; /* device address */
327 unsigned char intf_addr[OEM_MACADDR_LEN];
329 char wps_pin[OEM_PINSTR_LEN+1]; /* just for DISPLAY */
330 char ifname[OEM_IFACE_NAME_LEN+1];
332 unsigned char ip_addr_peer[OEM_IPADDR_LEN];
340 WFD_OEM_EDATA_TYPE_NONE,
341 WFD_OEM_EDATA_TYPE_DEVICE,
342 WFD_OEM_EDATA_TYPE_CONN,
343 WFD_OEM_EDATA_TYPE_INVITE,
344 WFD_OEM_EDATA_TYPE_GROUP,
345 WFD_OEM_EDATA_TYPE_SERVICE,
346 WFD_OEM_EDATA_TYPE_NEW_SERVICE,
347 WFD_OEM_EDATA_TYPE_ASP_SERVICE,
348 WFD_OEM_EDATA_TYPE_ASP_PROV,
352 WFD_OEM_SCAN_MODE_ACTIVE,
353 WFD_OEM_SCAN_MODE_PASSIVE,
354 } wfd_oem_scan_mode_e;
357 WFD_OEM_SCAN_TYPE_FULL,
358 WFD_OEM_SCAN_TYPE_SOCIAL,
359 WFD_OEM_SCAN_TYPE_SPECIFIC,
360 WFD_OEM_SCAN_TYPE_CHANNEL1,
361 WFD_OEM_SCAN_TYPE_CHANNEL6,
362 WFD_OEM_SCAN_TYPE_CHANNEL11,
363 WFD_OEM_SCAN_TYPE_GO_FREQ,
364 } wfd_oem_scan_type_e;
367 WFD_OEM_WPS_MODE_NONE,
368 WFD_OEM_WPS_MODE_PBC = 0x1,
369 WFD_OEM_WPS_MODE_DISPLAY = 0x2,
370 WFD_OEM_WPS_MODE_KEYPAD = 0x4,
371 WFD_OEM_WPS_MODE_P2PS = 0x8,
372 } wfd_oem_wps_mode_e;
374 #define WFD_OEM_GROUP_FLAG_GROUP_OWNER 0x1
375 #define WFD_OEM_GROUP_FLAG_PERSISTENT_GROUP 0x2
378 WFD_OEM_CONN_TYPE_NONE,
379 WFD_OEM_CONN_TYPE_JOIN,
380 WFD_OEM_CONN_TYPE_AUTH,
381 WFD_OEM_CONN_TYPE_PERSISTENT = 0x4,
382 } wfd_oem_conn_flag_e;
385 WFD_OEM_DEV_ROLE_NONE,
388 } wfd_oem_dev_role_e;
397 } wfd_oem_scan_param_s;
401 int conn_flags; /* join, auth, persistent */
404 char wps_pin[OEM_PINSTR_LEN+1];
405 } wfd_oem_conn_param_s;
409 int persistent_group_id;
411 char passphrase[OEM_PASS_PHRASE_LEN + 1];
412 char ssid[OEM_DEV_NAME_LEN + 1];
413 } wfd_oem_group_param_s;
418 unsigned char go_dev_addr[OEM_MACADDR_LEN];
419 } wfd_oem_invite_param_s;
422 WFD_OEM_CONFIG_ATTR_STR_DEVICE_NAME,
423 WFD_OEM_CONFIG_ATTR_STR_SSID_POSTFIX,
424 WFD_OEM_CONFIG_ATTR_STR_COUNTRY,
425 WFD_OEM_CONFIG_ATTR_NUM_GO_INTENT,
426 WFD_OEM_CONFIG_ATTR_NUM_LISTEN_FREQ,
427 WFD_OEM_CONFIG_ATTR_NUM_OPER_FREQ,
428 WFD_OEM_CONFIG_ATTR_NUM_PREF_FREQ,
429 WFD_OEM_CONFIG_ATTR_NUM_PERSIST_RECONN,
430 WFD_OEM_CONFIG_ATTR_NUM_WIFI_DISPLAY,
431 WFD_OEM_CONFIG_ATTR_NUM_P2P_DISABLED,
432 WFD_OEM_CONFIG_ATTR_NUM_MAX_STA,
433 WFD_OEM_CONFIG_ATTR_LIMIT = WFD_OEM_CONFIG_ATTR_NUM_MAX_STA,
434 } wfd_oem_conf_attr_e;
437 WFD_OEM_SERVICE_TYPE_ALL,
438 WFD_OEM_SERVICE_TYPE_BONJOUR,
439 WFD_OEM_SERVICE_TYPE_UPNP,
440 WFD_OEM_SERVICE_TYPE_WS_DISCOVERY,
441 WFD_OEM_SERVICE_TYPE_WIFI_DISPLAY,
442 WFD_OEM_SERVICE_TYPE_VENDOR = 0xff,
443 } wfd_oem_service_type_e;
446 WFD_OEM_BONJOUR_RDATA_PTR = 0x0c,
447 WFD_OEM_BONJOUR_RDATA_TXT = 0x10,
448 } wfd_oem_bonjour_rdata_type_e;
451 /** Device address for which service discovery is requested */
452 char dev_addr[OEM_MACSTR_LEN+1];
454 /** service type requested */
455 char service_type[OEM_SERVICE_TYPE_LEN+1];
457 /** query identifier returned by wpa_supplicant for each service discovery request */
458 char query_id[OEM_QUERY_ID_LEN+1];
474 wfd_oem_bonjour_rdata_type_e rdata_type;
481 } wfd_oem_new_service_s;
483 #define WFD_OEM_STR_PROTO_WPA "WPA"
484 #define WFD_OEM_STR_PROTO_RSN "RSN"
485 #define WFD_OEM_STR_KEY_MGMT_IEEE8021X "WPA-EAP"
486 #define WFD_OEM_STR_KEY_MGMT_PSK "WPA-PSK"
487 #define WFD_OEM_STR_KEY_MGMT_NONE "WPA-NONE"
488 #define WFD_OEM_STR_CIPHER_NONE "NONE"
489 #define WFD_OEM_STR_CIPHER_WEP40 "WEP40"
490 #define WFD_OEM_STR_CIPHER_WEP104 "WEP104"
491 #define WFD_OEM_STR_CIPHER_TKIP "TKIP"
492 #define WFD_OEM_STR_CIPHER_CCMP "CCMP"
493 #define WFD_OEM_STR_AUTH_ALG_OPEN "OPEN"
494 #define WFD_OEM_STR_MODE_GC "0"
495 #define WFD_OEM_STR_MODE_GO "3"
498 WFD_OEM_PROTO_WPA = 0x01, /* WPA */
499 WFD_OEM_PROTO_RSN = 0x02, /* RSN */
503 WFD_OEM_KEY_MGMT_IEEE8021X = 0x01, /* WPA-EAP */
504 WFD_OEM_KEY_MGMT_PSK = 0x02, /* WPA-PSK */
505 WFD_OEM_KEY_MGMT_NONE = 0x04, /* WPA-NONE */
506 } wfd_oem_key_mgmt_e;
509 WFD_OEM_CIPHER_NONE = 0x01, /* NONE */
510 WFD_OEM_CIPHER_WEP40 = 0x02, /* WEP40 */
511 WFD_OEM_CIPHER_WEP104 = 0x04, /* WEP104 */
512 WFD_OEM_CIPHER_TKIP = 0x08, /* TKIP */
513 WFD_OEM_CIPHER_CCMP = 0x10, /* CCMP */
517 WFD_OEM_AUTH_ALG_OPEN = 0x01, /* OPEN */
518 } wfd_oem_auth_alg_e;
521 WFD_OEM_PERSISTENT_MODE_GC = 0x1,
522 WFD_OEM_PERSISTENT_MODE_GO = 0x2,
523 } wfd_oem_persistent_mode_e;
526 WFD_OEM_TYPE_ADVERTISE,
529 } wfd_oem_asp_service_type_e;
532 wfd_oem_asp_service_type_e type;
534 long long unsigned asp_search_id;
535 long long unsigned search_id;
538 unsigned char preferred_connection;
540 unsigned char status;
542 unsigned int config_method;
543 unsigned char tran_id;
550 } wfd_oem_asp_service_s;
553 unsigned char session_mac[OEM_MACADDR_LEN];
554 unsigned int session_id;
560 int persistent_group_id;
561 char *session_information;
565 unsigned char service_mac[OEM_MACADDR_LEN];
566 unsigned char group_mac[OEM_MACADDR_LEN];
567 char wps_pin[OEM_PINSTR_LEN+1];
568 unsigned char ip_addr[OEM_IPADDR_LEN];
569 } wfd_oem_asp_prov_s;
573 char ssid[OEM_DEV_NAME_LEN + 1];
574 unsigned char go_mac_address[OEM_MACADDR_LEN];
575 char psk[OEM_PASS_PHRASE_LEN +1];
583 unsigned char p2p_client_list[OEM_MAX_PEER_NUM][OEM_MACADDR_LEN];
584 } wfd_oem_persistent_group_s;
587 int channels[P2P_MAX_CHANNELS];
589 } wfd_oem_supported_channels_s;
592 void (*deactivated_cb) (wfd_oem_event_s *event);
593 void (*peer_found_cb) (wfd_oem_event_s *event);
594 void (*peer_disappeared_cb) (wfd_oem_event_s *event);
595 void (*discovery_finished_cb) (wfd_oem_event_s *event);
597 void (*prov_disc_req_cb) (wfd_oem_event_s *event);
598 void (*prov_disc_resp_cb) (wfd_oem_event_s *event);
599 void (*prov_disc_fail_cb) (wfd_oem_event_s *event);
601 void (*go_neg_req_cb) (wfd_oem_event_s *event);
602 void (*go_neg_fail_cb) (wfd_oem_event_s *event);
603 void (*go_neg_done_cb) (wfd_oem_event_s *event);
605 void (*wps_fail_cb) (wfd_oem_event_s *event);
606 void (*wps_done_cb) (wfd_oem_event_s *event);
607 void (*key_neg_fail_cb) (wfd_oem_event_s *event);
608 void (*key_neg_done_cb) (wfd_oem_event_s *event);
610 void (*conn_fail_cb) (wfd_oem_event_s *event);
611 void (*conn_done_cb) (wfd_oem_event_s *event);
613 void (*group_created_cb) (wfd_oem_event_s *event);
614 void (*group_destroyed_cb) (wfd_oem_event_s *event);
616 void (*invitation_req_cb) (wfd_oem_event_s *event);
617 void (*invitation_resp_cb) (wfd_oem_event_s *event);
618 void (*sta_connected_cb) (wfd_oem_event_s *event);
619 void (*sta_disconnected_cb) (wfd_oem_event_s *event);
621 void (*terminating_cb) (wfd_oem_event_s *event);
623 void (*serv_disc_resp_cb) (wfd_oem_event_s *event);
624 void (*serv_disc_started_cb) (wfd_oem_event_s *event);
626 void (*group_formation_failure_cb) (wfd_oem_event_s *event);
627 void (*invitation_accepted_cb) (wfd_oem_event_s *event);
629 void (*asp_serv_resp_cb) (wfd_oem_event_s *event);
630 void (*asp_prov_start_cb) (wfd_oem_event_s *event);
631 void (*asp_prov_done_cb) (wfd_oem_event_s *event);
634 } wfd_oem_event_cbs_s;
637 int (*configure) (wfd_oem_config_s *conf);
638 int (*init) (wfd_oem_event_cbs_s *event_cbs);
639 int (*deinit) (void);
640 int (*activate) (int concurrent);
641 int (*deactivate) (int concurrent);
643 int (*start_scan) (wfd_oem_scan_param_s *param);
644 int (*stop_scan) (void);
645 int (*get_visibility) (int *visibility);
646 int (*set_visibility) (int visibility);
647 int (*get_scan_result) (GList **peers, int *peer_count);
648 int (*get_peer_info) (unsigned char *peer_addr, wfd_oem_device_s **peer);
649 int (*prov_disc_req) (unsigned char *peer_addr, wfd_oem_wps_mode_e wps_mode, int join);
650 int (*connect) (unsigned char *peer_addr, wfd_oem_conn_param_s *param);
651 int (*disconnect) (unsigned char *peer_addr, int is_iface_addr);
652 int (*reject_connection) (unsigned char *peer_addr);
653 int (*cancel_connection) (unsigned char *peer_addr);
654 int (*get_connected_peers) (GList **peers, int *peer_count);
655 int (*wps_start) (unsigned char *peer_addr, int wps_mode, const char *pin);
656 int (*enrollee_start) (unsigned char *peer_addr, int wps_mode, const char *pin);
657 int (*wps_cancel) (void);
658 int (*get_pin) (char *pin);
659 int (*set_pin) (char *pin);
660 int (*generate_pin) (char **pin);
661 int (*get_supported_wps_mode) (int *wps_mode);
662 int (*create_group) (wfd_oem_group_param_s *param);
663 int (*destroy_group) (const char *ifname);
664 int (*invite) (unsigned char *peer_addr, wfd_oem_invite_param_s *param);
666 int (*get_dev_name) (char *dev_name);
667 int (*set_dev_name) (char *dev_name);
668 int (*get_dev_mac) (char *dev_mac);
669 int (*get_dev_type) (int *pri_dev_type, int *sec_dev_type);
670 int (*set_dev_type) (int pri_dev_type, int sec_dev_type);
671 int (*get_go_intent) (int *go_intent);
672 int (*set_go_intent) (int go_intent);
673 int (*set_country) (char *ccode);
675 int (*get_persistent_groups) (wfd_oem_persistent_group_s **groups, int *group_count);
676 int (*remove_persistent_group) (char *ssid, unsigned char *bssid);
677 int (*set_persistent_reconnect) (unsigned char *bssid, int reconnect);
679 int (*start_service_discovery) (unsigned char mac_addr[6], int service_type);
680 int (*cancel_service_discovery) (unsigned char mac_addr[6], int service_type);
682 int (*serv_add) (wfd_oem_new_service_s *service);
683 int (*serv_del) (wfd_oem_new_service_s *service);
684 int (*serv_disc_start) (wfd_oem_new_service_s *service);
685 int (*serv_disc_stop) (int handle);
687 int (*miracast_init) (int enable);
688 int (*set_display) (wfd_oem_display_s *wifi_display);
690 int (*refresh) (void);
691 int (*save_config) (void);
692 int (*set_operating_channel)(int channel);
693 int (*remove_all_network)(void);
694 int (*get_wpa_status)(int *wpa_status);
696 int (*advertise_service)(wfd_oem_asp_service_s *service, int replace);
697 int (*cancel_advertise_service)(wfd_oem_asp_service_s *service);
698 int (*seek_service)(wfd_oem_asp_service_s *service);
699 int (*cancel_seek_service)(wfd_oem_asp_service_s *service);
700 int (*asp_prov_disc_req)(wfd_oem_asp_prov_s *params);
702 int (*set_eapol_ip_config)(int enable);
704 int (*add_vsie)(wfd_oem_vsie_frames_e frame_id, const char* vsie);
705 int (*get_vsie)(wfd_oem_vsie_frames_e frame_id, char **vsie);
706 int (*remove_vsie)(wfd_oem_vsie_frames_e frame_id, const char *vsie);
707 int (*set_supported_wps_mode) (int wps_mode);
708 int (*remove_persistent_device) (unsigned char *peer_mac_addr);
709 int (*remove_all_persistent_device) (void);
711 int (*get_supported_channels) (wfd_oem_supported_channels_s *data);
716 int wfd_oem_configure(wfd_oem_ops_s *ops, wfd_oem_config_s *conf);
717 int wfd_oem_init(wfd_oem_ops_s *ops);
718 int wfd_oem_destroy(wfd_oem_ops_s *ops);
719 int wfd_oem_activate(wfd_oem_ops_s *ops, int concurrent);
720 int wfd_oem_deactivate(wfd_oem_ops_s *ops, int concurrent);
722 int wfd_oem_start_scan(wfd_oem_ops_s *ops, wfd_oem_scan_param_s *param);
723 int wfd_oem_stop_scan(wfd_oem_ops_s *ops);
724 int wfd_oem_get_visibility(wfd_oem_ops_s *ops, int *visibility);
725 int wfd_oem_set_visibility(wfd_oem_ops_s *ops, int visibility);
726 int wfd_oem_get_scan_result(wfd_oem_ops_s *ops, GList **peers, int *peer_count);
727 int wfd_oem_get_peer_info(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_device_s **peer);
728 int wfd_oem_prov_disc_req(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_wps_mode_e wps_mode, int join);
729 int wfd_oem_connect(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_conn_param_s *param);
730 int wfd_oem_disconnect(wfd_oem_ops_s *ops, unsigned char *peer_addr, int is_iface_addr);
731 int wfd_oem_reject_connection(wfd_oem_ops_s *ops, unsigned char *peer_addr);
732 int wfd_oem_cancel_connection(wfd_oem_ops_s *ops, unsigned char *peer_addr);
733 int wfd_oem_get_connected_peers(wfd_oem_ops_s *ops, GList **peers, int *peer_count);
734 int wfd_oem_wps_start(wfd_oem_ops_s *ops, unsigned char *peer_addr, int wps_mode, const char *pin);
735 int wfd_oem_enrollee_start(wfd_oem_ops_s *ops, unsigned char *peer_addr, int wps_mode, const char *pin);
736 int wfd_oem_wps_cancel(wfd_oem_ops_s *ops);
737 int wfd_oem_get_pin(wfd_oem_ops_s *ops, char *pin);
738 int wfd_oem_set_pin(wfd_oem_ops_s *ops, char *pin);
739 int wfd_oem_generate_pin(wfd_oem_ops_s *ops, char **pin);
740 int wfd_oem_get_supported_wps_mode(wfd_oem_ops_s *ops, int *wps_mode);
741 int wfd_oem_create_group(wfd_oem_ops_s *ops, wfd_oem_group_param_s *param);
742 int wfd_oem_destroy_group(wfd_oem_ops_s *ops, const char *ifname);
743 int wfd_oem_invite(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_invite_param_s *param);
745 int wfd_oem_get_dev_name(wfd_oem_ops_s *ops, char *dev_name);
746 int wfd_oem_set_dev_name(wfd_oem_ops_s *ops, char *dev_name);
747 int wfd_oem_get_dev_mac(wfd_oem_ops_s *ops, char *dev_mac);
748 int wfd_oem_get_dev_type(wfd_oem_ops_s *ops, int *pri_dev_type, int *sec_dev_type);
749 int wfd_oem_set_dev_type(wfd_oem_ops_s *ops, int priv_dev_type, int sec_dev_type);
750 int wfd_oem_get_go_intent(wfd_oem_ops_s *ops, int *go_intent);
751 int wfd_oem_set_go_intent(wfd_oem_ops_s *ops, int go_intent);
752 int wfd_oem_set_country(wfd_oem_ops_s *ops, char *ccode);
754 int wfd_oem_get_persistent_groups(wfd_oem_ops_s *ops, wfd_oem_persistent_group_s **groups, int *group_count);
755 int wfd_oem_remove_persistent_group(wfd_oem_ops_s *ops, char *ssid, unsigned char *bssid);
756 int wfd_oem_set_persistent_reconnect(wfd_oem_ops_s *ops, unsigned char *bssid, int reconnect);
758 int wfd_oem_start_service_discovery(wfd_oem_ops_s *ops, unsigned char *peer_addr, int service_type);
759 int wfd_oem_cancel_service_discovery(wfd_oem_ops_s *ops, unsigned char *peer_addr, int service_type);
761 int wfd_oem_serv_add(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service);
762 int wfd_oem_serv_del(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service);
763 int wfd_oem_serv_disc_start(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service);
764 int wfd_oem_serv_disc_stop(wfd_oem_ops_s *ops, int handle);
766 int wfd_oem_miracast_init(wfd_oem_ops_s *ops, int enable);
767 int wfd_oem_set_display(wfd_oem_ops_s *ops, wfd_oem_display_s *wifi_display);
769 int wfd_oem_refresh(wfd_oem_ops_s *ops);
771 int wfd_oem_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service, int replace);
772 int wfd_oem_cancel_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service);
773 int wfd_oem_seek_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service);
774 int wfd_oem_cancel_seek_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service);
775 int wfd_oem_asp_prov_disc_req(wfd_oem_ops_s *ops, wfd_oem_asp_prov_s *params);
777 int wfd_oem_set_eapol_ip_config(wfd_oem_ops_s *ops, int enable);
779 int wfd_oem_add_vsie(wfd_oem_ops_s *ops, wfd_oem_vsie_frames_e frame_id,
781 int wfd_oem_get_vsie(wfd_oem_ops_s *ops, wfd_oem_vsie_frames_e frame_id,
783 int wfd_oem_remove_vsie(wfd_oem_ops_s *ops, wfd_oem_vsie_frames_e frame_id,
785 int wfd_oem_get_supported_wps_mode(wfd_oem_ops_s *ops, int *wps_mode);
786 int wfd_oem_set_supported_wps_mode(wfd_oem_ops_s *ops, int wps_mode);
787 int wfd_oem_remove_persistent_device(wfd_oem_ops_s *ops, unsigned char *peer_mac_address);
788 int wfd_oem_remove_all_persistent_device(wfd_oem_ops_s *ops);
790 int wfd_oem_get_supported_channels(wfd_oem_ops_s *ops, wfd_oem_supported_channels_s *data);
792 #if defined TIZEN_ENABLE_PRD
794 void (*prd_example_cb) (wfd_oem_event_s *event);
795 } wfd_oem_prd_event_cbs_s;
798 int (*prd_init) (wfd_oem_event_cbs_s *event_cbs);
801 int wfd_oem_prd_init(wfd_oem_ops_s *ops);
802 #endif /* TIZEN_ENABLE_PRD */
808 #endif /* __WIFI_DIRECT_OEM_H__ */