hostapd
Public Types | Public Attributes | List of all members
p2p_data Struct Reference

struct p2p_data - P2P module data (internal to P2P module) More...

#include <p2p_i.h>

Public Types

enum  p2p_state {
  P2P_IDLE, P2P_SEARCH, P2P_CONNECT, P2P_CONNECT_LISTEN,
  P2P_GO_NEG, P2P_LISTEN_ONLY, P2P_WAIT_PEER_CONNECT, P2P_WAIT_PEER_IDLE,
  P2P_SD_DURING_FIND, P2P_PROVISIONING, P2P_PD_DURING_FIND, P2P_INVITE,
  P2P_INVITE_LISTEN
}
 state - The current P2P state More...
 
enum  p2p_pending_action_state {
  P2P_NO_PENDING_ACTION, P2P_PENDING_GO_NEG_REQUEST, P2P_PENDING_GO_NEG_RESPONSE, P2P_PENDING_GO_NEG_RESPONSE_FAILURE,
  P2P_PENDING_GO_NEG_CONFIRM, P2P_PENDING_SD, P2P_PENDING_PD, P2P_PENDING_PD_RESPONSE,
  P2P_PENDING_INVITATION_REQUEST, P2P_PENDING_INVITATION_RESPONSE, P2P_PENDING_DEV_DISC_REQUEST, P2P_PENDING_DEV_DISC_RESPONSE,
  P2P_PENDING_GO_DISC_REQ
}
 
enum  p2p_after_scan { P2P_AFTER_SCAN_NOTHING, P2P_AFTER_SCAN_LISTEN, P2P_AFTER_SCAN_CONNECT }
 

Public Attributes

struct p2p_configcfg
 cfg - P2P module configuration More...
 
enum p2p_data::p2p_state state
 
int min_disc_int
 min_disc_int - minDiscoverableInterval
 
int max_disc_int
 max_disc_int - maxDiscoverableInterval
 
int max_disc_tu
 max_disc_tu - Maximum number of TUs for discoverable interval
 
struct dl_list devices
 devices - List of known P2P Device peers
 
struct p2p_devicego_neg_peer
 go_neg_peer - Pointer to GO Negotiation peer
 
struct p2p_deviceinvite_peer
 invite_peer - Pointer to Invite peer
 
struct p2p_devicelast_p2p_find_oper
 last_p2p_find_oper - Pointer to last pre-find operation peer
 
const u8 * invite_go_dev_addr
 
u8 invite_go_dev_addr_buf [ETH_ALEN]
 
int invite_dev_pw_id
 
unsigned int retry_invite_req:1
 
unsigned int retry_invite_req_sent:1
 
struct p2p_devicesd_peer
 sd_peer - Pointer to Service Discovery peer
 
struct p2p_sd_querysd_query
 sd_query - Pointer to Service Discovery query
 
int num_p2p_sd_queries
 num_p2p_sd_queries - Total number of broadcast SD queries present in the list
 
u8 sd_query_no_ack [ETH_ALEN]
 sd_query_no_ack - The first peer (Dev Addr) that did not ACK SD Query More...
 
u8 intended_addr [ETH_ALEN]
 intended_addr - Local Intended P2P Interface Address More...
 
u8 go_intent
 go_intent - Local GO Intent to be used during GO Negotiation
 
u8 next_tie_breaker
 next_tie_breaker - Next tie-breaker value to use in GO Negotiation
 
u8 ssid [SSID_MAX_LEN]
 ssid - Selected SSID for GO Negotiation (if local end will be GO)
 
size_t ssid_len
 ssid_len - ssid length in octets
 
int ssid_set
 ssid_set - Whether SSID is already set for GO Negotiation
 
u8 op_reg_class
 Regulatory class for own operational channel.
 
u8 op_channel
 op_channel - Own operational channel
 
struct p2p_channels channels
 channels - Own supported regulatory classes and channels More...
 
struct wpa_freq_range_list no_go_freq
 
enum p2p_data::p2p_pending_action_state pending_action_state
 
unsigned int pending_listen_freq
 
unsigned int pending_listen_sec
 
unsigned int pending_listen_usec
 
u8 dev_capab
 
int in_listen
 
int drv_in_listen
 
struct p2p_sd_querysd_queries
 sd_queries - Pending service discovery queries
 
u16 srv_update_indic
 srv_update_indic - Service Update Indicator for local services
 
struct wpabufsd_resp
 
u8 sd_resp_addr [ETH_ALEN]
 
u8 sd_resp_dialog_token
 
size_t sd_resp_pos
 
u8 sd_frag_id
 
struct wpabufsd_rx_resp
 
u16 sd_rx_update_indic
 
enum p2p_invite_role inv_role
 
u8 inv_bssid [ETH_ALEN]
 
int inv_bssid_set
 
u8 inv_ssid [SSID_MAX_LEN]
 
size_t inv_ssid_len
 
u8 inv_sa [ETH_ALEN]
 
u8 inv_group_bssid [ETH_ALEN]
 
u8 * inv_group_bssid_ptr
 
u8 inv_go_dev_addr [ETH_ALEN]
 
u8 inv_status
 
int inv_op_freq
 
int inv_persistent
 
enum p2p_discovery_type find_type
 
unsigned int last_p2p_find_timeout
 
u8 last_prog_scan_class
 
u8 last_prog_scan_chan
 
int p2p_scan_running
 
enum p2p_data::p2p_after_scan start_after_scan
 
u8 after_scan_peer [ETH_ALEN]
 
struct p2p_pending_action_txafter_scan_tx
 
unsigned int after_scan_tx_in_progress:1
 
unsigned int send_action_in_progress:1
 
unsigned int num_req_dev_types
 
u8 * req_dev_types
 
u8 * find_dev_id
 
u8 find_dev_id_buf [ETH_ALEN]
 
struct os_reltime find_start
 
struct p2p_group ** groups
 
size_t num_groups
 
struct p2p_devicepending_client_disc_go
 
u8 pending_client_disc_addr [ETH_ALEN]
 
u8 pending_dev_disc_dialog_token
 
u8 pending_dev_disc_addr [ETH_ALEN]
 
int pending_dev_disc_freq
 
unsigned int pending_client_disc_freq
 
int ext_listen_only
 
unsigned int ext_listen_period
 
unsigned int ext_listen_interval
 
unsigned int ext_listen_interval_sec
 
unsigned int ext_listen_interval_usec
 
u8 peer_filter [ETH_ALEN]
 
int cross_connect
 
int best_freq_24
 
int best_freq_5
 
int best_freq_overall
 
int own_freq_preference
 
struct wpabufwps_vendor_ext [P2P_MAX_WPS_VENDOR_EXT]
 wps_vendor_ext - WPS Vendor Extensions to add
 
u8 user_initiated_pd
 
u8 pending_pd_devaddr [ETH_ALEN]
 
int pd_retries
 
int pd_force_freq
 pd_force_freq - Forced frequency for PD retries or 0 to auto-select More...
 
u8 go_timeout
 
u8 client_timeout
 
unsigned int search_delay
 
int in_search_delay
 
u8 pending_reg_class
 
u8 pending_channel
 
u8 pending_channel_forced
 
struct p2ps_advertisementp2ps_adv_list
 
struct p2ps_provisionp2ps_prov
 
u8 wild_card_hash [P2PS_HASH_LEN]
 
u8 p2ps_seek
 
u8 p2ps_seek_hash [P2P_MAX_QUERY_HASH *P2PS_HASH_LEN]
 
u8 p2ps_seek_count
 
u16 authorized_oob_dev_pw_id
 
struct wpabuf ** vendor_elem
 
unsigned int pref_freq_list [P2P_MAX_PREF_CHANNELS]
 
unsigned int num_pref_freq
 

Detailed Description

struct p2p_data - P2P module data (internal to P2P module)

Member Enumeration Documentation

§ p2p_state

state - The current P2P state

Enumerator
P2P_IDLE 

P2P_IDLE - Idle.

P2P_SEARCH 

P2P_SEARCH - Search (Device Discovery)

P2P_CONNECT 

P2P_CONNECT - Trying to start GO Negotiation.

P2P_CONNECT_LISTEN 

P2P_CONNECT_LISTEN - Listen during GO Negotiation start.

P2P_GO_NEG 

P2P_GO_NEG - In GO Negotiation.

P2P_LISTEN_ONLY 

P2P_LISTEN_ONLY - Listen only.

P2P_WAIT_PEER_CONNECT 

P2P_WAIT_PEER_CONNECT - Waiting peer in List for GO Neg.

P2P_WAIT_PEER_IDLE 

P2P_WAIT_PEER_IDLE - Waiting peer idle for GO Neg.

P2P_SD_DURING_FIND 

P2P_SD_DURING_FIND - Service Discovery during find.

P2P_PROVISIONING 

P2P_PROVISIONING - Provisioning (during group formation)

P2P_PD_DURING_FIND 

P2P_PD_DURING_FIND - Provision Discovery during find.

P2P_INVITE 

P2P_INVITE - Trying to start Invite.

P2P_INVITE_LISTEN 

P2P_INVITE_LISTEN - Listen during Invite.

Member Data Documentation

§ cfg

struct p2p_config* p2p_data::cfg

cfg - P2P module configuration

This is included in the same memory allocation with the struct p2p_data and as such, must not be freed separately.

§ channels

struct p2p_channels p2p_data::channels

channels - Own supported regulatory classes and channels

List of supposerted channels per regulatory class. The regulatory classes are defined in IEEE Std 802.11-2007 Annex J and the numbering of the clases depends on the configured country code.

§ intended_addr

u8 p2p_data::intended_addr[ETH_ALEN]

intended_addr - Local Intended P2P Interface Address

This address is used during group owner negotiation as the Intended P2P Interface Address and the group interface will be created with address as the local address in case of successfully completed negotiation.

§ pd_force_freq

int p2p_data::pd_force_freq

pd_force_freq - Forced frequency for PD retries or 0 to auto-select

This is is used during PD retries for join-a-group case to use the correct operating frequency determined from a BSS entry for the GO.

§ sd_query_no_ack

u8 p2p_data::sd_query_no_ack[ETH_ALEN]

sd_query_no_ack - The first peer (Dev Addr) that did not ACK SD Query

This is used to track the first peer that did not ACK an SD Query within a single P2P Search iteration. All zeros address means no such peer was yet seen. This information is used to allow a new Listen and Search phases to be once every pending SD Query has been sent once to each peer instead of looping all pending attempts continuously until running out of retry maximums.


The documentation for this struct was generated from the following file: