Lines Matching refs:p2p
2 * Wi-Fi Direct - P2P module
15 /* P2P ASP Setup Capability */
77 * struct p2p_go_neg_results - P2P Group Owner Negotiation results
132 * peer_device_addr - P2P Device Address of the peer
137 * peer_interface_addr - P2P Interface Address of the peer
194 * conncap - Connection Capabilities negotiated between P2P peers
315 * struct p2p_peer_info - P2P peer information
319 * p2p_device_addr - P2P Device Address of the peer
396 * This buffer includes any other vendor element than P2P, WPS, and WFD
421 * struct p2p_config - P2P configuration
423 * This configuration is provided to the P2P module during initialization with
428 * country - Country code to use in P2P operations
517 * dev_addr - P2P Device Address
595 * p2p_scan - Request a P2P scan/search
605 * This callback function is used to request a P2P scan or search
620 * p2p_scan_res_handler() for each scan result that has a P2P IE and
644 * pointer can be %NULL). The WPS and P2P IEs to be added for Probe
695 * state has started, p2p_listen_cb() must be called to notify the P2P
697 * called to notify the P2P module that the driver is not in the Listen
720 * @interface_addr: P2P Interface Address of the GO
735 * dev_found - Notification of a found P2P Device
738 * @info: P2P peer information
741 * This callback is used to notify that a new P2P Device has been
751 * dev_lost - Notification of a lost P2P Device
753 * @dev_addr: P2P Device Address of the lost P2P Device
755 * This callback is used to notify that a P2P Device has been deleted.
772 * This callback is used to notify that a P2P Device is requesting
808 * @tlvs: P2P Service Request TLV(s)
827 * @tlvs: P2P Service Response TLV(s)
843 * @dev_addr: P2P Device Address of the found P2P Device
849 * @group_id: P2P Group ID (or %NULL if not included)
850 * @group_id_len: Length of P2P Group ID
853 * Request frame that the P2P module accepted.
880 * @adv_mac: P2P Device Address of the advertizer
898 * @bssid: P2P Group BSSID from the request or %NULL if not included
899 * @go_dev_addr: GO Device Address from P2P Group ID
900 * @ssid: SSID from P2P Group ID
903 * @group_bssid: Buffer for returning P2P Group BSSID (if local end GO)
939 * @bssid: P2P Group BSSID or %NULL if not received
961 * @bssid: P2P Group BSSID or %NULL if not received
981 * @dev_addr: P2P Device Address of a GO
982 * Returns: 1 if we are connected as a P2P client to the specified GO
990 * @src: Source address (GO's P2P Interface Address)
1008 * is_p2p_in_progress - Check whether P2P operation is in progress
1010 * Returns: 1 if P2P operation (e.g., group formation) is in progress
1022 * @go_dev_addr: Buffer for returning GO P2P Device Address
1042 * currently running P2P GO.
1123 /* P2P module initialization/deinitialization */
1126 * p2p_init - Initialize P2P module
1127 * @cfg: P2P module configuration
1130 * This function is used to initialize global P2P module context (one per
1131 * device). The P2P module will keep a copy of the configuration data, so the
1134 * the P2P module is deinitialized with p2p_deinit().
1139 * p2p_deinit - Deinitialize P2P module
1140 * @p2p: P2P module context from p2p_init()
1142 void p2p_deinit(struct p2p_data *p2p);
1145 * p2p_flush - Flush P2P module state
1146 * @p2p: P2P module context from p2p_init()
1148 * This command removes the P2P module state like peer device entries.
1150 void p2p_flush(struct p2p_data *p2p);
1154 * @p2p: P2P module context from p2p_init()
1155 * @addr: P2P peer entry to be unauthorized
1158 * This command removes any connection authorization from the specified P2P
1163 int p2p_unauthorize(struct p2p_data *p2p, const u8 *addr);
1167 * @p2p: P2P module context from p2p_init()
1170 * This function can be used to update the P2P module configuration with
1173 int p2p_set_dev_name(struct p2p_data *p2p, const char *dev_name);
1175 int p2p_set_manufacturer(struct p2p_data *p2p, const char *manufacturer);
1176 int p2p_set_model_name(struct p2p_data *p2p, const char *model_name);
1177 int p2p_set_model_number(struct p2p_data *p2p, const char *model_number);
1178 int p2p_set_serial_number(struct p2p_data *p2p, const char *serial_number);
1180 void p2p_set_config_methods(struct p2p_data *p2p, u16 config_methods);
1181 void p2p_set_uuid(struct p2p_data *p2p, const u8 *uuid);
1185 * @p2p: P2P module context from p2p_init()
1188 * This function can be used to update the P2P module configuration with
1191 int p2p_set_pri_dev_type(struct p2p_data *p2p, const u8 *pri_dev_type);
1195 * @p2p: P2P module context from p2p_init()
1198 * This function can be used to update the P2P module configuration with
1201 int p2p_set_sec_dev_types(struct p2p_data *p2p, const u8 dev_types[][8],
1204 int p2p_set_country(struct p2p_data *p2p, const char *country);
1216 * p2p_find - Start P2P Find (Device Discovery)
1217 * @p2p: P2P module context from p2p_init()
1234 int p2p_find(struct p2p_data *p2p, unsigned int timeout,
1242 * @p2p: P2P module context from p2p_init()
1245 void p2p_notify_scan_trigger_status(struct p2p_data *p2p, int status);
1248 * p2p_stop_find - Stop P2P Find (Device Discovery)
1249 * @p2p: P2P module context from p2p_init()
1251 void p2p_stop_find(struct p2p_data *p2p);
1254 * p2p_stop_find_for_freq - Stop P2P Find for next oper on specific freq
1255 * @p2p: P2P module context from p2p_init()
1261 void p2p_stop_find_for_freq(struct p2p_data *p2p, int freq);
1264 * p2p_listen - Start P2P Listen state for specified duration
1265 * @p2p: P2P module context from p2p_init()
1269 * This function can be used to request the P2P module to keep the device
1272 * much use for normal P2P operations.
1274 int p2p_listen(struct p2p_data *p2p, unsigned int timeout);
1277 * p2p_stop_listen - Stop P2P Listen
1278 * @p2p: P2P module context from p2p_init()
1280 void p2p_stop_listen(struct p2p_data *p2p);
1283 * p2p_connect - Start P2P group formation (GO negotiation)
1284 * @p2p: P2P module context from p2p_init()
1285 * @peer_addr: MAC address of the peer P2P client
1303 int p2p_connect(struct p2p_data *p2p, const u8 *peer_addr,
1311 * p2p_authorize - Authorize P2P group formation (GO negotiation)
1312 * @p2p: P2P module context from p2p_init()
1313 * @peer_addr: MAC address of the peer P2P client
1331 int p2p_authorize(struct p2p_data *p2p, const u8 *peer_addr,
1340 * @p2p: P2P module context from p2p_init()
1341 * @peer_addr: MAC address of the peer P2P client
1344 int p2p_reject(struct p2p_data *p2p, const u8 *peer_addr);
1348 * @p2p: P2P module context from p2p_init()
1349 * @peer_addr: MAC address of the peer P2P client
1357 * This function can be used to request a discovered P2P peer to display a PIN
1365 int p2p_prov_disc_req(struct p2p_data *p2p, const u8 *peer_addr,
1372 * @p2p: P2P module context from p2p_init()
1374 * @tlvs: P2P Service Query TLV(s)
1380 void * p2p_sd_request(struct p2p_data *p2p, const u8 *dst,
1384 void * p2p_sd_request_wfd(struct p2p_data *p2p, const u8 *dst,
1390 * @p2p: P2P module context from p2p_init()
1394 int p2p_sd_cancel_request(struct p2p_data *p2p, void *req);
1398 * @p2p: P2P module context from p2p_init()
1402 * @resp_tlvs: P2P Service Response TLV(s)
1407 void p2p_sd_response(struct p2p_data *p2p, int freq, const u8 *dst,
1412 * @p2p: P2P module context from p2p_init()
1418 void p2p_sd_service_update(struct p2p_data *p2p);
1428 * p2p_invite - Invite a P2P Device into a group
1429 * @p2p: P2P module context from p2p_init()
1430 * @peer: Device Address of the peer P2P Device
1444 int p2p_invite(struct p2p_data *p2p, const u8 *peer, enum p2p_invite_role role,
1451 * @p2p: P2P module context from p2p_init()
1452 * @go_interface_addr: GO P2P Interface Address
1453 * @own_interface_addr: Own P2P Interface Address for this group
1464 int p2p_presence_req(struct p2p_data *p2p, const u8 *go_interface_addr,
1471 * @p2p: P2P module context from p2p_init()
1478 * Extended Listen Timing. When enabled, the P2P Device will become
1482 int p2p_ext_listen(struct p2p_data *p2p, unsigned int period,
1489 * @p2p: P2P module context from p2p_init()
1495 void p2p_wps_success_cb(struct p2p_data *p2p
1499 * @p2p: P2P module context from p2p_init()
1505 void p2p_group_formation_failed(struct p2p_data *p2p);
1509 * @p2p: P2P module context from p2p_init()
1510 * @addr: Peer P2P Device Address
1517 u16 p2p_get_provisioning_info(struct p2p_data *p2p, const u8 *addr);
1521 * @p2p: P2P module context from p2p_init()
1522 * @iface_addr: Peer P2P Device Address
1527 void p2p_clear_provisioning_info(struct p2p_data *p2p, const u8 *addr);
1537 * @P2P_PREQ_NOT_P2P: frame was not a P2P probe request
1538 * @P2P_PREQ_P2P_NOT_PROCESSED: frame was P2P but wasn't processed
1539 * @P2P_PREQ_P2P_PROCESSED: frame has been processed by P2P
1551 * @p2p: P2P module context from p2p_init()
1561 p2p_probe_req_rx(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
1567 * @p2p: P2P module context from p2p_init()
1576 void p2p_rx_action(struct p2p_data *p2p, const u8 *da, const u8 *sa,
1581 * p2p_scan_res_handler - Indicate a P2P scan results
1582 * @p2p: P2P module context from p2p_init()
1592 * This function is called to indicate a scan result entry with P2P IE from a
1597 * driver/firmware designs. The ies buffer need to include at least the P2P IE,
1599 * caller does not need to check that the IEs contain a P2P IE before calling
1606 int p2p_scan_res_handler(struct p2p_data *p2p, const u8 *bssid, int freq,
1612 * @p2p: P2P module context from p2p_init()
1614 * This function is called to indicate that all P2P scan results from a scan
1620 void p2p_scan_res_handled(struct p2p_data *p2p);
1630 * @p2p: P2P module context from p2p_init()
1640 void p2p_send_action_cb(struct p2p_data *p2p, unsigned int freq, const u8 *dst,
1646 * @p2p: P2P module context from p2p_init()
1653 void p2p_listen_cb(struct p2p_data *p2p, unsigned int freq,
1658 * @p2p: P2P module context from p2p_init()
1665 int p2p_listen_end(struct p2p_data *p2p, unsigned int freq);
1667 void p2p_deauth_notif(struct p2p_data *p2p, const u8 *bssid, u16 reason_code,
1670 void p2p_disassoc_notif(struct p2p_data *p2p, const u8 *bssid, u16 reason_code,
1674 /* Per-group P2P state for GO */
1679 * struct p2p_group_config - P2P group configuration
1681 * This configuration is provided to the P2P module during initialization of
1694 * interface_addr - P2P Interface Address of the group
1732 * @beacon_ies: P2P IE for Beacon frames or %NULL if no change
1733 * @proberesp_ies: P2P Ie for Probe Response frames
1735 * P2P module uses this callback function to notify whenever the P2P IE
1754 * p2p_group_init - Initialize P2P group
1755 * @p2p: P2P module context from p2p_init()
1756 * @config: P2P group configuration (will be freed by p2p_group_deinit())
1759 * This function is used to initialize per-group P2P module context. Currently,
1760 * this is only used to manage GO functionality and P2P clients do not need to
1763 struct p2p_group * p2p_group_init(struct p2p_data *p2p,
1767 * p2p_group_deinit - Deinitialize P2P group
1768 * @group: P2P group context from p2p_group_init()
1773 * p2p_group_notif_assoc - Notification of P2P client association with GO
1774 * @group: P2P group context from p2p_group_init()
1775 * @addr: Interface address of the P2P client
1784 * p2p_group_assoc_resp_ie - Build P2P IE for (re)association response
1785 * @group: P2P group context from p2p_group_init()
1787 * Returns: P2P IE for (Re)association Response or %NULL on failure
1795 * p2p_group_notif_disassoc - Notification of P2P client disassociation from GO
1796 * @group: P2P group context from p2p_group_init()
1797 * @addr: Interface address of the P2P client
1803 * @group: P2P group context from p2p_group_init()
1809 * @group: P2P group context from p2p_group_init()
1814 * Notify the P2P group management about a new NoA contents. This will be
1815 * inserted into the P2P IEs in Beacon and Probe Response frames with rest of
1823 * @group: P2P group context from p2p_group_init()
1835 * p2p_group_match_dev_id - Match P2P Device Address in group with requested device id
1837 int p2p_group_match_dev_id(struct p2p_group *group, struct wpabuf *p2p);
1841 * @group: P2P group context from p2p_group_init()
1851 * p2p_ie_text - Build text format description of P2P IE
1852 * @p2p_ie: P2P IE
1857 * This function can be used to parse P2P IE contents into text format
1863 * p2p_scan_result_text - Build text format description of P2P IE
1870 * This function can be used to parse P2P IE contents into text format
1876 * p2p_parse_dev_addr_in_p2p_ie - Parse P2P Device Address from a concatenated
1877 * P2P IE
1878 * @p2p_ie: P2P IE
1879 * @dev_addr: Buffer for returning P2P Device Address
1880 * Returns: 0 on success or -1 if P2P Device Address could not be parsed
1885 * p2p_parse_dev_addr - Parse P2P Device Address from P2P IE(s)
1888 * @dev_addr: Buffer for returning P2P Device Address
1889 * Returns: 0 on success or -1 if P2P Device Address could not be parsed
1894 * p2p_assoc_req_ie - Build P2P IE for (Re)Association Request frame
1895 * @p2p: P2P module context from p2p_init()
1897 * @buf: Buffer for writing the P2P IE
1899 * @p2p_group: Whether this is for association with a P2P GO
1900 * @p2p_ie: Reassembled P2P IE data from scan results or %NULL if none
1903 int p2p_assoc_req_ie(struct p2p_data *p2p, const u8 *bssid, u8 *buf,
1907 * p2p_scan_ie - Build P2P IE for Probe Request
1908 * @p2p: P2P module context from p2p_init()
1909 * @ies: Buffer for writing P2P IE
1913 void p2p_scan_ie(struct p2p_data *p2p, struct wpabuf *ies, const u8 *dev_id,
1918 * @p2p: P2P module context from p2p_init()
1921 size_t p2p_scan_ie_buf_len(struct p2p_data *p2p);
1924 * p2p_go_params - Generate random P2P group parameters
1925 * @p2p: P2P module context from p2p_init()
1929 int p2p_go_params(struct p2p_data *p2p, struct p2p_go_neg_results *params);
1932 * p2p_get_group_capab - Get Group Capability from P2P IE data
1933 * @p2p_ie: P2P IE(s) contents
1940 * @p2p_ie: P2P IE(s) contents
1946 * p2p_get_go_dev_addr - Get P2P Device Address from P2P IE data
1947 * @p2p_ie: P2P IE(s) contents
1948 * Returns: Pointer to P2P Device Address or %NULL if not included
1953 * p2p_get_peer_info - Get P2P peer information
1954 * @p2p: P2P module context from p2p_init()
1955 * @addr: P2P Device Address of the peer or %NULL to indicate the first peer
1959 const struct p2p_peer_info * p2p_get_peer_info(struct p2p_data *p2p,
1963 * p2p_get_peer_info_txt - Get internal P2P peer information in text format
1964 * @info: Pointer to P2P peer info from p2p_get_peer_info()
1969 * Note: This information is internal to the P2P module and subject to change.
1977 * p2p_peer_known - Check whether P2P peer is known
1978 * @p2p: P2P module context from p2p_init()
1979 * @addr: P2P Device Address of the peer
1980 * Returns: 1 if the specified device is in the P2P peer table or 0 if not
1982 int p2p_peer_known(struct p2p_data *p2p, const u8 *addr);
1986 * @p2p: P2P module context from p2p_init()
1993 void p2p_set_client_discoverability(struct p2p_data *p2p, int enabled);
1996 * p2p_set_managed_oper - Set managed P2P Device operations capability
1997 * @p2p: P2P module context from p2p_init()
1998 * @enabled: Whether managed P2P Device operations will be enabled
2000 void p2p_set_managed_oper(struct p2p_data *p2p, int enabled);
2004 * @p2p: P2P config
2013 int p2p_config_get_random_social(struct p2p_config *p2p, u8 *op_class,
2016 int p2p_set_listen_channel(struct p2p_data *p2p, u8 reg_class, u8 channel,
2019 u8 p2p_get_listen_channel(struct p2p_data *p2p);
2021 int p2p_set_ssid_postfix(struct p2p_data *p2p, const u8 *postfix, size_t len);
2023 int p2p_get_interface_addr(struct p2p_data *p2p, const u8 *dev_addr,
2025 int p2p_get_dev_addr(struct p2p_data *p2p, const u8 *iface_addr,
2028 void p2p_set_peer_filter(struct p2p_data *p2p, const u8 *addr);
2032 * @p2p: P2P module context from p2p_init()
2035 void p2p_set_cross_connect(struct p2p_data *p2p, int enabled);
2037 int p2p_get_oper_freq(struct p2p_data *p2p, const u8 *iface_addr);
2041 * @p2p: P2P module context from p2p_init()
2044 void p2p_set_intra_bss_dist(struct p2p_data *p2p, int enabled);
2053 * p2p_supported_freq - Check whether channel is supported for P2P
2054 * @p2p: P2P module context from p2p_init()
2056 * Returns: 0 if channel not usable for P2P, 1 if usable for P2P
2058 int p2p_supported_freq(struct p2p_data *p2p, unsigned int freq);
2061 * p2p_supported_freq_go - Check whether channel is supported for P2P GO operation
2062 * @p2p: P2P module context from p2p_init()
2064 * Returns: 0 if channel not usable for P2P, 1 if usable for P2P
2066 int p2p_supported_freq_go(struct p2p_data *p2p, unsigned int freq);
2069 * p2p_supported_freq_cli - Check whether channel is supported for P2P client operation
2070 * @p2p: P2P module context from p2p_init()
2072 * Returns: 0 if channel not usable for P2P, 1 if usable for P2P
2074 int p2p_supported_freq_cli(struct p2p_data *p2p, unsigned int freq);
2078 * @p2p: P2P module context from p2p_init()
2082 unsigned int p2p_get_pref_freq(struct p2p_data *p2p,
2085 void p2p_update_channel_list(struct p2p_data *p2p,
2091 * @p2p: P2P module context from p2p_init()
2096 void p2p_set_best_channels(struct p2p_data *p2p, int freq_24, int freq_5,
2101 * @p2p: P2P module context from p2p_init()
2108 void p2p_set_own_freq_preference(struct p2p_data *p2p, int freq);
2110 const u8 * p2p_get_go_neg_peer(struct p2p_data *p2p);
2114 * @group: P2P group context from p2p_group_init()
2121 * @group: P2P group context from p2p_group_init()
2128 * @group: P2P group context from p2p_group_init()
2131 * Returns: A P2P Device Address for each call and %NULL for no more members
2136 * p2p_group_get_dev_addr - Get a P2P Device Address of a client in a group
2137 * @group: P2P group context from p2p_group_init()
2138 * @addr: P2P Interface Address of the client
2139 * Returns: P2P Device Address of the client if found or %NULL if no match
2146 * @group: P2P group context from p2p_group_init()
2147 * @addr: P2P Device Address of the client
2154 * @group: P2P group context from p2p_group_init()
2161 * @p2p: P2P module context from p2p_init()
2167 void p2p_loop_on_all_groups(struct p2p_data *p2p,
2173 * p2p_get_peer_found - Get P2P peer info structure of a found peer
2174 * @p2p: P2P module context from p2p_init()
2175 * @addr: P2P Device Address of the peer or %NULL to indicate the first peer
2177 * Returns: The first P2P peer info available or %NULL if no such peer exists
2180 p2p_get_peer_found(struct p2p_data *p2p, const u8 *addr, int next);
2184 * @p2p: P2P module context from p2p_init()
2186 void p2p_remove_wps_vendor_extensions(struct p2p_data *p2p);
2190 * @p2p: P2P module context from p2p_init()
2194 * The wpabuf structures in the array are owned by the P2P
2197 int p2p_add_wps_vendor_extension(struct p2p_data *p2p,
2201 * p2p_set_oper_channel - Set the P2P operating channel
2202 * @p2p: P2P module context from p2p_init()
2208 int p2p_set_oper_channel(struct p2p_data *p2p, u8 op_reg_class, u8 op_channel,
2212 * p2p_set_pref_chan - Set P2P preferred channel list
2213 * @p2p: P2P module context from p2p_init()
2218 int p2p_set_pref_chan(struct p2p_data *p2p, unsigned int num_pref_chan,
2223 * @p2p: P2P module context from p2p_init()
2227 int p2p_set_no_go_freq(struct p2p_data *p2p,
2231 * p2p_in_progress - Check whether a P2P operation is progress
2232 * @p2p: P2P module context from p2p_init()
2233 * Returns: 0 if P2P module is idle, 1 if an operation is in progress but not
2236 int p2p_in_progress(struct p2p_data *p2p);
2242 * @p2p: P2P module context from p2p_init()
2246 void p2p_set_config_timeout(struct p2p_data *p2p, u8 go_timeout,
2249 int p2p_set_wfd_ie_beacon(struct p2p_data *p2p, struct wpabuf *ie);
2250 int p2p_set_wfd_ie_probe_req(struct p2p_data *p2p, struct wpabuf *ie);
2251 int p2p_set_wfd_ie_probe_resp(struct p2p_data *p2p, struct wpabuf *ie);
2252 int p2p_set_wfd_ie_assoc_req(struct p2p_data *p2p, struct wpabuf *ie);
2253 int p2p_set_wfd_ie_invitation(struct p2p_data *p2p, struct wpabuf *ie);
2254 int p2p_set_wfd_ie_prov_disc_req(struct p2p_data *p2p, struct wpabuf *ie);
2255 int p2p_set_wfd_ie_prov_disc_resp(struct p2p_data *p2p, struct wpabuf *ie);
2256 int p2p_set_wfd_ie_go_neg(struct p2p_data *p2p, struct wpabuf *ie);
2257 int p2p_set_wfd_dev_info(struct p2p_data *p2p, const struct wpabuf *elem);
2258 int p2p_set_wfd_assoc_bssid(struct p2p_data *p2p, const struct wpabuf *elem);
2259 int p2p_set_wfd_coupled_sink_info(struct p2p_data *p2p,
2265 * @p2p: P2P module context from p2p_init()
2279 * would not be compliant with the P2P specification.
2281 int p2p_set_disc_int(struct p2p_data *p2p, int min_disc_int, int max_disc_int,
2285 * p2p_get_state_txt - Get current P2P state for debug purposes
2286 * @p2p: P2P module context from p2p_init()
2287 * Returns: Name of the current P2P module state
2289 * It should be noted that the P2P module state names are internal information
2293 const char * p2p_get_state_txt(struct p2p_data *p2p);
2295 struct wpabuf * p2p_build_nfc_handover_req(struct p2p_data *p2p,
2299 struct wpabuf * p2p_build_nfc_handover_sel(struct p2p_data *p2p,
2325 int p2p_process_nfc_connection_handover(struct p2p_data *p2p,
2328 void p2p_set_authorized_oob_dev_pw_id(struct p2p_data *p2p, u16 dev_pw_id,
2332 int p2p_set_passphrase_len(struct p2p_data *p2p, unsigned int len);
2334 void p2p_loop_on_known_peers(struct p2p_data *p2p,
2339 void p2p_set_vendor_elems(struct p2p_data *p2p, struct wpabuf **vendor_elem);
2341 void p2p_set_intended_addr(struct p2p_data *p2p, const u8 *intended_addr);
2344 p2p_service_p2ps_id(struct p2p_data *p2p, u32 adv_id);
2345 int p2p_service_add_asp(struct p2p_data *p2p, int auto_accept, u32 adv_id,
2349 int p2p_service_del_asp(struct p2p_data *p2p, u32 adv_id);
2350 void p2p_service_flush_asp(struct p2p_data *p2p);
2351 struct p2ps_advertisement * p2p_get_p2ps_adv_list(struct p2p_data *p2p);
2355 * @p2p: P2P module context from p2p_init()
2360 void p2p_expire_peers(struct p2p_data *p2p);
2362 void p2p_set_own_pref_freq_list(struct p2p_data *p2p,
2368 * @group: P2P group context from p2p_group_init()