In various existing schemes for wireless communications, one or more wireless communicating devices may form a wireless network with one or more other wirelessly communicating devices. In some cases, a first wireless device may join a wireless network by becoming a part of a pre-existing network already formed by other wireless devices. In other cases, a first wireless device may join a wireless network by creating a wireless network with one or more other wireless devices. In order to join a wireless network, one wireless device must discover another wireless device. Typically, the discovery process involves various omnidirectional “scanning” communications. If a first wireless device cannot find an access point or other wireless device through omnidirectional scanning, the first wireless device may then assume that the scanned channels are idle and no other wireless devices are available for networking
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key or essential features of the invention.
Embodiments include, without limitation, methods for directionally scanning for network wireless devices. Embodiments further include, without limitation, devices and/or systems configured to perform such methods. Embodiments additionally include, without limitation, machine-readable media storing instructions that, when executed, cause a device and/or system to perform such methods. Embodiments also include, without limitation, methods for altering a transmission mode of a network wireless device, devices and/or systems configured to perform such methods, and machine-readable media storing instructions that, when executed, cause a device and/or system to perform such methods.
In some embodiments, a scanning wireless device may perform one or more omnidirectional scans for network wireless devices. Based at least in part on results of those omnidirectional scans, the scanning wireless device may determine that one or more directional scans should be performed. The scanning wireless device may then select one or more scan directions and perform a directional scan in each of those scan directions. Each directional scan may include increasing a receiving sensitivity of the scanning wireless device in the selected scan direction relative to a receiving sensitivity of the scanning wireless device in other directions and relative to a receiving sensitivity of the scanning wireless device during the one or more omnidirectional scans. Each directional scan may further include increasing a transmission gain of the scanning wireless device in the selected scan direction relative to a transmission gain of the scanning wireless device in other directions and relative to a transmission gain of the scanning wireless device during the one or more omnidirectional scans.
In some embodiments, a network wireless device may transmit in a first mode. The first mode transmissions may have a first coverage region. The network wireless device may receive data corresponding to a second mode in which transmissions will have a second coverage region different from the first coverage region. At least in part in response to the received data, the network wireless device may begin transmitting in the second mode.
Additional embodiments are disclosed herein.
Some embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements.
In the following description of various embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which various embodiments are shown by way of illustration. It is to be understood that there are other embodiments and that structural and functional modifications may be made. Embodiments of the present invention may take physical form in certain parts and steps, examples of which will be described in detail in the following description and illustrated in the accompanying drawings that form a part hereof.
In some embodiments, an NWD may be an access point configured to form a wireless network with one or more wireless stations. In some embodiments, for example, the network may have an infrastructure topology in which wireless stations communicate with an access point to exchange data with each other and/or with elements in additional networks (e.g., the Internet) with which the access point is also in communication. In the example of
According to some embodiments, an SWD may be at least one of a station (STA) and a non-access point station (non-AP STA) and an NWD may be an access point (AP).
An SWD may join a wireless network with one or more NWDs so as to form a network having any of various different topologies. Such topologically different networks could include infrastructure topologies such as that described above, IBSS (independent basic service set) wireless networks, mesh wireless networks and ad hoc wireless networks. In an IBSS network, wireless local area network stations share a common beacon transmission procedure. A station that transmits a beacon will remain active for a beacon period and respond to scanning requests. A mesh BSS (basic service set) may include equal mesh stations that all transmit beacon signals and that respond to scanning requests. Mesh stations may implement frame forwarding so as to expand coverage of a mesh network. An ad hoc network may allow wireless devices that are within range of on another other to discover and communicate in a peer-to-peer manner and without using a designated access point. In these and other topologies, a device may act as both an SWD and as an NWD, either simultaneously or in the alternative.
In some embodiments, an SWD and one or more NWDs may be (or become) part of a Wi-Fi Direct network. In such a network, one NWD is an “owner” that is similar to an access point with reduced functionality. An owner may respond to scanning requests on behalf of its Wi-Fi Direct BSS. Other types of wireless networks in which various embodiments can be employed include, without limitation, femto networks, LTE (long term evolution) networks, etc.
SWD 101 may be a laptop computer, a tablet computer, a smart phone, or other type of mobile device. Exemplary hardware for SWD 101 is described in connection with
SWD 101 is also able to communicate on multiple channels. As used herein, “channel” generically refers to a subportion of available communication capacity within a frequency band. A channel may be a continuous sub-portion of a frequency band, may be a collection of non-continuous frequencies or sub-bands (e.g., a subgroup of available orthogonal frequency division multiplexing subcarriers), may be one of several code division multiplexing codes, etc. In some embodiments, available channels may be defined by a communication protocol used by an SWD and one or more NWDs.
As indicated above, SWD 101 communicates with one or more NWDs by establishing a link with at least one NWD. After establishing such a link, SWD 101 may communicate through that NWD with other devices in the same wireless network. Such devices may include other stations that have also established a link with that same NWD. SWD 101 may communicate, through that NWD, with devices in the Internet or other networks with which that NWD may be connected. In order to establish a link with an NWD, SWD 101 must search for and identify one or more candidate NWDs. Searching for an NWD, also known as “scanning,” may be passive or active. In passive scanning, SWD 101 simply listens for (i.e., determines if it is receiving) a beacon communication or other type of transmission from an NWD. Such transmissions may also include data describing supported protocols and/or other communication parameters that SWD 101 and/or other wireless devices may use to establish a link with a transmitting NWD.
In active scanning, SWD 101 transmits a request communication seeking a response from candidate NWDs. Such a request communication may include data identifying SWD 101 as an authorized device and/or other data regarding SWD 101. The request may also include data that specifies certain criteria for candidate NWDs. For example, SWD 101 may be seeking to establish a link with an NWD operated by a particular network provider and/or an NWD that conforms to certain communication parameters. In some embodiments, only NWDs able to satisfy specified criteria respond to a request from an SWD.
Various types of passive and active scanning are well known and described in IEEE 802.11-2012 and other standards. In at least some embodiments, known passive and active scanning communication protocols can be used by an SWD and by scanned NWDs in connection with inventive scanning procedures described herein. For convenience, an active scan communication from an SWD seeking a response from candidate NWDs will be referred to generically as a “scan request.” A response to a scan request from an NWD will be referred to generically as a “scan response.”
According to some embodiments, a request may comprise a probe and/or GAS (generic advertisement service) request and a response may comprise a probe and/or GAS response. Procedures for exchanging probe request and probe response messages may be based on one or more 802.11 standards.
Each of NWDs 102-104 in
When operating in directional mode, SWD 101 is thus able to communicate with NWDs in region 111 that are more distantly located, and with which SWD 101 might not be able to communicate when operating in omnidirectional mode. In particular, the increased transmission gain in region 111 allows more distantly located NWDs within region 111 to detect communications from SWD 101 at a sufficiently low error rate. The increased reception sensitivity in region 111 allows SWD 101 to detect weaker signals from more distantly located NWDs within region 111 and to decode such signals with a sufficiently low error rate.
In a similar manner, SWD 101 can configure its transceiver for directional transmissions in other directions. When SWD 101 configures its transceiver for a directional communication in a second direction D2 or in third direction D3, SWD 101 has a transmission gain and reception sensitivity in expanded communication regions 112 and 113, respectively, that are greater than the transmission gain and reception sensitivity of that transceiver in regions associated with other directions, and which are also greater than the transmission gain (at the same transmit power level) and reception sensitivity of that transceiver when SWD 101 operates in omnidirectional mode. Although
For convenience, expanded communication regions D1, D2 and D3 are represented as simple bulbous shapes. The actual shapes of expanded communication regions may not be as shown in
As shown in
SWD 101 is configured to communicate on any of multiple channels 0 through m, where “m” is an arbitrary integer. Those channels may be defined by an applicable communication protocol, by policies implemented by networks in which SWD 101 is authorized to communicate, and/or in some other manner. In step 201, SWD 101 initializes a counter i to zero. SWD 101 scans channel i (Ci), in an omnidirectional mode, at step 202. The scan may be passive or may be active. At step 203, SWD 101 determines if a candidate NWD was detected in the just-completed scan. If so, SWD 101 proceeds to step 204 on the “yes” branch and stores data received from or otherwise deduced for that detected candidate NWD. Such data could include identifier data (e.g., a basic service set identifier (BSSID)), the channel Ci on which the candidate NWD was detected, the strength of the signal from the candidate NWD (e.g., the received signal strength indicator (RSSI)), communication parameters for establishing a link with the candidate NWD, etc. From step 204, SWD 101 then proceeds to step 205. If at step 203 SWD 101 determines that a candidate NWD was not detected in the just-completed scan, SWD 101 proceeds to step 205 on the “no” branch from step 203.
At step 205, SWD 101 determines if the current value of the i counter equals m. If not, SWD 101 proceeds on the “no” branch to step 206, where the i counter is incremented by 1. SWD 101 then returns to step 202 and performs a new omnidirectional scan on channel Ci. In this manner, steps 202, 203, 205 and 206 are repeated until all of channels 0 through m have been omnidirectionally scanned. Depending on the outcome of each omnidirectional scan, step 204 may be performed in connection with some, all or none of those omnidirectional scans.
When all of channels 0 through m have been omnidirectionally scanned, i=m, and SWD 101 proceeds on the “yes” branch from step 205 to step 207. At step 207, SWD 101 determines if any candidate NWDs were identified (i.e., if step 204 was performed). If so, SWD 101 terminates scanning and proceeds to further steps 208. In steps 208, SWD 101 selects an NWD. If only one candidate NWD was detected, that candidate is selected. If multiple candidate NWDs were detected, SWD 101 may select an NWD based on signal strength, based on a network provider or other entity associated with an NWD and/or based on other factors. After selecting an NWD, SWD 101 performs additional steps 208 to establish a communication link with that NWD.
If SWD 101 determines at step 207 that no candidate NWDs were detected as a result of omnidirectional scanning, SWD 101 continues to step 215. SWD 101 then determines scan directions 0 through n that will be directionally scanned for candidate NWDs, where “n” is an arbitrary integer. In some embodiments, SWD 101 may determine scan directions by accessing a previously stored list of directions. One example of such a list is included as Table 1.
Directions 0-3 and 6-9 in Table 1 are in the horizontal plane. Directions 4 and 5 are straight up and straight down, respectively, and orthogonal to the horizontal plane of directions 0-3 and 6-9. Directions 10-13 are angled upward from the horizontal plane. Directions 14-17 are angled downward from the horizontal plane. For all directions having a horizontal component, Table 1 specifies an azimuth relative to a “reference direction.” That reference direction could be defined in any of various manners. The reference direction could be arbitrarily chosen as a direction in which a predefined portion of SWD 101 is pointing. For example, the reference direction might be defined as the direction in which the front of SWD 101 is pointing. If SWD 101 includes a compass, the reference direction could be defined as a particular compass heading (e.g., due north). The example of Table 1 assumes that SWD 101 includes a clinometer, tilt sensor or other hardware that permits SWD 101 to determine its orientation with respect to the horizontal. However, this need not be the case. In some embodiments, SWD 101 might be configured to assume that it is in a particular orientation when performing directional scans. If SWD 101 is a laptop computer, for instance, SWD 101 may assume that the keyboard portion of SWD 101 is horizontal when directionally scanning SWD 101 could also be configured to display a message to a user instructing the user to place SWD 101 into a particular orientation when directional scanning begins.
Table 1 is merely one example of a scan direction table. The ordering and/or definitions of directions could be varied, additional or fewer directions included, etc. Numerous other scan direction tables could be created. SWD 101 might include multiple scan direction tables in some embodiments. In some such embodiments, for example, a first table may be similar to Table 1, and a second table may have fewer entries (e.g., only entries for horizontal scans). SWD 101 could then could then be configured to use one of those tables in step 215 based on a user selection or other configuration (e.g., choose the second table if SWD 101 is in a power-saving mode).
In some embodiments, and as described in further detail below, SWD 101 may determine scan directions based on a current motion vector of SWD 101. In certain of those embodiments, SWD 101 could be configured to first determine if SWD 101 is stationary or in motion. If stationary, Table 1 (or other previously stored scan direction table) could be used. If in motion, scan directions could be selected based on the motion vector.
In step 216, SWD 101 initializes counters i and k by setting each equal to zero. As with the omnidirectional scanning of steps 202 through 206, counter i will be used to track scanned channels. Counter k will be used to track scan directions.
SWD 101 proceeds from step 216 to step 217 (
SWD 101 then proceeds to step 218 and determines if a candidate NWD was detected in the just completed directional scan. If so, SWD 101 proceeds to step 219 on the “yes” branch and stores data for the detected candidate NWD. Such data can include data of the type(s) described in connection with step 204, as well as the scan direction Dk when the NWD was detected. From step 219, SWD 101 proceeds to step 220. If SWD 101 determines in step 218 that a candidate NWD was not detected in the just completed directional scan, SWD 101 proceeds to step 220 on the “no” branch from step 218.
At step 220, SWD 101 determines if all channels have been scanned in the current scan direction Dk (i.e., if i=m). If not, SWD 101 proceeds to step 221 on the “no” branch. The i counter is incremented by 1 in step 221, after which SWD 101 returns to step 217 and performs a new directional scan. If SWD 101 determines in step 220 that all channels have been scanned, SWD 101 proceeds to step 222 on the “yes” branch and resets counter i to zero. SWD 101 then continues to step 223 and determines if all n scan directions determined in step 215 have been scanned (i.e., if k=n). If not, SWD 101 proceeds to step 224 on the “no” branch. After incrementing counter k by 1 at step 224, SWD 101 returns to step 217.
If SWD 101 determines in step 223 that all scan directions have been scanned (i.e., k=n), SWD 101 proceeds to step 225 on the “yes” branch. At step 225 SWD 101 determines if any candidate NWDs were detected during the directional scans. If so, SWD 101 proceeds to steps 227. In steps 227, SWD 101 selects an NWD. If only one candidate NWD was detected, that candidate is selected. If multiple candidate NWDs were detected, SWD 101 may select an NWD based on signal strength, based on a network provider or other entity associated with an NWD and/or based on other factors. After selecting an NWD, SWD 101 performs other steps 227 to establish a communication link with that NWD. When establishing that link, SWD 101 configures its transceiver to operate in directional mode so that transmission gain is increased in the direction corresponding to the selected NWD. SWD 101 might also configure its transceiver to increase reception sensitivity in the direction corresponding to the selected NWD. In at least some embodiments, reception sensitivity is lower bounded by a minimum receiver sensitivity parameter and typically relates to the modulation and coding scheme in use.
If no candidate NWDs were detected during the directional scans, SWD 101 proceeds to step 226 on the “no” branch from step 225 and outputs data indicating that no NWD could be found. As part of step 226, SWD 101 may generate a message to a user on a display screen indicating no NWDs are available.
In some embodiments, SWD 101 may terminate a scanning procedure on identifying a suitable access point through omnidirectional or directional scanning
In step 218-1 of
As indicated above, one or more steps indicated in
As indicated above, in some embodiments SWD 101 may determine scan directions based on the motion of SWD 101. One such embodiment can be explained in connection with
In some additional embodiments, and as shown in
In some embodiments, SWD 101 may detect NWDs during an omnidirectional scan, but those NWDs may be unsuitable. For example, those NWDs might be operated by a network provider with whom the operator of SWD 101 has no agreement for service, and/or who may charge a fee for access. As another example, those NWDs may be employing protocols or communication parameters that SWD 101 does not support. In some such embodiments, SWD 101 also stores data in step 204 that indicates a direction of a detected NWD relative to SWD 101. SWD 101 may obtain this data by performing angle of arrival measurements in which multiple antennas receive an NWD signal (e.g., a preamble synchronization sequence) and measure the difference in arrival times.
Steps in
In some embodiments, when scanning omnidirectionally, SWD 101 may detect a signal that is too weak to fully process, but that may be consistent with an NWD (e.g., because it is on a channel potentially used by NWDs). In some of these embodiments, SWD 101 also stores data in step 204 that indicates directions of such weak signals. The process of
When performing directional scanning in some embodiments, SWD 101 may configure its transceiver to increase transmission gain in a scan direction without changing reception sensitivity. For example, NWDs may transmit with greater power than wireless stations such as SWD 101, and SWD 101 may be able to detect an NWD once it responds to a scan request. As another alternative or additionally, SWD 101 may steer its transmissions more than its reception. For example, SWD 101 could configure its transceiver to substantially increase transmission gain in a relatively narrow band centered on a scan direction. However, SWD 101 could configure its transceiver to only modestly increase reception sensitivity in a wider band centered on the scan direction.
When performing active directional scanning in some embodiments, SWD 101 might send several scan request communications for each channel/direction combination. However, SWD 101 may vary the beam width and power for each scan request. This is illustrated in
In some embodiments, SWD 101 may first perform active omnidirectional scanning by including response criteria in transmitted scan request communications. For example, SWD 101 may include data in the initial omnidirectional scan requests that indicates only NWDs operated by a particular entity should respond. If none of those omnidirectional scans detects a suitable candidate NWD, additional omnidirectional scans using less restrictive criteria could be transmitted. The less restrictive criteria may allow more NWDs (or any NWD) to respond. If the less restrictive omnidirectional scans also fail to detect a suitable candidate NWD, directional scans could be performed. The directional scans may include the same response criteria as was included in one of the omnidirectional scans, might include less restrictive criteria, or may include no limitations on NWDs that should respond. In some embodiments, the second series of omnidirectional scans with less restrictive criteria might be omitted.
In some embodiments, SWD 101 may cause a display screen to generate images showing the progress of the omnidirectional and/or directional scans. The images could include, e.g., indications of relative bearings and/or distances of detected NWDs relative to SWD 101. SWD 101 may be further configured so that a user may select one of the detected NWDs based on the image, in response to which the scanning process may terminate and SWD 101 could establish a communication link with the selected NWD. In certain embodiments, SWD 101 may cause a display screen to generate an image indicating the relative bearing and/or distance of a selected NWD (whether selected by the user or automatically by SWD 101) so that, e.g., the user can move SWD 101 closer to the selected NWD.
In the example of
In some embodiments, a scan response may include parameters of the NWD transmitting the scan response and of other NWDs. After receiving such a scan response, SWD 101 might adjust its scanning order to prioritize NWDs identified in the scan response. For example, assume SWD 101 was implementing the scanning procedure of
In some embodiments, SWD 101 may include data in active directional scan request communications that seeks a modification in the transmission and/or reception characteristics of an NWD. One example of such an embodiment is shown in
In several of the embodiments described thus far, SWD 101 performs directional scanning after failing to identify a suitable candidate NWD through omnidirectional scanning. In some embodiments, however, SWD 101 may perform directional scanning without first attempting to identify an NWD through omnidirectional scanning. For example, SWD 101 may be configured to omit omnidirectional scanning if SWD 101 is in motion and to select scan directions as described in connection with
In some embodiments, the results of one or more omnidirectional scans may be only one of several factors that affect whether directional scanning is performed. For example, SWD 101 may be configured so that it will only perform directional scanning if the results of the omnidirectional scan(s) meet certain requirements (e.g., no suitable NWDs were detected) and/or if a user has provided input indicating that directional scanning should be performed. As another example, SWD 101 may be configured so that it will only perform directional scanning if results of the omnidirectional scan(s) do not meet certain requirements (e.g., packet error rate exceeding a desired threshold) and/or an orientation sensor indicates that SWD 101 has a suitable orientation. As yet another example, SWD 101 may be configured so that it will only perform directional scanning if results of the omnidirectional scan(s) meet other specific requirements and/or battery strength is above a predefined level.
In some embodiments, an NWD may change to a directional mode without being asked to do so in a request communication from a SWD. For example, and as shown in
Although wireless devices 601-605 cannot detect communications from NWD 610 when NWD 610 is in omnidirectional mode, NWD 610 can detect communications from wireless devices 601-605. NWD 610 may, for example, have a larger antenna, have a low noise amplifier in the uplink direction or otherwise have enhanced reception sensitivity relative to wireless devices 601-605. NWD 610 can also determine the relative bearing of wireless devices 601-605 (e.g., using angle of arrival measurements as described above). Upon detecting communications from wireless devices 601-605, and as shown in
Once NWD 610 increases its transmission gain as shown in
In step 701, the NWD is transmitting in a first operating mode. The first mode may be an omnidirectional mode having a particular coverage region, e.g., a region outside of which transmissions from the NWD have an insufficient signal strength to allow those transmissions to be detected by one or more wireless devices with an acceptable error rate. In step 702, the NWD receives data that relates to one or more wireless devices other than the NWD and that corresponds to a second operating mode. The second operating mode has a coverage region that is different from the coverage region associated with the first operating mode. For example, the second operating mode could be an omnidirectional mode in which the NWD increases its transmission power so as to increase transmission gain in all directions. One example of such a second mode is described in connection with
The data received in step 702 could come from several possible sources. As one example, the data could be contained in a scan request from a wireless device. Examples of this scenario are described in connection with
In step 703, and at least in part in response to the data received in step 702, the NWD begins transmitting in the second operating mode.
Exemplary Hardware and/or Software
Various types of computers can be used to implement a wireless device such as an SWD or an NWD according to various embodiments. Exemplary computers include, without limitation, smart cards, media devices, personal computers, engineering workstations, PCs, Macintoshes, PDAs, portable computers, computerized watches, wired and wireless terminals, telephones, communication devices, servers, network access points, network multicast points, network devices, set-top boxes, personal video recorders (PVRs), game consoles, portable game devices, portable audio devices, portable media devices, portable video devices, televisions, digital cameras, digital camcorders, Global Positioning System (GPS) receivers and wireless personal servers.
A computer may execute one or more operating systems. Exemplary operating systems include Windows Phone (e.g., Windows Phone 7), Windows (e.g., Windows 8, Windows 7, or Windows Vista), Windows Server (e.g., Windows Server 8, Windows server 2008, or Windows Server 2003), Maemo, Meego, Android, Symbian OS, WebOS, Linux, OS X, and iOS. A computer may also support one or more of the S60 Platform, the .NET Framework, Java, and Cocoa. A computer may also include one or more processors operatively connected to one or more memory or storage units, wherein the memory or storage optionally contains machine-readable instructions and/or other data, and the processor or processors execute the machine-readable instructions and/or manipulate the data.
Mass storage 808 may be a hard drive, flash memory or other type of non-volatile storage device. Processor(s) 802 may be, e.g., an ARM-based processor such as a Qualcomm Snapdragon or an x86-based processor such as an Intel Atom or Intel Core. Computer 800 may also include a touch screen (not shown) and physical keyboard (also not shown). A mouse or keypad may alternately or additionally be employed. A physical keyboard might optionally be eliminated. Computer 800 may optionally include or be attached to one or more image capture devices.
Computer 800 may optionally include or be attached to one or more card readers, DVD drives, floppy disk drives, hard drives, memory cards, or ROM devices whereby media machine-readable instructions, including program code or other instructions for performing operations and communications described herein, is optionally inserted for the purpose of loading instructions onto the computer. Further, such machine-readable instructions may optionally be loaded onto the computer via one or more of I/O interfaces 805 and 806.
Computers may be configured to perform operations and communications described herein using one or more software modules. Such modules may be programmed using one or more languages. Exemplary languages include, without limitation, C#, C, C++, Objective C, Java, Perl, and Python.
Any indicated division of operations among particular software modules or devices is for purposes of illustration, and alternate divisions of operation are possible. Accordingly, any operations indicated to be performed by one software module are according to an alternative implementation instead performed by a plurality of software modules. Similarly, any operations indicated to be performed by a plurality of modules may according to an alternative implementation be performed by a single module.
Further, operations indicated to be performed by a particular computer such as an SWD or NWD may according to an alternative implementation instead performed by a plurality of computers such as by a plurality of SWDs and/or NWDs. Moreover, peer-to-peer, cloud, and/or grid computing techniques are optionally employed. Additionally, implementations may include remote communication among software modules. Exemplary remote communication techniques include Simple Object Access Protocol (SOAP), Java Messaging Service (JMS), Remote Method Invocation (RMI), Remote Procedure Call (RPC), sockets, and pipes.
Operations discussed herein may be implemented via hardware that contains hard-coded instructions (e.g., logic gates and other structures) configured to perform operations and communications described herein. Examples of such implementation via hardware include the use of one or more of integrated circuits, specialized hardware, chips, chipsets, application-specific integrated circuits (ASICs), and field-programmable gate arrays (FPGAs). Machine-executable instructions can include hard-coded instructions.
The foregoing description of embodiments has been presented for purposes of illustration and description. The foregoing description is not intended to be exhaustive or to limit embodiments to the precise form explicitly described or mentioned herein. Modifications and variations are possible in light of the above teachings or may be acquired from practice of various embodiments. For example, one of ordinary skill in the art will appreciate that operations and communications illustrated in the illustrative figures may be performed in other than the recited order, and that one or more illustrated operations and communications may be optional in one or more embodiments. The embodiments discussed herein were chosen and described in order to explain the principles and the nature of various embodiments and their practical application to enable one skilled in the art to make and use these and other embodiments with various modifications as are suited to the particular use contemplated. Any and all permutations of features from above-described embodiments are the within the scope of the invention, including all permutations of the independent and dependent claims set forth herein.