Home | History | Annotate | Download | only in p2p

Lines Matching refs:p2p

2  * Wi-Fi Direct - P2P module
57 * struct p2p_go_neg_results - P2P Group Owner Negotiation results
106 * peer_device_addr - P2P Device Address of the peer
111 * peer_interface_addr - P2P Interface Address of the peer
152 * struct p2p_peer_info - P2P peer information
156 * p2p_device_addr - P2P Device Address of the peer
244 * struct p2p_config - P2P configuration
246 * This configuration is provided to the P2P module during initialization with
251 * country - Country code to use in P2P operations
320 * dev_addr - P2P Device Address
390 * p2p_scan - Request a P2P scan/search
400 * This callback function is used to request a P2P scan or search
414 * p2p_scan_res_handler() for each scan result that has a P2P IE and
436 * pointer can be %NULL). The WPS and P2P IEs to be added for Probe
486 * state has started, p2p_listen_cb() must be called to notify the P2P
488 * called to notify the P2P module that the driver is not in the Listen
511 * @interface_addr: P2P Interface Address of the GO
526 * dev_found - Notification of a found P2P Device
529 * @info: P2P peer information
532 * This callback is used to notify that a new P2P Device has been
542 * dev_lost - Notification of a lost P2P Device
544 * @dev_addr: P2P Device Address of the lost P2P Device
546 * This callback is used to notify that a P2P Device has been deleted.
562 * This callback is used to notify that a P2P Device is requesting
597 * @tlvs: P2P Service Request TLV(s)
616 * @tlvs: P2P Service Response TLV(s)
632 * @dev_addr: P2P Device Address of the found P2P Device
638 * @group_id: P2P Group ID (or %NULL if not included)
639 * @group_id_len: Length of P2P Group ID
642 * Request frame that the P2P module accepted.
682 * @bssid: P2P Group BSSID from the request or %NULL if not included
683 * @go_dev_addr: GO Device Address from P2P Group ID
684 * @ssid: SSID from P2P Group ID
687 * @group_bssid: Buffer for returning P2P Group BSSID (if local end GO)
720 * @bssid: P2P Group BSSID or %NULL if not received
742 * @bssid: P2P Group BSSID or %NULL if not received
759 * @dev_addr: P2P Device Address of a GO
760 * Returns: 1 if we are connected as a P2P client to the specified GO
767 /* P2P module initialization/deinitialization */
770 * p2p_init - Initialize P2P module
771 * @cfg: P2P module configuration
774 * This function is used to initialize global P2P module context (one per
775 * device). The P2P module will keep a copy of the configuration data, so the
778 * the P2P module is deinitialized with p2p_deinit().
783 * p2p_deinit - Deinitialize P2P module
784 * @p2p: P2P module context from p2p_init()
786 void p2p_deinit(struct p2p_data *p2p);
789 * p2p_flush - Flush P2P module state
790 * @p2p: P2P module context from p2p_init()
792 * This command removes the P2P module state like peer device entries.
794 void p2p_flush(struct p2p_data *p2p);
798 * @p2p: P2P module context from p2p_init()
799 * @addr: P2P peer entry to be unauthorized
802 * This command removes any connection authorization from the specified P2P
807 int p2p_unauthorize(struct p2p_data *p2p, const u8 *addr);
811 * @p2p: P2P module context from p2p_init()
814 * This function can be used to update the P2P module configuration with
817 int p2p_set_dev_name(struct p2p_data *p2p, const char *dev_name);
819 int p2p_set_manufacturer(struct p2p_data *p2p, const char *manufacturer);
820 int p2p_set_model_name(struct p2p_data *p2p, const char *model_name);
821 int p2p_set_model_number(struct p2p_data *p2p, const char *model_number);
822 int p2p_set_serial_number(struct p2p_data *p2p, const char *serial_number);
824 void p2p_set_config_methods(struct p2p_data *p2p, u16 config_methods);
825 void p2p_set_uuid(struct p2p_data *p2p, const u8 *uuid);
829 * @p2p: P2P module context from p2p_init()
832 * This function can be used to update the P2P module configuration with
835 int p2p_set_pri_dev_type(struct p2p_data *p2p, const u8 *pri_dev_type);
839 * @p2p: P2P module context from p2p_init()
842 * This function can be used to update the P2P module configuration with
845 int p2p_set_sec_dev_types(struct p2p_data *p2p, const u8 dev_types[][8],
848 int p2p_set_country(struct p2p_data *p2p, const char *country);
860 * p2p_find - Start P2P Find (Device Discovery)
861 * @p2p: P2P module context from p2p_init()
872 int p2p_find(struct p2p_data *p2p, unsigned int timeout,
878 * p2p_stop_find - Stop P2P Find (Device Discovery)
879 * @p2p: P2P module context from p2p_init()
881 void p2p_stop_find(struct p2p_data *p2p);
884 * p2p_stop_find_for_freq - Stop P2P Find for next oper on specific freq
885 * @p2p: P2P module context from p2p_init()
891 void p2p_stop_find_for_freq(struct p2p_data *p2p, int freq);
894 * p2p_listen - Start P2P Listen state for specified duration
895 * @p2p: P2P module context from p2p_init()
899 * This function can be used to request the P2P module to keep the device
902 * much use for normal P2P operations.
904 int p2p_listen(struct p2p_data *p2p, unsigned int timeout);
907 * p2p_stop_listen - Stop P2P Listen
908 * @p2p: P2P module context from p2p_init()
910 void p2p_stop_listen(struct p2p_data *p2p);
913 * p2p_connect - Start P2P group formation (GO negotiation)
914 * @p2p: P2P module context from p2p_init()
915 * @peer_addr: MAC address of the peer P2P client
933 int p2p_connect(struct p2p_data *p2p, const u8 *peer_addr,
941 * p2p_authorize - Authorize P2P group formation (GO negotiation)
942 * @p2p: P2P module context from p2p_init()
943 * @peer_addr: MAC address of the peer P2P client
961 int p2p_authorize(struct p2p_data *p2p, const u8 *peer_addr,
970 * @p2p: P2P module context from p2p_init()
971 * @peer_addr: MAC address of the peer P2P client
974 int p2p_reject(struct p2p_data *p2p, const u8 *peer_addr);
978 * @p2p: P2P module context from p2p_init()
979 * @peer_addr: MAC address of the peer P2P client
986 * This function can be used to request a discovered P2P peer to display a PIN
994 int p2p_prov_disc_req(struct p2p_data *p2p, const u8 *peer_addr,
1000 * @p2p: P2P module context from p2p_init()
1002 * @tlvs: P2P Service Query TLV(s)
1008 void * p2p_sd_request(struct p2p_data *p2p, const u8 *dst,
1012 void * p2p_sd_request_wfd(struct p2p_data *p2p, const u8 *dst,
1018 * @p2p: P2P module context from p2p_init()
1022 int p2p_sd_cancel_request(struct p2p_data *p2p, void *req);
1026 * @p2p: P2P module context from p2p_init()
1030 * @resp_tlvs: P2P Service Response TLV(s)
1035 void p2p_sd_response(struct p2p_data *p2p, int freq, const u8 *dst,
1040 * @p2p: P2P module context from p2p_init()
1046 void p2p_sd_service_update(struct p2p_data *p2p);
1056 * p2p_invite - Invite a P2P Device into a group
1057 * @p2p: P2P module context from p2p_init()
1058 * @peer: Device Address of the peer P2P Device
1070 int p2p_invite(struct p2p_data *p2p, const u8 *peer, enum p2p_invite_role role,
1077 * @p2p: P2P module context from p2p_init()
1078 * @go_interface_addr: GO P2P Interface Address
1079 * @own_interface_addr: Own P2P Interface Address for this group
1090 int p2p_presence_req(struct p2p_data *p2p, const u8 *go_interface_addr,
1097 * @p2p: P2P module context from p2p_init()
1104 * Extended Listen Timing. When enabled, the P2P Device will become
1108 int p2p_ext_listen(struct p2p_data *p2p, unsigned int period,
1115 * @p2p: P2P module context from p2p_init()
1121 void p2p_wps_success_cb(struct p2p_data *p2p, const u8 *mac_addr);
1125 * @p2p: P2P module context from p2p_init()
1131 void p2p_group_formation_failed(struct p2p_data *p2p);
1135 * @p2p: P2P module context from p2p_init()
1136 * @addr: Peer P2P Device Address
1143 u16 p2p_get_provisioning_info(struct p2p_data *p2p, const u8 *addr);
1147 * @p2p: P2P module context from p2p_init()
1148 * @iface_addr: Peer P2P Device Address
1153 void p2p_clear_provisioning_info(struct p2p_data *p2p, const u8 *addr);
1163 * @P2P_PREQ_NOT_P2P: frame was not a P2P probe request
1164 * @P2P_PREQ_P2P_NOT_PROCESSED: frame was P2P but wasn't processed
1165 * @P2P_PREQ_P2P_PROCESSED: frame has been processed by P2P
1177 * @p2p: P2P module context from p2p_init()
1186 p2p_probe_req_rx(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
1191 * @p2p: P2P module context from p2p_init()
1200 void p2p_rx_action(struct p2p_data *p2p, const u8 *da, const u8 *sa,
1205 * p2p_scan_res_handler - Indicate a P2P scan results
1206 * @p2p: P2P module context from p2p_init()
1216 * This function is called to indicate a scan result entry with P2P IE from a
1221 * driver/firmware designs. The ies buffer need to include at least the P2P IE,
1223 * caller does not need to check that the IEs contain a P2P IE before calling
1230 int p2p_scan_res_handler(struct p2p_data *p2p, const u8 *bssid, int freq,
1236 * @p2p: P2P module context from p2p_init()
1238 * This function is called to indicate that all P2P scan results from a scan
1244 void p2p_scan_res_handled(struct p2p_data *p2p);
1254 * @p2p: P2P module context from p2p_init()
1264 void p2p_send_action_cb(struct p2p_data *p2p, unsigned int freq, const u8 *dst,
1270 * @p2p: P2P module context from p2p_init()
1277 void p2p_listen_cb(struct p2p_data *p2p, unsigned int freq,
1282 * @p2p: P2P module context from p2p_init()
1289 int p2p_listen_end(struct p2p_data *p2p, unsigned int freq);
1291 void p2p_deauth_notif(struct p2p_data *p2p, const u8 *bssid, u16 reason_code,
1294 void p2p_disassoc_notif(struct p2p_data *p2p, const u8 *bssid, u16 reason_code,
1298 /* Per-group P2P state for GO */
1303 * struct p2p_group_config - P2P group configuration
1305 * This configuration is provided to the P2P module during initialization of
1318 * interface_addr - P2P Interface Address of the group
1345 * @beacon_ies: P2P IE for Beacon frames or %NULL if no change
1346 * @proberesp_ies: P2P Ie for Probe Response frames
1348 * P2P module uses this callback function to notify whenever the P2P IE
1367 * p2p_group_init - Initialize P2P group
1368 * @p2p: P2P module context from p2p_init()
1369 * @config: P2P group configuration (will be freed by p2p_group_deinit())
1372 * This function is used to initialize per-group P2P module context. Currently,
1373 * this is only used to manage GO functionality and P2P clients do not need to
1376 struct p2p_group * p2p_group_init(struct p2p_data *p2p,
1380 * p2p_group_deinit - Deinitialize P2P group
1381 * @group: P2P group context from p2p_group_init()
1386 * p2p_group_notif_assoc - Notification of P2P client association with GO
1387 * @group: P2P group context from p2p_group_init()
1388 * @addr: Interface address of the P2P client
1397 * p2p_group_assoc_resp_ie - Build P2P IE for (re)association response
1398 * @group: P2P group context from p2p_group_init()
1400 * Returns: P2P IE for (Re)association Response or %NULL on failure
1408 * p2p_group_notif_disassoc - Notification of P2P client disassociation from GO
1409 * @group: P2P group context from p2p_group_init()
1410 * @addr: Interface address of the P2P client
1416 * @group: P2P group context from p2p_group_init()
1422 * @group: P2P group context from p2p_group_init()
1427 * Notify the P2P group management about a new NoA contents. This will be
1428 * inserted into the P2P IEs in Beacon and Probe Response frames with rest of
1436 * @group: P2P group context from p2p_group_init()
1448 * p2p_group_match_dev_id - Match P2P Device Address in group with requested device id
1450 int p2p_group_match_dev_id(struct p2p_group *group, struct wpabuf *p2p);
1454 * @group: P2P
1464 * p2p_ie_text - Build text format description of P2P IE
1465 * @p2p_ie: P2P IE
1470 * This function can be used to parse P2P IE contents into text format
1476 * p2p_scan_result_text - Build text format description of P2P IE
1483 * This function can be used to parse P2P IE contents into text format
1489 * p2p_parse_dev_addr_in_p2p_ie - Parse P2P Device Address from a concatenated
1490 * P2P IE
1491 * @p2p_ie: P2P IE
1492 * @dev_addr: Buffer for returning P2P Device Address
1493 * Returns: 0 on success or -1 if P2P Device Address could not be parsed
1498 * p2p_parse_dev_addr - Parse P2P Device Address from P2P IE(s)
1501 * @dev_addr: Buffer for returning P2P Device Address
1502 * Returns: 0 on success or -1 if P2P Device Address could not be parsed
1507 * p2p_assoc_req_ie - Build P2P IE for (Re)Association Request frame
1508 * @p2p: P2P module context from p2p_init()
1510 * @buf: Buffer for writing the P2P IE
1512 * @p2p_group: Whether this is for association with a P2P GO
1513 * @p2p_ie: Reassembled P2P IE data from scan results or %NULL if none
1516 int p2p_assoc_req_ie(struct p2p_data *p2p, const u8 *bssid, u8 *buf,
1520 * p2p_scan_ie - Build P2P IE for Probe Request
1521 * @p2p: P2P module context from p2p_init()
1522 * @ies: Buffer for writing P2P IE
1525 void p2p_scan_ie(struct p2p_data *p2p, struct wpabuf *ies, const u8 *dev_id);
1529 * @p2p: P2P module context from p2p_init()
1532 size_t p2p_scan_ie_buf_len(struct p2p_data *p2p);
1535 * p2p_go_params - Generate random P2P group parameters
1536 * @p2p: P2P module context from p2p_init()
1540 int p2p_go_params(struct p2p_data *p2p, struct p2p_go_neg_results *params);
1543 * p2p_get_group_capab - Get Group Capability from P2P IE data
1544 * @p2p_ie: P2P IE(s) contents
1551 * @p2p_ie: P2P IE(s) contents
1557 * p2p_get_go_dev_addr - Get P2P Device Address from P2P IE data
1558 * @p2p_ie: P2P IE(s) contents
1559 * Returns: Pointer to P2P Device Address or %NULL if not included
1564 * p2p_get_peer_info - Get P2P peer information
1565 * @p2p: P2P module context from p2p_init()
1566 * @addr: P2P Device Address of the peer or %NULL to indicate the first peer
1570 const struct p2p_peer_info * p2p_get_peer_info(struct p2p_data *p2p,
1574 * p2p_get_peer_info_txt - Get internal P2P peer information in text format
1575 * @info: Pointer to P2P peer info from p2p_get_peer_info()
1580 * Note: This information is internal to the P2P module and subject to change.
1588 * p2p_peer_known - Check whether P2P peer is known
1589 * @p2p: P2P module context from p2p_init()
1590 * @addr: P2P Device Address of the peer
1591 * Returns: 1 if the specified device is in the P2P peer table or 0 if not
1593 int p2p_peer_known(struct p2p_data *p2p, const u8 *addr);
1597 * @p2p: P2P module context from p2p_init()
1604 void p2p_set_client_discoverability(struct p2p_data *p2p, int enabled);
1607 * p2p_set_managed_oper - Set managed P2P Device operations capability
1608 * @p2p: P2P module context from p2p_init()
1609 * @enabled: Whether managed P2P Device operations will be enabled
1611 void p2p_set_managed_oper(struct p2p_data *p2p, int enabled);
1613 int p2p_set_listen_channel(struct p2p_data *p2p, u8 reg_class, u8 channel);
1615 int p2p_set_ssid_postfix(struct p2p_data *p2p, const u8 *postfix, size_t len);
1617 int p2p_get_interface_addr(struct p2p_data *p2p, const u8 *dev_addr,
1619 int p2p_get_dev_addr(struct p2p_data *p2p, const u8 *iface_addr,
1622 void p2p_set_peer_filter(struct p2p_data *p2p, const u8 *addr);
1626 * @p2p: P2P module context from p2p_init()
1629 void p2p_set_cross_connect(struct p2p_data *p2p, int enabled);
1631 int p2p_get_oper_freq(struct p2p_data *p2p, const u8 *iface_addr);
1635 * @p2p: P2P module context from p2p_init()
1638 void p2p_set_intra_bss_dist(struct p2p_data *p2p, int enabled);
1644 * p2p_supported_freq - Check whether channel is supported for P2P
1645 * @p2p: P2P module context from p2p_init()
1647 * Returns: 0 if channel not usable for P2P, 1 if usable for P2P
1649 int p2p_supported_freq(struct p2p_data *p2p, unsigned int freq);
1653 * @p2p: P2P module context from p2p_init()
1657 unsigned int p2p_get_pref_freq(struct p2p_data *p2p,
1660 void p2p_update_channel_list(struct p2p_data *p2p, struct p2p_channels *chan);
1664 * @p2p: P2P module context from p2p_init()
1669 void p2p_set_best_channels(struct p2p_data *p2p, int freq_24, int freq_5,
1674 * @p2p: P2P module context from p2p_init()
1681 void p2p_set_own_freq_preference(struct p2p_data *p2p, int freq);
1683 const u8 * p2p_get_go_neg_peer(struct p2p_data *p2p);
1687 * @group: P2P group context from p2p_group_init()
1694 * @group: P2P group context from p2p_group_init()
1697 * Returns: A P2P Interface Address for each call and %NULL for no more members
1702 * p2p_group_get_dev_addr - Get a P2P Device Address of a client in a group
1703 * @group: P2P group context from p2p_group_init()
1704 * @addr: P2P Interface Address of the client
1705 * Returns: P2P Device Address of the client if found or %NULL if no match
1712 * @group: P2P group context from p2p_group_init()
1713 * @addr: P2P Device Address of the client
1719 * p2p_get_peer_found - Get P2P peer info structure of a found peer
1720 * @p2p: P2P module context from p2p_init()
1721 * @addr: P2P Device Address of the peer or %NULL to indicate the first peer
1723 * Returns: The first P2P peer info available or %NULL if no such peer exists
1726 p2p_get_peer_found(struct p2p_data *p2p, const u8 *addr, int next);
1730 * @p2p: P2P module context from p2p_init()
1732 void p2p_remove_wps_vendor_extensions(struct p2p_data *p2p);
1736 * @p2p: P2P module context from p2p_init()
1740 * The wpabuf structures in the array are owned by the P2P
1743 int p2p_add_wps_vendor_extension(struct p2p_data *p2p,
1747 * p2p_set_oper_channel - Set the P2P operating channel
1748 * @p2p: P2P module context from p2p_init()
1754 int p2p_set_oper_channel(struct p2p_data *p2p, u8 op_reg_class, u8 op_channel,
1758 * p2p_set_pref_chan - Set P2P preferred channel list
1759 * @p2p: P2P module context from p2p_init()
1764 int p2p_set_pref_chan(struct p2p_data *p2p, unsigned int num_pref_chan,
1768 * p2p_in_progress - Check whether a P2P operation is progress
1769 * @p2p: P2P module context from p2p_init()
1770 * Returns: 0 if P2P module is idle or 1 if an operation is in progress
1772 int p2p_in_progress(struct p2p_data *p2p);
1776 * p2p_search_in_progress - Check whether a P2P SEARCH is in progress
1777 * @p2p: P2P module context from p2p_init()
1778 * Returns: 0 if P2P module is idle or 1 if an operation is in progress
1780 int p2p_search_in_progress(struct p2p_data *p2p);
1783 * p2p_search_pending - Check whether there is a deferred P2P SEARCH
1784 * @p2p: P2P module context from p2p_init()
1785 * Returns: 0 if there is no deferred P2P search or 1 if there is one
1787 int p2p_search_pending(struct p2p_data *p2p);
1791 * p2p_other_scan_completed - Notify completion of non-P2P scan
1792 * @p2p: P2P module context from p2p_init()
1793 * Returns: 0 if P2P module is idle or 1 if an operation was started
1795 int p2p_other_scan_completed(struct p2p_data *p2p);
1801 * @p2p: P2P module context from p2p_init()
1805 void p2p_set_config_timeout(struct p2p_data *p2p, u8 go_timeout,
1808 void p2p_increase_search_delay(struct p2p_data *p2p, unsigned int delay);
1810 int p2p_set_wfd_ie_beacon(struct p2p_data *p2p, struct wpabuf *ie);
1811 int p2p_set_wfd_ie_probe_req(struct p2p_data *p2p, struct wpabuf *ie);
1812 int p2p_set_wfd_ie_probe_resp(struct p2p_data *p2p, struct wpabuf *ie);
1813 int p2p_set_wfd_ie_assoc_req(struct p2p_data *p2p, struct wpabuf *ie);
1814 int p2p_set_wfd_ie_invitation(struct p2p_data *p2p, struct wpabuf *ie);
1815 int p2p_set_wfd_ie_prov_disc_req(struct p2p_data *p2p, struct wpabuf *ie);
1816 int p2p_set_wfd_ie_prov_disc_resp(struct p2p_data *p2p, struct wpabuf *ie);
1817 int p2p_set_wfd_ie_go_neg(struct p2p_data *p2p, struct wpabuf *ie);
1818 int p2p_set_wfd_dev_info(struct p2p_data *p2p, const struct wpabuf *elem);
1819 int p2p_set_wfd_assoc_bssid(struct p2p_data *p2p, const struct wpabuf *elem);
1820 int p2p_set_wfd_coupled_sink_info(struct p2p_data *p2p,
1826 * @p2p: P2P module context from p2p_init()
1840 * would not be compliant with the P2P specification.
1842 int p2p_set_disc_int(struct p2p_data *p2p, int min_disc_int, int max_disc_int,
1846 * p2p_get_state_txt - Get current P2P state for debug purposes
1847 * @p2p: P2P module context from p2p_init()
1848 * Returns: Name of the current P2P module state
1850 * It should be noted that the P2P module state names are internal information
1854 const char * p2p_get_state_txt(struct p2p_data *p2p);