Systems and methods of selective scanning for ad-hoc networks

Methods, devices, and computer program products for selective scanning of ad-hoc networks are described herein. In one aspect, a method includes receiving a message identifying a number of times the message has been forwarded. The method further includes selectively scanning for other ad-hoc networks based on the identified number. In one aspect, a root device for an ad-hoc network is responsible for generating synchronization messages for nodes of the ad-hoc network. The synchronization message includes a count of the number of times the synchronization message has been forwarded. When the hop count reaches a limit, the synchronization message is no longer retransmitted or forwarded by receiving nodes. Nodes receiving this message may recognize they are positioned near the edge of the ad-hoc network. In at least one embodiment, these nodes may selectively scan for other ad-hoc networks based on the hop count reaching or exceeding a predetermined threshold.

BACKGROUND

The present application relates generally to wireless communications, and more specifically to systems, methods, and devices for selective scanning for ad-hoc wireless networks.

Devices in a wireless network may transmit and/or receive information to and from each other. To carry out various communications, the devices may need to coordinate according to a protocol. As such, devices may exchange information to coordinate their activities Improved systems, methods, and devices for coordinating transmitting and sending communications within a wireless network are desired.

FIG. 1aillustrates an example of a prior art wireless communication system100. The wireless communication system100may operate pursuant to a wireless standard, such as an 802.11 standard. The wireless communication system100may include an AP104, which communicates with STAs. In some aspects, the wireless communication system100may include more than one AP. Additionally, the STAs may communicate with other STAs. As an example, a first STA106amay communicate with a second STA106b. As another example, a first STA106amay communicate with a third STA106calthough this communication link is not illustrated inFIG. 1a.

A variety of processes and methods may be used for transmissions in the wireless communication system100between the AP104and the STAs and between an individual STA, such as the first STA106a, and another individual STA, such as the second STA106b. For example, signals may be sent and received in accordance with OFDM/OFDMA techniques. If this is the case, the wireless communication system100may be referred to as an OFDM/OFDMA system. Alternatively, signals may be sent and received between the AP104and the STAs and between an individual STA, such as the first STA106a, and another individual STA, such as the second STA106b, in accordance with CDMA techniques. If this is the case, the wireless communication system100may be referred to as a CDMA system.

A communication link that facilitates transmission from the AP104to one or more of the STAs may be referred to as a downlink (DL)108, and a communication link that facilitates transmission from one or more of the STAs to the AP104may be referred to as an uplink (UL)110. Alternatively, a downlink108may be referred to as a forward link or a forward channel, and an uplink110may be referred to as a reverse link or a reverse channel.

A communication link may be established between STAs. Some possible communication links between STAs are illustrated inFIG. 1a. As an example, a communication link112may facilitate transmission from the first STA106ato the second STA106b. Another communication link114may facilitate transmission from the second STA106bto the first STA106a.

The AP104may function as a base station and provide wireless communication coverage in a basic service area (BSA)102. The AP104along with the STAs associated with the AP104and that use the AP104for communication may be referred to as a basic service set (BSS).

It should be noted that the wireless communication system100may not have a central AP104, but rather may function as an ad-hoc network between the STAs. Accordingly, the functions of the AP104described herein may alternatively be performed by one or more of the STAs.

FIG. 1billustrates an example of a prior art wireless communication system160that may function as an ad-hoc network. For example, the wireless communication system160shown in FIG. lb shows STAs106a-ithat may communicate with each other without the presence of an AP. As such, the STAs,106a-imay be configured to communicate in different ways to coordinate transmission and reception of messages to prevent interference and accomplish various tasks. In one aspect, the networks shown inFIG. 1bmay configured as a “near-me are network” (NAN). In one aspect, a NAN may refer to a network for communication between STAs that are located in close proximity to each other. In some cases the STAs operating within the NAN may belong to different network structures (e.g., STAs in different homes or buildings as part of independent LANs with different external network connections).

In some aspects, a communication protocol used for communication between nodes on the ad-hoc communications network160may schedule periods of time during which communication between network nodes may occur. These periods of time when communication occurs between STAs a-i may be known as availability windows. An availability window may include a discovery interval or paging interval as discussed further below.

The protocol may also define other periods of time when no communication between nodes of the network is to occur. In some embodiments, nodes may enter one or more sleep states when the ad-hoc network160is not in an availability window. Alternatively, in some embodiments, portions of the stations106a-imay enter a sleep state when the ad-hoc network is not in an availability window. For example, some stations may include networking hardware that enters a sleep state when the ad-hoc network is not in an availability window, while other hardware included in the STA, for example, a processor, an electronic display, or the like do not enter a sleep state when the ad-hoc network is not in an availability window.

The ad-hoc communication network160may assign one node to be a root node. InFIG. 1b, the assigned root node is shown as STA106e. In ad-hoc network160, the root node is responsible for periodically transmitting synchronization signals to other nodes in the ad-hoc network. The synchronization signals transmitted by root node160emay provide a timing reference for other nodes106a-dand106f-ito coordinate an availability window during which communication occurs between the nodes. For example, a synchronization message172a-dmay be transmitted by root node106eand received by nodes106b-cand106f-g. The synchronization message172may provide a timing source for the STAs106b-cand106f-g. The synchronization message172may also provide updates to a schedule for future availability windows. The synchronization messages172may also function to notify STAs106b-cand106f-gthat they are still present in the ad-hoc network160.

One or more of the nodes in the ad-hoc communication network160may function as branch synchronization nodes. A branch synchronization node may retransmit both availability window schedule and master clock information received from a root node. In some embodiments, synchronization messages transmitted by a root node may include availability window schedule and master clock information. In these embodiments, the synchronization messages may be retransmitted by the branch synchronization nodes. InFIG. 1b, STAs106b-cand106f-gare shown functioning as branch-synchronization nodes in the ad-hoc communication network160. STAs106b-cand106f-greceive the synchronization message172a-dfrom root node106eand retransmit the synchronization message as retransmitted synchronization messages174a-d. By retransmitting the synchronization message172from root node106e, the branch synchronization nodes106b-cand106f-gmay extend the range and improve the robustness of the ad-hoc network160.

The retransmitted synchronization messages174a-dare received by nodes106a,106d,106h, and106i. These nodes may be characterized as “leaf” nodes, in that they do not retransmit the synchronization message they receive from either the root node106eor the branch synchronization nodes106b-cor106f-g.

SUMMARY

The systems, methods, devices, and computer program products discussed herein each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this invention as expressed by the claims which follow, some features are discussed briefly below. After considering this discussion, and particularly after reading the section entitled “Detailed Description,” it will be understood how advantageous features of this invention include reduced power consumption when introducing devices on a medium.

One aspect of the disclosure provides a method for wireless communication by a leaf device in an ad-hoc communications network. The method includes receiving a message identifying a number of times the message has been forwarded, and selectively scanning for other ad-hoc networks based on the identified number. In some embodiments, the selective scanning is performed if the identified number is greater than or equal to a maximum number of hops. In some embodiments, the method also includes incrementing the number of times the received message has been forwarded and forwarding the received message if the identified number is less than a maximum number of hops. In some embodiments, the method includes not forwarding the message if the identified number is greater than or equal to a maximum number of hops. In some embodiments, the method includes joining a second ad-hoc network based on the selective scanning. In some embodiments, the device is a leaf device of the ad-hoc network if the identified number of times is greater than or equal to a maximum number of hops. In some embodiments, the received message comprises a synchronization message sent from a root device. In some embodiments, the method includes configuring whether to selectively scan based on the identified number. In some embodiments, selectively scanning for other ad-hoc networks includes receiving messages outside an availability window for the ad-hoc communications network. In some of these embodiments, selectively scanning for other ad-hoc networks further includes determining if a particular discovery packet or other message received outside the availability window includes information about one or more of a plurality of services that may be of interest to the device. Information that may be of interest to the device may match a criteria defined by configuration data.

Another aspect disclosed is a leaf device for wireless communication in an ad-hoc communications network. The leaf device includes a receiver configured to receive a message identifying a number of times the message has been forwarded, and a processor configured to selectively scan for other ad-hoc networks based on the identified number.

In some embodiments, the processor is further configured to scan for other ad-hoc networks if the identified number is greater than or equal to a maximum number of hops. In some embodiments, the processor is further configured to increment the number of times the received message has been forwarded and forward the received message if the identified number is less than a maximum number of hops.

In some embodiments, the processor is further configured to not forward the message if the identified number is greater than or equal to a maximum number of hops. In some embodiments, the processor is further configured to join a second ad-hoc network based on the selective scanning. In some embodiments, the device is a leaf device of the ad-hoc network if the identified number of times is greater than or equal to a maximum number of hops. In some embodiments, the received message includes a synchronization message transmitted by a root device. In some embodiments, whether to selectively scan based on the identified number is configurable.

In some embodiments, the processor is further configured to selectively scan for other ad-hoc networks by receiving messages outside an availability window for the ad-hoc communications network. In some of these embodiments, the processor is further configured to selectively scan by determining if a particular discovery packet or other message received outside the availability window includes information about one or more of a plurality of services that may be of interest to the device. Information that may be of interest to the device may match a criteria defined by configuration data.

Another aspect disclosed is a leaf device for wireless communication in an ad-hoc communications network. The leaf device includes means for receiving a message identifying a number of times the message has been forwarded, and means for selectively scanning for other ad-hoc networks based on the identified number. In some embodiments, the means for selectively scanning selectively scans for other ad-hoc networks if the identified number is greater than or equal to a maximum number of hops. In some embodiments, the device also includes means for incrementing the number of times the received message has been forwarded and forwarding the received message if the identified number is less than a maximum number of hops. In some embodiments, the device includes means for not forwarding the message if the identified number is greater than or equal to a maximum number of hops. In some embodiments, the device includes means for joining a second ad-hoc network based on the selective scanning. In some embodiments, the device is a leaf device of the ad-hoc network if the identified number of times is greater than or equal to a maximum number of hops. In some embodiments, the received message comprises a synchronization message transmitted by a root device. In some embodiments, the device includes means for configuring whether to selectively scan based on the identified number.

In some embodiments, the means for selectively scanning selectively scans for other ad-hoc networks by receiving messages outside an availability window for the ad-hoc communications network. In some embodiments, the means for selectively scanning determines if a particular discovery packet or other message received outside the availability window includes information about one or more of a plurality of services that may be of interest to the device. Information that may be of interest to the device may match a criteria defined by configuration data.

Another aspect disclosed is a non-transitory, computer readable medium including instructions that when executed cause a processor to perform a method of wireless communication by a leaf device in an ad-hoc communications network. The method includes receiving a message identifying a number of times the message has been forwarded, and selectively scanning for other ad-hoc networks based on the identified number. In some embodiments, the selective scanning is performed if the identified number is greater than or equal to a maximum number of hops. In some embodiments, the method also includes incrementing the number of times the received message has been forwarded and forwarding the received message if the identified number is less than a maximum number of hops. In some embodiments, the method includes not forwarding the message if the identified number is greater than or equal to a maximum number of hops.

In some embodiments, the method includes joining a second ad-hoc network based on the selective scanning. In some embodiments, the device is a leaf device of the ad-hoc network if the identified number of times is greater than or equal to a maximum number of hops. In some embodiments, the received message comprises a synchronization message sent from a root device. In some embodiments, the method includes configuring whether to selectively scan based on the identified number. In some embodiments, selectively scanning for other ad-hoc networks includes receiving messages outside an availability window for the ad-hoc communications network. In some of these embodiments, selectively scanning for other ad-hoc networks further includes determining if a particular discovery packet or other message received outside the availability window includes information about one or more of a plurality of services that may be of interest to the device. Information that may be of interest to the device may match a criteria defined by configuration data.

Another aspect disclosed is a method of wireless communication on an ad-hoc network. The method includes receiving, by a first device, a message identifying a location of a root device of a first ad-hoc network, determining, by the first device, a location of the first device, and selectively scanning, by the first device, for other ad-hoc networks based on the location of the first device and the location of the root device. In some aspects, the selective scanning is performed if the distance between the first device and the root device is greater than a threshold distance. In some aspects, the message from the root device can include a second threshold distance, which sets a maximum allowed device distance and should be no less than the first threshold distance for selective scanning Devices with distance from the root device greater than the second threshold should not join the first ad-hoc network to limit the network within a certain area. If the second threshold distance is used, the difference between the two threshold distances should be less than typical device radio coverage radius, so that devices in the first ad-hoc network with distance from the root between the two thresholds are possible to reach those in other ad-hoc networks via selecting scanning.

In some aspects, the method also includes joining a second ad-hoc network as a result of the selective scanning In some aspects, the method also includes determining a window schedule for the second ad-hoc network, and transmitting a discovery message on the first ad-hoc network, the discovery message indicating the window schedule. In some aspects, the selective scanning is further based on a remaining battery life of the first device.

Another aspect disclosed is an apparatus for wireless communication on an ad-hoc network. The apparatus includes a receiver configured to receive a message identifying a location of a root device of a first ad-hoc network, a processor configured to determine a location of the first device, and a processor configured to selectively scan for other ad-hoc networks based on the location of the first device and the location of the root device. In some aspects, the selective scanning is performed if the distance between the first device and the root device is greater than a threshold distance. In some aspects, the apparatus also includes a processor configured to join a second ad-hoc network as a result of the selective scanning In some aspects, the apparatus also includes a processor configured to determine a window schedule for the second ad-hoc network, and a transmitter configured to transmit a discovery message on the first ad-hoc network, the discovery message indicating the window schedule. In some aspects, the processor is further configured to selectively scan based on a remaining battery life of the apparatus.

Another aspect disclosed is an apparatus for wireless communication on an ad-hoc network. The apparatus includes means for receiving a message identifying a location of a root device of a first ad-hoc network, means for determining a location of the first device; and means for selectively scanning for other ad-hoc networks based on the location of the first device and the location of the root device. In some aspects, the selective scanning is performed if the distance between the first device and the root device is greater than a threshold distance. In some aspects, the apparatus also includes means for joining a second ad-hoc network as a result of the selective scanning. In some aspects, the apparatus also includes means for determining a window schedule for the second ad-hoc network, and means for transmitting a discovery message on the first ad-hoc network, the discovery message indicating the window schedule. In some aspects, the means for selectively scanning is configured to selectively scan based on a remaining battery life of the apparatus.

Another aspect disclosed is a non-transitory, computer readable medium comprising instructions that when executed cause a processor to perform a method of wireless communication on an ad-hoc network. The method includes receiving, by a first device, a message identifying a location of a root device of a first ad-hoc network, determining, by the first device, a location of the first device, and selectively scanning, by the first device, for other ad-hoc networks based on the location of the first device and the location of the root device. In some aspects, the selective scanning is performed if the distance between the first device and the root device is greater than a threshold distance. In some aspects, the method further includes joining a second ad-hoc network as a result of the selective scanning In some aspects, the method further includes determining a window schedule for the second ad-hoc network, and transmitting a discovery message on the first ad-hoc network, the discovery message indicating the window schedule. In some aspects, the selective scanning is based on a remaining battery life.

Another aspect disclosed is a method of wireless communication on an ad-hoc network. The method includes joining, by a device, the ad-hoc network, determining, by the device, a window schedule for a second ad-hoc network, and transmitting, by the device, a discovery message on the first ad-hoc network, the discovery message indicating the window schedule. In some aspects, the method includes determining, by the device, a second window schedule for a third ad-hoc network, wherein the discovery message indicates the second window schedule.

Another aspect disclosed is an apparatus for wireless communication on an ad-hoc network. The apparatus includes a processor configured to join the ad-hoc network, a processor configured to determine a window schedule for a second ad-hoc network, and a transmitter configured to transmit a discovery message on the first ad-hoc network, the discovery message indicating the window schedule. In some aspects, the apparatus also includes a processor configured to determine a second window schedule for a third ad-hoc network, wherein the processor is configured to transmit the discovery message further indicating the second window schedule.

Another aspect disclosed is an apparatus for wireless communication on an ad-hoc network. The apparatus includes means for joining the ad-hoc network, means for determining a window schedule for a second ad-hoc network, and means for transmitting a discovery message on the first ad-hoc network, the discovery message indicating the window schedule. In some aspects, the apparatus also includes means for determining a second window schedule for a third ad-hoc network, wherein the means for transmitting is configured to transmit the discovery message further indicating the second window schedule.

Another aspect disclosed is a non-transitory computer readable medium comprising instructions that when executed cause a processor to perform a method of wireless communication on an ad-hoc network. The method includes joining the ad-hoc network, determining a window schedule for a second ad-hoc network, and transmitting a discovery message on the first ad-hoc network, the discovery message indicating the window schedule. In some aspects, the method also includes determining a second window schedule for a third ad-hoc network, wherein the discovery message indicates the second window schedule.

DETAILED DESCRIPTION

Wireless network technologies may include various types of wireless local area networks (WLANs). A WLAN may be used to interconnect nearby devices together, employing widely used networking protocols. However, the various aspects described herein may apply to any communication standard, such as a wireless protocol.

In some implementations, a WLAN includes various devices which are the components that access the wireless network. For example, there may be two types of devices: access points (“APs”) and clients (also referred to as stations, or “STAs”). In general, an AP may serve as a hub or base station for the WLAN and a STA serves as a user of the WLAN. For example, a STA may be a laptop computer, a personal digital assistant (PDA), a mobile phone, etc. In an example, a STA connects to an AP via a WiFi (e.g., IEEE 802.11 protocol) compliant wireless link to obtain general connectivity to the Internet or to other wide area networks. In some implementations a STA may also be used as an AP.

An access point (“AP”) may also comprise, be implemented as, or known as a NodeB, Radio Network Controller (“RNC”), eNodeB, Base Station Controller (“BSC”), Base Transceiver Station (“BTS”), Base Station (“BS”), Transceiver Function (“TF”), Radio Router, Radio Transceiver, or some other terminology.

A station “STA” may also comprise, be implemented as, or known as an access terminal (“AT”), a subscriber station, a subscriber unit, a mobile station, a remote station, a remote terminal, a user terminal, a user agent, a user device, user equipment, or some other terminology. In some implementations an access terminal may comprise a cellular telephone, a cordless telephone, a Session Initiation Protocol (“SIP”) phone, a wireless local loop (“WLL”) station, a personal digital assistant (“PDA”), a handheld device having wireless connection capability, or some other suitable processing device or wireless device connected to a wireless modem. Accordingly, one or more aspects taught herein may be incorporated into a phone (e.g., a cellular phone or smartphone), a computer (e.g., a laptop), a portable communication device, a headset, a portable computing device (e.g., a personal data assistant), an entertainment device (e.g., a music or video device, or a satellite radio), a gaming device or system, a global positioning system device, or any other suitable device that is configured to communicate via a wireless medium.

As discussed above, a root node of an ad-hoc network may transmit synchronization messages to coordinate one or more availability windows for communication between nodes of the ad-hoc network. The availability window may also be known as a discovery interval as discussed below. If these synchronization messages are received by nodes of the ad-hoc network, they may be forwarded or retransmitted. In an embodiment, whether a node retransmits or forwards a synchronization message may be based on a hop count field included in the message.

Nodes positioned near the edge of a first ad-hoc network may receive synchronization messages that have a hop count near or at a maximum hop count value. Since these nodes may be positioned near the edge of the first ad-hoc network, the strength of the signals exchanged between edge nodes and the ad-hoc network may be relatively weak. In some embodiments, this may reduce the reliability or maximum throughput available using the first ad-hoc network. Additionally, because the nodes may be positioned at the edge of the first ad-hoc network, they may also be positioned so as to be within the transmission and reception range of other ad-hoc networks.

Therefore, aspects of the present disclosure provide for methods, apparatus, and computer readable medium for nodes positioned near or at the edge of an ad-hoc network. These aspects provide for selective scanning for other ad-hoc networks based, at least in part, on an indicator of a number of times a message has been forwarded by a first ad-hoc network. If a device may determine that it is positioned at or near the edge of the first ad-hoc network, for example, based on a hop count included in a forwarded message from the first ad-hoc network, it may selectively scan for and join one or more other ad-hoc networks. By participating in or joining multiple ad-hoc networks, in an embodiment, a leaf or edge node may provide gateway functionality between the first and a second ad-hoc network.

Additionally, the selective scanning by an edge or leaf node and subsequent joining of one or more additional ad-hoc networks may provide for improved network connectivity for the leaf node. For example, a throughput or reliability from a second ad-hoc network available to a leaf node of a first ad-hoc network may be improved when compared to the network connectivity available to the leaf node via the existing first ad-hoc network connection.

FIG. 2illustrates various components that may be utilized in a wireless device202that may be employed within the wireless communication system100or160. The wireless device202is an example of a device that may be configured to implement the various methods described herein. For example, the wireless device202may comprise the AP104or one of the STAs.

The processing system may also include machine-readable media for storing software. Software shall be construed broadly to mean any type of instructions, whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. Instructions may include code (e.g., in source code format, binary code format, executable code format, or any other suitable format of code). The instructions, when executed by the one or more processors, cause the processing system to perform the various functions described herein. In addition, the wireless device202may include a clock224configured to generate a clock signal that is used to coordinate and synchronize activities of the wireless device202. In some configurations, the processor204may include the clock224. The processor204may be configured to update the clock with a time value to allow for synchronization with other wireless devices.

The wireless device202may also include a housing208that may include a transmitter210and/or a receiver212to allow transmission and reception of data between the wireless device202and a remote location. The transmitter210and receiver212may be combined into a transceiver214. An antenna216may be attached to the housing208and electrically coupled to the transceiver214. The wireless device202may also include (not shown) multiple transmitters, multiple receivers, multiple transceivers, and/or multiple antennas.

The transmitter210may be configured to wirelessly transmit packets having different packet types or functions. For example, the transmitter210may be configured to transmit packets of different types generated by the processor204. When the wireless device202is implemented or used as an AP104or STA106, the processor204may be configured to process packets of a plurality of different packet types. For example, the processor204may be configured to determine the type of packet and to process the packet and/or fields of the packet accordingly. When the wireless device202is implemented or used as an AP104, the processor204may also be configured to select and generate one of a plurality of packet types. For example, the processor204may be configured to generate a discovery packet comprising a discovery message and to determine what type of packet information to use in a particular instance.

The receiver212may be configured to wirelessly receive packets having different packet types. In some aspects, the receiver212may be configured to detect a type of a packet used and to process the packet accordingly.

The wireless device202may also include a signal detector218that may be used in an effort to detect and quantify the level of signals received by the transceiver214. The signal detector218may detect such signals as total energy, energy per subcarrier per symbol, power spectral density and other signals. The wireless device202may also include a digital signal processor (DSP)220for use in processing signals. The DSP220may be configured to generate a packet for transmission. In some aspects, the packet may comprise a physical layer data unit (PPDU).

The wireless device202may further comprise a user interface222in some aspects. The user interface222may comprise a keypad, a microphone, a speaker, and/or a display. The user interface222may include any element or component that conveys information to a user of the wireless device202and/or receives input from the user.

The various components of the wireless device202may be coupled together by a bus system226. The bus system226may include a data bus, for example, as well as a power bus, a control signal bus, and a status signal bus in addition to the data bus. The components of the wireless device202may be coupled together or accept or provide inputs to each other using some other mechanism.

Although a number of separate components are illustrated inFIG. 2, one or more of the components may be combined or commonly implemented. For example, the processor204may be used to implement not only the functionality described above with respect to the processor204, but also to implement the functionality described above with respect to the signal detector218and/or the DSP220. Further, each of the components illustrated inFIG. 2may be implemented using a plurality of separate elements.

Devices, such as STAs,106a-ishown inFIG. 1b, for example, may be used for neighborhood aware networking, or social-WiFi networking. For example, various stations within the network may communicate on a device to device (e.g., peer-to-peer communications or ad-hoc communications) basis with one another regarding applications that each of the stations supports. A discovery protocol may be used in a social-WiFi network to enable STAs to advertise themselves (e.g., by sending discovery packets) as well as discover services provided by other STAs (e.g., by sending paging or query packets), while ensuring secure communication and low power consumption. Furthermore, at least a portion of the discovery protocol may be related to coordinating and/or synchronizing activities of the STAs. It should be noted that a discovery packet may also be referred to as a discovery message or a discovery frame. It should also be noted that a paging or query packet may also be referred to as a paging or query message or a paging or query frame.

Furthermore, to ensure proper communication between multiple STAs, STAs may require information regarding characteristics of other STAs. For example, the STA106may require timing information about the AP104in order to synchronize timing of communication between the STA106and the AP104. Additionally or alternatively, the STA106may require other information such as a medium access control (MAC) address of the AP104or another STA, an identifier of the basic service set (BSS) served by the AP104, etc. The STA106may determine whether it needs such information independently, such as through software that is executed using memory206and processor204.

The AP104or STA106may have a plurality of operational modes. For example, the STA106may have a first operational mode referred to as an active mode, normal operation mode, or full power mode. In the active mode, the STA106may always be in an “awake” state and actively transmit/receive data with another STA106. Further, the STA106may have a second operational mode referred to as a power-save mode or sleep mode. In the power-save mode, the STA106may be in the “awake” state or may be in a “doze” or “sleep” state where the STA106does not actively transmit/receive data with another STA106. For example, the receiver212and possibly DSP220and signal detector218of the STA106may operate using reduced power consumption in the doze state. Further, in the power-save mode, a STA106may occasionally enter the awake state to listen to messages from an AP104or from other STAs (e.g., paging messages) that indicate to the STA106whether or not the STA106needs to “wake up” (e.g., enter the awake state) at a certain time so as to be able to transmit/receive data with the AP104or another STA.

FIG. 3aillustrates an exemplary communication timeline300ain a wireless communication system where STAs may communicate via one channel. In one aspect, the communication according to the timeline shown inFIG. 3amay be used in an ad-hoc wireless network, such as the network shown inFIG. 1borFIG. 1c. The exemplary communication timeline300amay include a discovery interval (DI)302aof a time duration ΔA306a, a paging interval (PI)304aof a time duration ΔB308a, and an overall interval of a time duration ΔC310a. In some aspects, communications may occur via other channels as well. Time increases horizontally across the page over the time axis.

During the DI302a, APs or STAs may advertise services through broadcast messages such as discovery packets. APs or STAs may listen to broadcast messages transmitted by other APs or STAs. In some aspects, the duration of DIs may vary over time. In other aspects, the duration of the DI may remain fixed over a period of time. The end of the DI302amay be separated from the beginning of the subsequent PI304aby a first remainder period of time as illustrated inFIG. 3a. The end of the PI304amay be separated from the beginning of a subsequent DI by a different remainder period of time as illustrated inFIG. 3a. However, different combinations of remainder time periods are contemplated.

During the PI304a, APs or STAs may indicate interest in one or more of a plurality of services advertised in a broadcast message by transmitting paging request messages such as paging request packets. APs or STAs may listen to paging request messages transmitted by other APs or STAs. In some aspects, the duration of the PI may vary over time. In other aspects, the duration of the PI may remain constant over a period of time. In some aspects, the duration of the PI may be less than the duration of the DI.

The overall interval of duration ΔC310amay measure the period of time from the beginning of one DI to the beginning of a subsequent DI as illustrated inFIG. 3a. In some aspects, the duration of the overall interval may vary over time. In other aspects, the duration of the overall interval may remain constant over a period of time. At the conclusion of the overall interval of duration ΔC310a, another overall interval may begin, including a DI, a PI, and the remainder intervals. Consecutive overall intervals may follow indefinitely or continue for a fixed period of time.

A STA may enter a sleep or power-save mode when the STA is not transmitting or listening or is not expecting to transmit or listen. As an example, the STA may sleep during periods other than the DI or PI. The STA in the sleep mode or power-save mode may awake or return to normal operation or full power mode at the beginning of the DI or PI to enable transmission or listening by the STA. In some aspects, the STA may awake or return to normal operation or full power mode at other times when the STA expects to communicate with another device, or as a result of receiving a notification packet instructing the STA to awake. The STA may awake early to ensure that the STA receives a transmission.

As described above, during the DI, APs or STAs may transmit discovery packets (DPs). During the PI, APs or STAs may transmit paging request packets (PRs). A DP may be a packet configured to advertise a plurality of services provided by a STA or AP and to indicate when the paging interval is for the device that transmits the discovery packet. The DP may include a data frame, management frame, or management action frame. The DP may carry information generated by a higher layer discovery protocol or an application based discovery protocol. The PR may be a packet configured to indicate interest in at least one of the plurality of services provided by an AP or STA.

The start and end of the DI and PI may be known via numerous methods to each STA desiring to transmit a discovery packet or a paging request packet. In some aspects, each STA may synchronize its clock with the other APs or STAs and set a shared DI and PI start time and DI duration and PI duration. In other aspects, a device may send a signal such as a special clear to send (S-CTS) signal to clear the medium of legacy communications, such as communications that may conflict or not be compliant with aspects of the present disclosure, and indicate the beginning and duration of the DI or PI period, as well as additional information about the DI and PI durations.

A STA potentially interested in services advertised via discovery packets, such as from other STAs, may awake or remain awake during the DI and process discovery packets to determine if a particular discovery packet includes information about one or more of a plurality of services that may be of interest to the receiving STA. After the DI period, STAs not planning to communicate information may enter a sleep or power-save mode for a break period until the next time the STAs plan to communicate. In some aspects, a STA may enter the sleep or power-save mode until the STA may communicate additional information with another device outside of the DI or PI. In some aspects, the STA may enter the sleep or power-save mode until the beginning of the next PI. At the beginning of the PI, the interested STA may awake to transmit a paging request packet to the provider of the service.

A STA waiting for a response to a transmitted discovery packet, such as discovery packets transmitted to other STAs, may awake or remain awake during the PI and process paging request packets to determine if a particular paging request packet indicates interest by another device in at least one of plurality of services provided by the STA. After the PI period, STAs not planning to communicate information may enter a sleep or power-save mode for a break period until the next time the STAs plan to communicate. In some aspects, a STA may enter the sleep or power-save mode until the STA may communicate additional information with another device outside of the DI or PI. In some aspects, the STA may enter the sleep or power-save mode until the beginning of the next DI.

As examples, the duration ΔC of the overall interval may equal approximately one to five seconds in some aspects. In other aspects, the overall interval may be less than one second or more than five seconds. The duration ΔA of the DI may equal approximately 16 milliseconds in some aspects while more or less than 16 milliseconds in other aspects. The duration ΔB of the PI may equal approximately the duration ΔA in some aspects. In other aspects, the duration ΔB may be more or less than the duration ΔA.

FIG. 3bis a flowchart of an exemplary process300bof discovering devices in a wireless communication system. The process300bmay be used to introduce two devices, such as two STAs and106b. For example, a STA may advertise information about one or more of a plurality of services that may be of interest to various other STAs to which the information is directed. In some embodiments, a service offered by a STA may include a service offered by an application (e.g., a gaming application, a shopping application, a social networking application, etc.) that a user has downloaded or that is native to the STA. For example, a user of the STA may want to invite other users of the application to interact with the user via the application. At block302b, the STA may initiate transmission of announcements. Each announcement may include a discovery packet or message including the information relating to the one or more services. At block304b, the STA may wake up from a power-save mode or sleep mode during a discovery interval to send announcements to one or more STAs. At block306b, the STA may send one or more short announcements regarding a particular service, such as “Jack's Fruits,” in order to facilitate discovery of the STA. The short announcements may include a discovery packet or message. The receiving STAs that are interested in the one or more services advertised by the STA may respond with a paging request (or query request) packet or message that indicates interest in the service provided by the STA. Whether an STA is “interested” in the one or more services may be based on one or more parameters. For example, configuration data may store a list of services a device is “interested” in. The configuration data may be based on a user's preferences for services. These preferences may be received via a user interface or network connection. For example, the user's preferences may be initialized when a mobile device is provisioned. The user's preferences for services may be stored in configuration data. The configuration data may define one or more criteria that can be used to evaluate a service to determine whether the service is of interest to the device.

At block308b, the STA may receive queries (e.g., a paging or query request) for information on the particular service, such as “Jack's Fruits.” In response, at block310b, the STA may send a response to the queries. Follow on messaging between the STA and the various querying STAs may occur. The STA and the various STAs may enter power-save mode or sleep mode in the intervals between the exchanges of messages between the STAs. The receiving may be performed by receiver212or the transceiver214, for example, and the transmitting may be performed by the transmitter210or the transceiver214, for example.

FIG. 3cis a flowchart of an exemplary process300cof querying devices in a wireless communication system in accordance with aspects of the present disclosure. At block302c, a STA may input a shopping list, which may include various vendors that a user of the STA may have an interest. For example, a user may download a shopping list from the Internet. Although the process300cis described with respect to a shopping application, those having ordinary skill in the art will appreciate that the process300capplies to other applications, such as gaming applications, social networking applications, etc. At block304c, the STA may set up filters for the shopping list. For example, a filter may be set up to allow the STA to wake up from a power-save mode or sleep mode only when a discovery packet or message is received for particular vendors or applications. At block306c, the STA may wake up during a discovery interval to listen to announcements. Each announcement may include a discovery packet or message including information relating to one or more services offered by one or more other STAs. At block308c, the STA may receive an announcement from a second STA, such as a “Jack's Fruits” announcement. The STA may determine whether it is interested in one or more sets of information related to the announcement and may respond with a paging request (or query request) packet or message that indicates its interest in the information. For example, if the STA is interested in a particular sale item offered by the second STA, the STA may respond with a paging request (or query request) packet or message. At block310c, the STA sends a query for more information relating to the announcement, such as more information on Jack's Fruits. At block312c, the STA may receive a response to one or more queries that the STA sent to other STAs regarding services offered by the other STAs.

It is desirable for the STAs described above (e.g., using a discovery protocol used in a social-WiFi network) to be able to advertise themselves, as well as discover services provided by other STAs, using a secure communication protocol and while keeping power consumption low. For example, it is desirable for a STA to advertise its offered services by securely sending discovery packets or messages and for the STA to discover services offered by other STAs by securely sending paging or query packets or messages while avoiding excess power consumption. For example in accordance with certain embodiments, STAs may “sleep” a majority of a time period and wake up for short discovery intervals as described to decrease power consumption. There may be certain conditions that allow the STAs to make use of short time intervals to decrease power consumption while still effectively allowing discovery and advertisement of services within the network. For example, it is desirable that STAs that transmit during the short time intervals “know” that intended receivers are active to receive the transmitting messages. In addition, it is further desirable that STAs that are searching for different services advertised by another STA106activate their receivers at the appropriate time to receive messages advertising services from other STAs. As such, certain embodiments described herein are directed to synchronization between different STAs to allow for performing device discovery as described above and for synchronization of other communications while allowing for reduced power consumption. For example certain embodiments are directed to synchronization so that STAs are activated for transmitting and receiving at the same time.

Furthermore, when STAs communicate without a central coordinator, such as an AP104, synchronization of communications between the STAs may be desirable. As just described, if the STAs are not synchronized, the STAs may not receive discovery messages within the discovery interval, or be able to transmit paging requests within the correct paging interval to be received by other STAs. Synchronization therefore may provide a common reference time that may be used to determine timing of communication intervals such as the discovery interval302aand the paging interval304a. As each STA106operates independently of the other STAs, each generating an individual clock signal, the clock signal may become out of sync. For example, if a STA106is in a “doze” state, the clock signal may drift and define a reference time value that is faster or slower as compared to other clocks signals of other STAs.

Certain aspects described herein are directed to devices and methods for synchronization of clock signals of STAs operating in an ad-hoc fashion. In one aspect, at least some of the STAs may transmit the current time value of their clock signals to the other STAs. For example, in accordance with certain embodiments, STAs may periodically transmit a ‘sync’ frame that carries a time stamp. The current time value may correspond to a time-stamp value. For example, in one embodiment, a discovery message as described above may serve as the ‘sync’ frame and carry a current time value of a STA106. In addition to the time stamp, the sync frame may also include information regarding the discovery interval and discovery period. For example, the sync frame may include the schedule of the discovery interval and discovery period. In some embodiments, the sync frame may also include information identifying a device to generate prospective synchronization messages. For example, an indication of a back-up root node may be included in the sync frame.

Upon receipt of a sync frame, a STA106that may be new to the network may determine the time and the discovery interval/discovery period schedule in the network. STAs already communicating within the network may maintain synchronization while overcoming clock drift as described below. Based on the sync message, STAs may enter and exit a network (e.g., a NAN) without losing synchronization. Furthermore, the synchronization messages described herein may allow for avoiding excessive power drain and the STAs in the network may share the burden of messaging for synchronization. Furthermore, certain embodiments allow for a low messaging overhead (e.g., as only a few devices may send sync frames in every discovery period as will be described below). As described above with reference toFIG. 3A, discovery packets within a NAN are transmitted during a discovery interval302athat occurs every discovery period. As such, sync messages may be sent during a discovery interval302afor certain discovery periods.

It should be appreciated that a STA106may not transmit a sync frame every discovery interval. Rather, a probability value (P_sync), as is further described below, may be used to determine whether the STA106transmits and/or prepares a sync frame. As such, while at least some sync frames are sent for every discovery interval, not all the STAs participating in the NAN transmit a sync frame for every discovery interval. This may allow for reduced power consumption in transmitting sync frames while still enabling synchronization.

FIG. 4Aillustrates a message400that may include a time value for synchronization. As described above, in some embodiments, the message400may correspond to a discovery message as described above. The message400may include a discovery packet header408. The message may further include410a time value for synchronization410. In some embodiments, the discovery packet header408may include the time value410. The time value may correspond to a current time value of a clock signal of a STA106transmitting the message400. The message400may further include a hop count412. To extend the range of an ad-hoc network, nodes of the ad-hoc network may selectively forward synchronization messages. The hop count field412may identify the number of times the synchronization message400has been forwarded. When a node of the ad-hoc network forwards the message400, it may increment the hop count field412. If the hop count field reaches a maximum hop count, nodes receiving the message400may not forward the message. This prevents messages from being forwarded indefinitely. The message400may further include discovery packet data414. WhileFIG. 4Ashows discovery message serving as the sync message, it should be appreciated that according to other embodiments, the sync message may be sent apart from the discovery message.

FIG. 4billustrates an example of a wireless communication system420in which aspects of the present disclosure may be employed.FIG. 4bshows an ad-hoc network420including a root node106j. The root node106jtransmits messages430and428, which are received by nodes106kand106mrespectively. In an embodiment, messages430and428may be broadcast. In an embodiment, messages430and428may be the same message, received by both nodes106mand106k. Messages430and428may include a hop count field414as illustrated inFIG. 4A. When root node106jinitially transmits a message, it may set the hop count field to an initial value, for example zero (0) or one (1). When the message(s) are received by nodes106kand106m, these nodes may compare the hop count field included in the message to a maximum value. If the hop count field is less than the maximum value, they may increment the hop count field and forward the message(s). In an embodiment, messages428and430may be a synchronization message.

FIG. 4bshows node106kretransmitting or forwarding message430as message432. Message432is received by node1061. Node106mretransmits or forwards message428as message426after incrementing the hop count field included in message428. When node106nreceives message426, it may determine that the hop count included in the message has reached a maximum hop count. Therefore, node106ndoes not forward message426. Similarly, node106lmay also determine that the hop count field of message432has reached a maximum hop count value, and will not forward message432as a result.

FIG. 4cillustrates an example of a wireless communication system450in which aspects of the present disclosure may be employed.FIG. 4cshows network425ofFIG. 4b, with root node106jand leaf node106l. Other nodes fromFIG. 4bhave been omitted fromFIG. 4cfor clarity.FIG. 4calso shows other ad-hoc networks440and445. Ad-hoc network440includes root node106oand ad-hoc network445includes root node106p. The circles440and445show the approximate edge of the ad-hoc networks of root nodes106oand106prespectively. As shown, leaf node106lis positioned at the edge of network425. As such, when messages are received by lead node106lfrom root node106j, the hop count may be set to a maximum hop value. Leaf node106lmay not forward messages from root node106jas a result.

In some aspects, messages received from root node106jby leaf node106lthat include a hop count field greater than or equal to a maximum hop count may provide an indication to leaf node106lthat it is positioned near an edge of network425. In response, in some embodiments, node106lmay selectively scan for other ad-hoc networks. For example,FIG. 4cshows other ad-hoc networks440and445. Node106lis positioned within range of these networks, and may be able to receive messages from root nodes106oand/or106p. In an embodiment, node106lmay join one or both of networks440and445, in addition to participating in the first ad-hoc network425.

In some aspects, node106lmay selectively scan for ad-hoc networks based on a hop count in a message received from root node106jbeing greater than or equal to a first hop count value. Messages from root node106jmay be forwarded by node106lif the hop count in the messages is greater than or equal to a second hop count value. In some aspects, the second hop count value is greater than the first hop count value.

FIG. 5is a flowchart of a method500of wireless communication. In an embodiment, process500is performed by a device in an ad-hoc network. In another embodiment, process500is performed by a leaf device in an ad-hoc network. Although the method500is described below with respect to the elements of the wireless device202, those having ordinary skill in the art will appreciate that other components may be used to implement one or more of the blocks described herein.

At block502, a message is received from a first ad-hoc network. In some aspects, the message is received from a root device of the first ad-hoc network. The message identifies a number of times the message has been forwarded. In one embodiment, the message includes a “hop count” field. The “hop count” field is incremented whenever a node of a wireless network forwards the message. When the “hop count” reaches a maximum hop count, nodes receiving the message do not forward the message. This prevents messages from being forwarded indefinitely. Nodes receiving a message with a “hop count” field at a maximum value may be positioned at an edge of an ad-hoc network. In other words, these nodes may be leaf nodes.

In block504, a device selectively scans for other ad-hoc networks based on the identified number. The other ad-hoc networks are networks different than the first ad-hoc network. In an embodiment, leaf nodes as described above may scan for other ad-hoc networks. In some of these embodiments, non-leaf nodes may not scan for other ad-hoc networks. If one or more other ad-hoc networks are found as a result of the selective scanning, a leaf node may join one or more of the identified ad-hoc networks. In an embodiment, a leaf node may compare the network performance of two or more ad-hoc networks and disconnect from an ad-hoc network based on the comparison. For example, a leaf node may remain in communication with an ad-hoc network exhibiting superior network connectivity when compared to other ad-hoc networks it may be able to communicate with. In an embodiment, whether to selectively scan for ad-hoc networks based on the identified number may be configurable. For example, in some aspects, a first set of leaf nodes may be configured to scan for other ad-hoc networks while a second set of leaf nodes are configured not to scan for other ad-hoc networks. In some aspects, selectively scanning for other ad-hoc networks includes determining if a particular discovery packet or other message received outside the availability window matches a criteria defined by configuration data.

As described above with respect toFIGS. 3A-C, selectively scanning for other ad-hoc networks may include remaining awake and/or listening for network traffic during one or more DI or PI intervals to determine if a particular discovery packet or other message includes information about one or more of a plurality of services that may be of interest to the device. In an embodiment, selectively scanning may comprise receiving and/or processing messages outside an availability window or discovery interval for an ad-hoc network a station is in communication with.

In some aspects, a device performing process500may selectively scan for ad-hoc networks if a hop count in the received message of block502is greater than or equal to a first hop count value. The first hop count value may be equivalent to the number of times the received message has been forwarded. In some aspects, process500may further include forwarding the received message if the hop count in the received message is greater than or equal to a second hop count value. In some aspects, the second hop count value is greater than the first hop count value. In some aspects, the second hop count value is equivalent to the first hop count value.

In some aspects, the selective scanning may be based on the first device's remaining battery life. For example, in some aspects, if the remaining battery life is above a first energy threshold, the first scanning period and a first scanning duration may be utilized. A scanning period may be an elapsed time between scans. In some aspects, if the remaining battery life is below a second energy threshold, a second scanning period and a second scanning duration may be utilized. In some aspects, the second scanning period may be greater than the first scanning period. In some aspects, the second scanning duration may be lower than the first scanning duration.

FIG. 6is a functional block diagram of an exemplary wireless communication device600that may be employed with the wireless communication system ofFIG. 4b, orFIG. 4c. The wireless device600may include a receiving module602. In an embodiment, the receiving module602may comprise the receiver212. In one aspect, the receiving module602may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for receiving may include the receiving module602. The receiving module602may be configured to perform one or more of the functions described above with respect to block502ofFIG. 5. The wireless device600may further include a selective scanning module604. The selective scanning module604may include the processor unit(s)204ofFIG. 2. In one aspect, the selective scanning module604may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for selective scanning may include the selective scanning module604. The selective scanning module604may be configured to perform one or more of the functions described above with respect to block504ofFIG. 5.

FIG. 7is a flowchart of a method700of wireless communication. In an embodiment, process700is performed by a device in an ad-hoc network. In another embodiment, process700is performed by a leaf device in an ad-hoc network. Although the method700is described below with respect to the elements of the wireless device202, those having ordinary skill in the art will appreciate that other components may be used to implement one or more of the blocks described herein.

In block702, a message is received by a first device. The message identifies a location of a root device for a first ad-hoc network. For example, in some aspects, the message may indicate global positioning coordinates of the root device. In some other aspects, the location of the root device may be determined based on cellular signals. For example, the location may be determined based on one or more distances from one or more corresponding keypoints. In some aspects, the keypoints may be access points, cellular transmitters, or stations. In some aspects, the received message is a synchronization message. In some aspects, the received message identifies a first ad-hoc network.

In block704, the first device determines a location of the first device. In some aspects, the first device determines its location based on GPS signals. In other aspects, the first device may determine its location based on cellular signals. For example, the location may be determined based on measured round-trip delays to a plurality of cellular transmitters.

In block706, the first device selectively scans for other ad-hoc networks based on the location of the first device and the location of the root device. The other ad-hoc networks are ad-hoc networks different than the first ad-hoc network. In some aspects, the first device may selectively scan for other ad-hoc networks if the distance between its location and the root device is greater than a first threshold distance.

In some aspects, the selective scanning may be based on the first device's remaining battery life. For example, in some aspects, if the remaining battery life is above a first energy threshold, the first scanning period and a first scanning duration may be utilized. A scanning period may be an elapsed time between scans. In some aspects, if the remaining battery life is below a second energy threshold, a second scanning period and a second scanning duration may be utilized. In some aspects, the second scanning period may be greater than the first scanning period. In some aspects, the second scanning duration may be lower than the first scanning duration.

In some aspects, the message received by the device in block702can indicate the first threshold distance discussed above. In some aspects, the message received by the device in block702can further indicate or include a second threshold distance. In some aspects, the second threshold distance indicates a maximum allowed device distance to join an ad-hoc network identified by the received message. In some aspects, the second threshold distance is greater than the first threshold distance.

In some aspects a device may determine a distance between the root device and its present location. If this distance is greater than the second threshold distance, the device may not join the ad-hoc network identified by the message received in block702. This provides a distance limit on devices participating in the ad-hoc network identified by the message received in block702.

In some aspects, the difference between the first and second threshold distances should be less than a device radio coverage radius. This enables devices participating or joining the first ad-hoc network with a distance from a root device that lies between the first and second threshold distances can join other ad-hoc networks via selecting scanning.

FIG. 8is a functional block diagram of an exemplary wireless communication device800that may be employed with the wireless communication system ofFIG. 4b, orFIG. 4c. The wireless device800may include a receiving module802. In an embodiment, the receiving module802may comprise the receiver212. In one aspect, the receiving module802may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for receiving may include the receiving module802. The receiving module802may be configured to perform one or more of the functions described above with respect to block702ofFIG. 7. The wireless device800may further include a selective scanning module804. The selective scanning module804may include the processor unit(s)204ofFIG. 2. In one aspect, the selective scanning module804may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for selective scanning may include the selective scanning module804. The selective scanning module804may be configured to perform one or more of the functions described above with respect to block706ofFIG. 7. The wireless device800may further include a determining module806. The determining module806may include the processor unit(s)204ofFIG. 2. In one aspect, the determining module806may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for determining may include the determining module806. The determining module806may be configured to perform one or more of the functions described above with respect to block704ofFIG. 7.

FIG. 9is a flowchart of a method900of wireless communication. In an embodiment, process900is performed by a device in an ad-hoc network. In another embodiment, process900is performed by a leaf device in an ad-hoc network. Although the method900is described below with respect to the elements of the wireless device202, those having ordinary skill in the art will appreciate that other components may be used to implement one or more of the blocks described herein.

In block902, a device determines its location. In some aspects, the location is determined based on GPS signals. In some aspects, the location is determined based on cellular signals. For example, in some aspects, the location is based on measured round-trip delays to a plurality of cellular transmitters. In block904, a synchronization message is generated, the synchronization message indicating the device location. In some aspects, the location is included in the synchronization message. In block906, the synchronization message is transmitted by the device.

FIG. 10is a functional block diagram of an exemplary wireless communication device1000that may be employed with the wireless communication system ofFIG. 4b, orFIG. 4c. The wireless device1000may include a determining module1002. In an embodiment, the determining module1002may comprise the processor204. In one aspect, the determining module1002may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for determining may include the determining module1002. The determining module1002may be configured to perform one or more of the functions described above with respect to block902ofFIG. 9. The wireless device1000may further include a generating module1004. The generating module1004may include the processor unit(s)204ofFIG. 2. In one aspect, the generating module1004may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for generating may include the generating module1004. The generating module1004may be configured to perform one or more of the functions described above with respect to block904ofFIG. 9. The wireless device1000may further include a transmitting module1006. The transmitting module1006may include the transmitter210ofFIG. 2. In one aspect, the transmitting module1006may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for transmitting may include the transmitting module1006. The transmitting module1006may be configured to perform one or more of the functions described above with respect to block906ofFIG. 9.

FIG. 11is a flowchart of a method1100of wireless communication. In an embodiment, process1100is performed by a device in an ad-hoc network. In another embodiment, process1100is performed by a leaf device in an ad-hoc network. Although the method1100is described below with respect to the elements of the wireless device202, those having ordinary skill in the art will appreciate that other components may be used to implement one or more of the blocks described herein.

In block1102, a device joins a first ad-hoc network. In block1104, the device determines a window schedule for a second ad-hoc network. The second ad-hoc network is different than the first ad-hoc network. In some aspects, the device may selectively scan for a second ad-hoc network based on a distance from a root device or a hop count included in a synchronization message, as discussed above with respect toFIGS. 5 and 7. Therefore, in some aspects, block1104may include process500ofFIG. 5and/or process700ofFIG. 7. In some aspects, the device may determine a plurality of window schedules for a plurality of other ad-hoc networks.

In block1106, the device transmits a discovery message on the first ad-hoc network. The discovery message indicates the window schedule for the second ad-hoc network. In some aspects, the discovery message may be received by one or more other devices that are participating in the first ad-hoc network. Those devices may utilize the window schedule provided in the discovery message to more efficiently search for the second ad-hoc network. In some aspects, the discovery message may indicate a plurality of window schedules for a plurality of ad-hoc networks.

FIG. 12is a functional block diagram of an exemplary wireless communication device1200that may be employed with the wireless communication system ofFIG. 4b, orFIG. 4c. The wireless device1200may include a joining module1202. In an embodiment, the joining module1202may comprise the processor204. In one aspect, the joining module1202may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for joining may include the joining module1202. The joining module1202may be configured to perform one or more of the functions described above with respect to block1102ofFIG. 11. The wireless device1200may further include a determining module1204. The determining module1204may include the processor unit(s)204ofFIG. 2. In one aspect, the determining module1204may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for determining may include the determining module1204. The determining module1204may be configured to perform one or more of the functions described above with respect to block1104ofFIG. 11. The wireless device1200may further include a transmitting module1206. The transmitting module1206may include the transmitter210ofFIG. 2. In one aspect, the transmitting module1206may also include one or more of a processor, signal generator, transceiver, decoder, or a combination of hardware and/or software component(s), circuits, and/or module(s). In one aspect, means for transmitting may include the transmitting module1206. The transmitting module1206may be configured to perform one or more of the functions described above with respect to block1106ofFIG. 11.

The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein and in connection withFIGS. 1-11may be implemented within or performed by an integrated circuit (IC), an access terminal, or an access point. The IC may include a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, electrical components, optical components, mechanical components, or any combination thereof designed to perform the functions described herein, and may execute codes or instructions that reside within the IC, outside of the IC, or both. The logical blocks, modules, and circuits may include antennas and/or transceivers to communicate with various components within the network or within the device. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. The functionality of the modules may be implemented in some other manner as taught herein. The functionality described herein (e.g., with regard to one or more of the accompanying figures) may correspond in some aspects to similarly designated “means for” functionality in the appended claims.