Add CAPIs to control VSIE, set freq. for scan and get connecting peers 01/123901/16
authorYu Jiung <jiung.yu@samsung.com>
Fri, 7 Apr 2017 10:22:15 +0000 (19:22 +0900)
committerJiung Yu <jiung.yu@samsung.com>
Tue, 25 Apr 2017 04:20:39 +0000 (13:20 +0900)
Change-Id: I353369f53620c2b5c4721f8cb265cdbcd26118a3
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
include/wifi-direct.h

index fabeba3..bd525d8 100755 (executable)
@@ -38,24 +38,24 @@ extern "C" {
  * @since_tizen 2.3
  */
 typedef enum {
-       WIFI_DIRECT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
-       WIFI_DIRECT_ERROR_NOT_PERMITTED = TIZEN_ERROR_NOT_PERMITTED, /**< Operation not permitted(1) */
-       WIFI_DIRECT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory(12) */
-       WIFI_DIRECT_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied(13) */
-       WIFI_DIRECT_ERROR_RESOURCE_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Device or resource busy(16) */
-       WIFI_DIRECT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid function parameter(22) */
-       WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT = TIZEN_ERROR_CONNECTION_TIME_OUT, /**< Connection timed out(110) */
-       WIFI_DIRECT_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */
-       WIFI_DIRECT_ERROR_NOT_INITIALIZED = TIZEN_ERROR_WIFI_DIRECT|0x01, /**< Not initialized */
-       WIFI_DIRECT_ERROR_COMMUNICATION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x02, /**< I/O error */
-       WIFI_DIRECT_ERROR_WIFI_USED = TIZEN_ERROR_WIFI_DIRECT|0x03, /**< WiFi is being used */
-       WIFI_DIRECT_ERROR_MOBILE_AP_USED = TIZEN_ERROR_WIFI_DIRECT|0x04, /**< Mobile AP is being used */
-       WIFI_DIRECT_ERROR_CONNECTION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x05, /**< Connection failed */
-       WIFI_DIRECT_ERROR_AUTH_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x06, /**< Authentication failed */
-       WIFI_DIRECT_ERROR_OPERATION_FAILED = TIZEN_ERROR_WIFI_DIRECT|0x07, /**< Operation failed */
-       WIFI_DIRECT_ERROR_TOO_MANY_CLIENT = TIZEN_ERROR_WIFI_DIRECT|0x08, /**< Too many client */
-       WIFI_DIRECT_ERROR_ALREADY_INITIALIZED = TIZEN_ERROR_WIFI_DIRECT|0x09, /**< Already initialized client */
-       WIFI_DIRECT_ERROR_CONNECTION_CANCELED = TIZEN_ERROR_WIFI_DIRECT|0x10, /**< Connection canceled by local device */
+       WIFI_DIRECT_ERROR_NONE                  = TIZEN_ERROR_NONE,                 /**< Successful */
+       WIFI_DIRECT_ERROR_NOT_PERMITTED         = TIZEN_ERROR_NOT_PERMITTED,        /**< Operation not permitted(1) */
+       WIFI_DIRECT_ERROR_OUT_OF_MEMORY         = TIZEN_ERROR_OUT_OF_MEMORY,        /**< Out of memory(12) */
+       WIFI_DIRECT_ERROR_PERMISSION_DENIED     = TIZEN_ERROR_PERMISSION_DENIED,    /**< Permission denied(13) */
+       WIFI_DIRECT_ERROR_RESOURCE_BUSY         = TIZEN_ERROR_RESOURCE_BUSY,        /**< Device or resource busy(16) */
+       WIFI_DIRECT_ERROR_INVALID_PARAMETER     = TIZEN_ERROR_INVALID_PARAMETER,    /**< Invalid function parameter(22) */
+       WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT   = TIZEN_ERROR_CONNECTION_TIME_OUT,  /**< Connection timed out(110) */
+       WIFI_DIRECT_ERROR_NOT_SUPPORTED         = TIZEN_ERROR_NOT_SUPPORTED,        /**< Not supported */
+       WIFI_DIRECT_ERROR_NOT_INITIALIZED       = TIZEN_ERROR_WIFI_DIRECT|0x01,     /**< Not initialized */
+       WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  = TIZEN_ERROR_WIFI_DIRECT|0x02,     /**< I/O error */
+       WIFI_DIRECT_ERROR_WIFI_USED             = TIZEN_ERROR_WIFI_DIRECT|0x03,     /**< WiFi is being used */
+       WIFI_DIRECT_ERROR_MOBILE_AP_USED        = TIZEN_ERROR_WIFI_DIRECT|0x04,     /**< Mobile AP is being used */
+       WIFI_DIRECT_ERROR_CONNECTION_FAILED     = TIZEN_ERROR_WIFI_DIRECT|0x05,     /**< Connection failed */
+       WIFI_DIRECT_ERROR_AUTH_FAILED           = TIZEN_ERROR_WIFI_DIRECT|0x06,     /**< Authentication failed */
+       WIFI_DIRECT_ERROR_OPERATION_FAILED      = TIZEN_ERROR_WIFI_DIRECT|0x07,     /**< Operation failed */
+       WIFI_DIRECT_ERROR_TOO_MANY_CLIENT       = TIZEN_ERROR_WIFI_DIRECT|0x08,     /**< Too many client */
+       WIFI_DIRECT_ERROR_ALREADY_INITIALIZED   = TIZEN_ERROR_WIFI_DIRECT|0x09,     /**< Already initialized client */
+       WIFI_DIRECT_ERROR_CONNECTION_CANCELED   = TIZEN_ERROR_WIFI_DIRECT|0x10,     /**< Connection canceled by local device */
 } wifi_direct_error_e;
 
 
@@ -277,6 +277,85 @@ typedef enum {
        WIFI_DIRECT_DISCOVERY_CHANNEL11 = 11, /**< Scan channel 11*/
 } wifi_direct_discovery_channel_e;
 
+/**
+ * @brief Enumeration for Wi-Fi Frame type.
+ * @since_tizen 4.0
+ * @see wifi_direct_add_vsie()
+ * @see wifi_direct_remove_vsie()
+ * @see wifi_direct_get_vsie()
+ */
+typedef enum {
+       /**
+        * P2P probe request frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_PROBE_REQ,
+
+       /**
+        * P2P probe response frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_PROBE_RESP,
+
+       /**
+        * P2P group owner probe response frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_GO_PROBE_RESP,
+
+       /**
+        * P2P probe request frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_GO_BEACON,
+
+       /**
+        * P2P provision discovery request frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_PD_REQ,
+
+       /**
+        * P2P provision discovery response frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_PD_RESP,
+
+       /**
+        * P2P probe request frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_GO_NEG_REQ,
+
+       /**
+        * P2P group owner negotiation response frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_GO_NEG_RESP,
+
+       /**
+        * P2P group owner negotiation confirmation frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_GO_NEG_CONF,
+
+       /**
+        * P2P invitation request frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_INV_REQ,
+
+       /**
+        * P2P invitation response frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_INV_RESP,
+
+       /**
+        * P2P association request frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_ASSOC_REQ,
+
+       /**
+        * P2P association response frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_P2P_ASSOC_RESP,
+
+       /**
+        * Association request frame
+        */
+       WIFI_DIRECT_VSIE_FRAME_ASSOC_REQ,
+} wifi_direct_vsie_frames_e;
+
 
 /**
  * @brief Wi-Fi Direct buffer structure to store result of peer discovery.
@@ -772,23 +851,36 @@ int wifi_direct_deactivate(void);
 /**
  * @brief Starts discovery to find all P2P capable devices, asynchronously.
  * @details If application developers call wifi_direct_start_discovery() with @a listen_only as @c true,
- *          then skip the initial 802.11 Scan and then enter Listen state instead of cycling between Scan and Listen.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege http://tizen.org/privilege/wifidirect
- * @param[in] listen_only The status of listen only: (@c true = listen only, @c false = cycling between Scan and Listen)
- * @param[in] timeout  Specifies the duration of discovery period, in seconds (if 0, a default value will be used)
- * @return @c 0 on success,
- *         otherwise a negative error value
- * @retval #WIFI_DIRECT_ERROR_NONE Successful
- * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
- * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
- * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
- * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
- * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
+ *          then skip the initial 802.11 Scan and then enter Listen state instead of
+ *          cycling between Scan and Listen.
+ * @since_tizen 2.3
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/wifidirect
+ * @remarks The function can be called if the Wi-Fi Direct state is one of:\n
+ *          #WIFI_DIRECT_STATE_ACTIVATED\n
+ *          #WIFI_DIRECT_STATE_DISCOVERING\n
+ *          #WIFI_DIRECT_STATE_GROUP_OWNER\n
+ *          The function can be called even if there is another discovery in progress.
+ *          All started processes will run simultaneously. Each process will receive
+ *          #WIFI_DIRECT_DISCOVERY_FINISHED
+ *          event in wifi_direct_discovery_state_chagned_cb().
+ * @param[in] listen_only  The status of listen only: (@c true = listen only,
+ *                         @c false = cycling between Scan and Listen)
+ * @param[in] timeout      Specifies the duration of discovery period, in seconds.
+ *                         If @c 0, then there is no limit on how long the discovery takes.
+ *                         The actual limit (and time after which discovery stops) depends on
+ *                         the vendor's hardware and firmware
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #WIFI_DIRECT_ERROR_NONE                  Successful
+ * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  Communication failed
+ * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED         Operation not permitted
+ * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY         Device or resource busy
  * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
  * @post wifi_direct_discovery_state_chagned_cb() will be invoked.
  * @see wifi_direct_activate()
@@ -813,20 +905,32 @@ int wifi_direct_start_discovery(bool listen_only, int timeout);
  * @since_tizen 2.3
  * @privlevel public
  * @privilege http://tizen.org/privilege/wifidirect
- * @param[in] listen_only The status of listen only: (@c true = listen only, @c false = cycling between Scan and Listen)
- * @param[in] timeout Specifies the duration of discovery period, in seconds. If @c 0, a default value will be used
- * @param[in] channel Specifies the discovery channel. (Full scan, social channels, channel 1, 6, 11)
- * @return @c 0 on success,
- *         otherwise a negative error value
- * @retval #WIFI_DIRECT_ERROR_NONE Successful
- * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
- * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
- * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
- * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
- * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
+ * @remarks The function can be called if the Wi-Fi Direct state is one of:\n
+ *          #WIFI_DIRECT_STATE_ACTIVATED\n
+ *          #WIFI_DIRECT_STATE_DISCOVERING\n
+ *          #WIFI_DIRECT_STATE_GROUP_OWNER\n
+ *          The function can be called even if there is another discovery in progress.
+ *          All started processes will run simultaneously. Each process will receive
+ *          #WIFI_DIRECT_DISCOVERY_FINISHED
+ *          event in wifi_direct_discovery_state_chagned_cb().
+ * @param[in] listen_only  The status of listen only: (@c true = listen only,
+ *                         @c false = cycling between Scan and Listen)
+ * @param[in] timeout      Specifies the duration of discovery period, in seconds.
+ *                         If @c 0, then there is no limit on how long the discovery takes.
+ *                         The actual limit (and time after which discovery stops) depends on
+ *                         the vendor's hardware and firmware
+ * @param[in] channel      Specifies the discovery channel. (Full scan, social channels, channel 1, 6, 11)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #WIFI_DIRECT_ERROR_NONE                  Successful
+ * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  Communication failed
+ * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED         Operation not permitted
+ * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY         Device or resource busy
  * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
  * @post wifi_direct_discovery_state_chagned_cb() will be invoked.
  * @see wifi_direct_activate()
@@ -835,25 +939,69 @@ int wifi_direct_start_discovery(bool listen_only, int timeout);
  */
 int wifi_direct_start_discovery_specific_channel(bool listen_only, int timeout, wifi_direct_discovery_channel_e channel);
 
+/**
+ * @brief Starts discovery to find all P2P capable devices with specified frequency, asynchronously.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/wifidirect
+ * @remarks The function can be called if the Wi-Fi Direct state is one of:\n
+ *          #WIFI_DIRECT_STATE_ACTIVATED\n
+ *          #WIFI_DIRECT_STATE_DISCOVERING\n
+ *          #WIFI_DIRECT_STATE_GROUP_OWNER\n
+ *          The function can be called even if there is another discovery in progress.
+ *          All started processes will run simultaneously. Each process will receive
+ *          #WIFI_DIRECT_DISCOVERY_FINISHED
+ *          event in wifi_direct_discovery_state_chagned_cb().
+ * @param[in] listen_only  Indicates mode in which the discovery service will work.
+ *                         If @c true, the service will only listen, otherwise
+ *                         it will cycle between scanning and listening
+ * @param[in] timeout      Specifies the duration of discovery period, in seconds.
+ *                         If @c 0, then there is no limit on how long the discovery takes.
+ *                         The actual limit (and time after which discovery stops) depends on
+ *                         the vendor's hardware and firmware
+ * @param[in] frequency    Specifies the discovery frequency in MHz
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #WIFI_DIRECT_ERROR_NONE                  Successful
+ * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  Communication failed
+ * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED         Operation not permitted
+ * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY         Device or resource busy
+ * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
+ * @post wifi_direct_discovery_state_chagned_cb() will be invoked.
+ * @see wifi_direct_activate()
+ * @see wifi_direct_cancel_discovery()
+ * @see wifi_direct_discovery_state_chagned_cb()
+ * @see wifi_direct_discovered_peer_cb()
+ */
+int wifi_direct_start_discovery_specific_freq(bool listen_only, int timeout, int frequency);
 
 /**
  * @brief Cancels discovery process, asynchronously.
+ * @details This function stops all discovery processes started with
+ *          wifi_direct_start_discovery... functions.
  * @since_tizen 2.3
  * @privlevel public
  * @privilege http://tizen.org/privilege/wifidirect
  * @return @c 0 on success,
  *         otherwise a negative error value
- * @retval #WIFI_DIRECT_ERROR_NONE Successful
- * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED Operation failed
- * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED Communication failed
- * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED Operation not permitted
- * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED Not supported
- * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY Device or resource busy
+ * @retval #WIFI_DIRECT_ERROR_NONE                  Successful
+ * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  Communication failed
+ * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED         Operation not permitted
+ * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY         Device or resource busy
  * @pre Discovery must be started by wifi_direct_start_discovery().
  * @post wifi_direct_discovery_state_chagned_cb() will be invoked.
  * @see wifi_direct_start_discovery()
+ * @see wifi_direct_start_discovery_specific_channel()
+ * @see wifi_direct_start_discovery_specific_freq()
  * @see wifi_direct_discovery_state_chagned_cb()
  */
 int wifi_direct_cancel_discovery(void);
@@ -2450,21 +2598,128 @@ int wifi_direct_get_session_timer(int *seconds);
 * @param[out] rssi RSSI value of the peer device
 * @return @c 0 on success,
 *         otherwise a negative error value
-* @retval #WIFI_DIRECT_ERROR_NONE  Successful
-* @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER  Invalid parameter
-* @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED  Operation failed
-* @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  Communication failed
-* @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED  Permission denied
-* @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED  Operation not permitted
-* @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED  Not supported
-* @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED  Not initialized
-* @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY  Device or resource busy
+ * @retval #WIFI_DIRECT_ERROR_NONE                  Successful
+ * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  Communication failed
+ * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED         Operation not permitted
+ * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY         Device or resource busy
 * @pre Wi-Fi Direct service must be initialized by wifi_direct_initialize().
 * @see wifi_direct_activate()
 */
 int wifi_direct_get_peer_rssi(char *mac_address, int *rssi);
 
 /**
+ * @brief Adds the Wi-Fi Vendor Specific Information Element (VSIE) to specific frame type.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/wifidirect
+ * @remarks @a vsie_str for @a frame_id will be in effect until Wi-Fi Direct is deactivated.
+ * @param[in] frame_id frame ID for setting VSIE
+ * @param[in] vsie_str VSIE data
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #WIFI_DIRECT_ERROR_NONE                  Successful
+ * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  Communication failed
+ * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED         Operation not permitted
+ * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY         Device or resource busy
+ * @pre Wi-Fi Direct service must be activated by wifi_direct_activate().
+ * @see wifi_direct_activate()
+ * @see wifi_direct_remove_vsie()
+ * @see wifi_direct_get_vsie()
+ */
+int wifi_direct_add_vsie(wifi_direct_vsie_frames_e frame_id, const char *vsie_str);
+
+
+/**
+ * @brief Gets the Wi-Fi Vendor Specific Information Elements (VSIE) from specific frame.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/wifidirect
+ * @remarks @a vsie_str must be released with free().
+ * @param[in] frame_id  frame ID for setting VSIE
+ * @param[out] vsie_str VSIE data
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #WIFI_DIRECT_ERROR_NONE                  Successful
+ * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  Communication failed
+ * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED         Operation not permitted
+ * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY         Device or resource busy
+ * @pre Wi-Fi Direct service must be activated by wifi_direct_activate()
+ *      and set VSIE for specific frame by wifi_direct_add_vsie().
+ * @see wifi_direct_activate()
+ * @see wifi_direct_add_vsie()
+ * @see wifi_direct_remove_vsie()
+ */
+int wifi_direct_get_vsie(wifi_direct_vsie_frames_e frame_id, char **vsie_str);
+
+
+/**
+ * @brief Removes the Wi-Fi Vendor Specific Information Element (VSIE) from specific frame.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/wifidirect
+ * @remarks @a vsie_str for @a frame_id will be in effect until Wi-Fi Direct is deactivated.
+ * @param[in] frame_id frame ID for removing VSIE
+ * @param[in] vsie_str VSIE data
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #WIFI_DIRECT_ERROR_NONE                  Successful
+ * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  Communication failed
+ * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED         Operation not permitted
+ * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY         Device or resource busy
+ * @pre Wi-Fi Direct service must be activated by wifi_direct_activate()
+ *      and set VSIE for specific frame by wifi_direct_add_vsie().
+ * @see wifi_direct_activate()
+ * @see wifi_direct_add_vsie()
+ * @see wifi_direct_get_vsie()
+ */
+int wifi_direct_remove_vsie(wifi_direct_vsie_frames_e frame_id, const char *vsie_str);
+
+/**
+ * @brief Gets the information of peer devices which is in the connecting state.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/wifidirect
+ * @remarks @a peer_info must be released with free().
+ * @param[out] peer_info connecting peer device data
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #WIFI_DIRECT_ERROR_NONE                  Successful
+ * @retval #WIFI_DIRECT_ERROR_INVALID_PARAMETER     Invalid parameter
+ * @retval #WIFI_DIRECT_ERROR_OPERATION_FAILED      Operation failed
+ * @retval #WIFI_DIRECT_ERROR_COMMUNICATION_FAILED  Communication failed
+ * @retval #WIFI_DIRECT_ERROR_PERMISSION_DENIED     Permission denied
+ * @retval #WIFI_DIRECT_ERROR_NOT_PERMITTED         Operation not permitted
+ * @retval #WIFI_DIRECT_ERROR_NOT_SUPPORTED         Not supported
+ * @retval #WIFI_DIRECT_ERROR_NOT_INITIALIZED       Not initialized
+ * @retval #WIFI_DIRECT_ERROR_RESOURCE_BUSY         Device or resource busy
+ * @pre Wi-Fi Direct service must be connecting state by wifi_direct_connect()
+ *      or by receiving connection request from p2p peer device.
+ * @see wifi_direct_activate()
+ * @see wifi_direct_connect()
+ */
+int wifi_direct_get_connecting_peer_info(wifi_direct_discovered_peer_info_s **peer_info);
+
+/**
  * @}
  */