Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
FLEXIBLE DISTRIBUTED SCHEDULING
Document Type and Number:
WIPO Patent Application WO/2018/165604
Kind Code:
A1
Abstract:
This disclosure describes systems, methods, and devices related to flexible distributed scheduling. A device may identify a first beacon frame received from a first neighbor device, wherein the first beacon frame is associated with a first beacon interval. The device may identify a first schedule included in the first beacon frame, wherein the first schedule includes intended data transmissions during subsequent first beacon intervals associated with the first neighbor device. The device may determine a second schedule based on the first schedule, wherein the second schedule comprises intended data transmissions during subsequent second beacon intervals associated with the device. The device may encode a second beacon frame with a second schedule associated with a second beacon interval. The device may cause to send the second beacon frame.

Inventors:
JOHNSSON KERSTIN (US)
PYATTAEV ALEXANDER (FI)
Application Number:
PCT/US2018/021830
Publication Date:
September 13, 2018
Filing Date:
March 09, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INTEL CORP (US)
International Classes:
H04W72/12; H04W72/04
Foreign References:
US20110211562A12011-09-01
US20160309393A12016-10-20
US20160073429A12016-03-10
US20160191409A12016-06-30
Other References:
LEI HUANG ET AL.: "Scheduling Allocations Over Multiple Channels", IEEE 802.11-16/1565R0, 15 January 2017 (2017-01-15), XP068112293
Attorney, Agent or Firm:
GRIFFIN III, Malvern U. et al. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A device, the device comprising memory and processing circuitry configured to: identify a first beacon frame received from a first neighbor device, wherein the first beacon frame is associated with a first beacon interval;

identify a first schedule included in the first beacon frame, wherein the first schedule includes intended data transmissions during subsequent first beacon intervals associated with the first neighbor device;

determine a second schedule based on the first schedule, wherein the second schedule comprises intended data transmissions during subsequent second beacon intervals associated with the device;

encode a second beacon frame with the second schedule associated with a second beacon interval; and

cause to send the second beacon frame.

2. The device of claim 1, wherein the first beacon frame received from the first neighbor device is orthogonal to the second beacon frame sent by the device.

3. The device of claim 1, wherein a length of the first beacon interval is equal to or different from a length of the second beacon interval.

4. The device of claim 3, wherein the memory and the processing circuitry are further configured to determine an amount of time in the first beacon interval for scheduling data transmissions using one or more first allocations based on the length of the first beacon interval, a time allocated for control, and a number of neighbor devices of the device.

5. The device of claim 1, wherein the first schedule is included in a first extended schedule element of the first beacon frame.

6. The device of claim 5, wherein the first extended schedule element includes one or more first allocations associated with a communication channel.

7. The device of claim 6, wherein the one or more first allocations comprise one or more data service periods, one or more control service periods, or one or more contention based access period (CBAP).

8. The device of claim 1, wherein the memory and the processing circuitry are further configured to determine to set a first beacon service period in the second schedule, wherein the first beacon service period is associated with the first neighbor device.

9. The device of claim 8, wherein the second schedule includes a start time of the first beacon service period, an end time of the first beacon service period, and an indication of the first neighbor device.

10. The device of claim 1, further comprising a transceiver configured to transmit and receive wireless signals.

11. The device of claim 10, further comprising an antenna coupled to the transceiver.

12. A non- transitory computer-readable medium storing computer-executable instructions which when executed by one or more processors result in performing operations comprising: identifying a first beacon frame received from a first neighbor device, wherein the first beacon frame is associated with a first beacon interval;

identifying a first schedule included in the first beacon frame, wherein the first schedule includes intended data transmissions during subsequent first beacon intervals associated with the first neighbor device;

determining a second schedule based on the first schedule, wherein the second schedule comprises intended data transmissions during subsequent second beacon intervals associated with a second device;

encoding a second beacon frame with a second schedule associated with a second beacon interval; and

causing to send the second beacon frame.

13. The non-transitory computer-readable medium of claim 12, wherein the first beacon frame received from the first neighbor device is orthogonal to the second beacon frame sent by the second device.

14. The non-transitory computer-readable medium of claim 12, wherein a length of the first beacon interval is equal to or different from a length of the second beacon interval.

15. The non-transitory computer-readable medium of claim 14, wherein the operations further comprise determining an amount of time in the first beacon interval for scheduling data transmissions using one or more first allocations based on the length of the first beacon interval, a time used for control allocations, and a number of neighbor devices of the second device.

16. The non-transitory computer-readable medium of claim 12, wherein the first schedule is included in a first extended schedule element of the first beacon frame.

17. The non-transitory computer-readable medium of claim 16, wherein the first extended schedule element includes one or more first allocations associated with a communication channel.

18. The non-transitory computer-readable medium of claim 17, wherein the one or more first allocations comprise one or more data service periods, one or more control service periods, or one or more contention based access period (CBAP).

19. The non-transitory computer-readable medium of claim 12, wherein the operations further comprise determining to set a first beacon service period in the second schedule, wherein the first beacon service period is associated with the first neighbor device.

20. The non-transitory computer-readable medium of claim 19, wherein the second schedule includes a start time of the first beacon service period, an end time of the first beacon service period, and an indication of the first neighbor device.

21. A method comprising:

identifying, by one or more processors of a device, a first beacon frame received from a first neighbor device, wherein the first beacon frame is associated with a first beacon interval; identifying a first schedule included in the first beacon frame, wherein the first schedule includes intended data transmissions during subsequent first beacon intervals associated with the first neighbor device;

determining a second schedule based on the first schedule, wherein the second schedule comprises intended data transmissions during subsequent second beacon intervals associated with the device;

encoding a second beacon frame with a second schedule associated with a second beacon interval; and

causing to send the second beacon frame.

22. The method of claim 21, wherein the first beacon frame received from the first neighbor device is orthogonal to the second beacon frame sent by the device.

23. The method of claim 21, wherein a length of the first beacon interval is equal to or different from a length of the second beacon interval.

24. The method of claim 23, further comprising determining an amount of time in the first beacon interval for scheduling data transmissions using one or more first allocations based on the length of the first beacon interval, a time used for control allocations, and a number of neighbor devices of the device.

25. The method of claim 21, wherein the first schedule is included in a first extended schedule element of the first beacon frame.

Description:
FLEXIBLE DISTRIBUTED SCHEDULING

CROSS-REFERENCE TO RELATED APPLICATION S)

[0001] This application claims benefit of U.S. Provisional Application No. 62/469,763, filed March 10, 2017, and U.S. Provisional Application No. 62/529,932, filed July 7, 2017, both disclosures of which are incorporated herein by reference as if set forth in full.

TECHNICAL FIELD

[0002] This disclosure generally relates to systems and methods for wireless communications and, more particularly, to flexible distributed scheduling.

BACKGROUND

[0003] Wireless devices are becoming widely prevalent and are increasingly requesting access to wireless channels. The growing density of wireless deployments require increased network and spectrum availability. Wireless devices may communicate with each other using directional transmission techniques, including but not limited to beamforming techniques.

BRIEF DESCRIPTION OF THE DRAWINGS

[0004] FIG. 1 depicts a network diagram illustrating an example network environment for flexible distributed scheduling, in accordance with one or more example embodiments of the present disclosure.

[0005] FIGs. 2A-2B depict illustrative diagrams for flexible distributed scheduling, in accordance with one or more example embodiments of the present disclosure.

[0006] FIG. 3 depicts a flow diagram of illustrative process for an illustrative flexible distributed scheduling system, in accordance with one or more example embodiments of the present disclosure.

[0007] FIG. 4 depicts a functional diagram of an example communication station, in accordance with one or more example embodiments of the present disclosure.

[0008] FIG. 5 depicts a block diagram of an example machine upon which any of one or more techniques (e.g., methods) may be performed, in accordance with one or more example embodiments of the present disclosure.

DETAILED DESCRIPTION

[0009] Example embodiments described herein provide certain systems, methods, and devices for flexible distributed scheduling. [0010] The following description and the drawings sufficiently illustrate specific embodiments to enable those skilled in the art to practice them. Other embodiments may incorporate structural, logical, electrical, process, and other changes. Portions and features of some embodiments may be included in, or substituted for, those of other embodiments. Embodiments set forth in the claims encompass all available equivalents of those claims.

[0011] In one embodiment, in a flexible distributed scheduling (FDS) protocol or system, access points/personal basic service set control points (APs/PCPs) may use the same or different beacon interval (BI) lengths. For example, an AP/PCP begins each BI by transmitting one or more beacons. The AP/PCP listens to the channel for at least one BI when it first comes online or needs to relocate its beacons, to determine a new location for its beacon header interval (BHI) that is orthogonal to neighbors' BHIs. The AP/PCP listens for BHIs from neighbor APs/PCPs every BI and parses their included extended schedule elements (ESE). The AP/PCP may encode its own beacon frame with information associated with the neighbor's schedule (e.g., ESE) or may encode the beacon frame with a list of neighbor IDs. For example, the list may be included in one or more fields in the AP/PCP' s own beacon frame or its own ESE. The listing may the MAC addresses, BSSIDs, or some other form of identifier in the AP/PCP' s own beacon frame or its own ESE.

[0012] In one embodiment, an AP/PCP may schedule all control and data orthogonally from control and data of FDS-compliant (e.g., APs/PCPs complying with the FDS protocol) first (and potentially 2 nd ) tier neighbors. The AP/PCP may include control and data allocations of first tier neighbors in its schedule in order to propagate scheduling information to their second tier neighbors. The AP/PCP may restrict its own control and data allocations to a percentage of each data transmission interval (DTI) based on its number of first tier neighbors.

[0013] In one embodiment, a FDS system may optimize performance by introducing a protocol with more scheduling flexibility and less overhead than previous solutions.

[0014] In one embodiment, a FDS system may require that AP/PCPs listen for neighbor AP/PCP beacons to determine their neighbors' control and data schedules before scheduling their own control and data. In addition, AP/PCPs may schedule their control and data during unoccupied and CBAP-only time periods first before scheduling during time periods occupied by non-FDS-compliant neighbors' data allocations.

[0015] In one embodiment, a FDS system may increase spatial multiplexing opportunities, total data rate, and deployment flexibility. [0016] It should be understood that although 802. Hay examples are shown below, the one or more embodiments of the FDS system may be applied to any communication standard including wired, wireless, light, or ultrasound standards.

[0017] In one embodiment, a FDS system may facilitate a more distributed solution that does not require large overhead for setting up clusters of devices that behave as a group of devices. A problem with setting up clusters is that the size of the cluster could become too large, additional messaging is needed for devices to form a cluster group. Further, interference from other clusters may be largely noticeable at the edge of each cluster.

[0018] In one embodiment, a FDS system may facilitate an AP/PCP to listen to beacon frames received from other AP/PCPs around it before sending out its own beacon. In this case, the AP/PCP is not scheduling its beacon frame transmission over another AP/PCP' s beacon frame transmission. This is because beacon frames are a very important part of accessing a channel and should be heard by ST As so that the ST As are able to access the channel to transmit their uplink data and further so that the STAs know when the AP/PCP will transmit downlink data.

[0019] Typically, AP/PCPs send their allocation schedules out to their associated devices but are not concerned with schedules of other AP/PCPs.

[0020] In one embodiment, a FDS system may facilitate that an AP/PCP may listen for beacon frames from neighboring PCPs or APs to determine their upcoming transmission schedules by parsing the ESE contained in the received beacon frames in the BHI. This may require listening on different channels, since neighbor PCPs or APs may operate in different primary channels.

[0021] In one embodiment, a FDS system may facilitate that AP/PCPs should schedule no more than their fair share of the channel such that AP/PCPs in the same collision domain can get the same amount of time on the channel under heavy traffic load conditions. Assuming that all AP/PCPs are following this protocol of fairly sharing the channels, a guaranteed transmission is an allocation in time and frequency domain that is respected (e.g., not scheduled over) by other AP/PCPs. These types of allocations include at least in part control allocations and/or service periods (SPs) but does not include contention based access periods (CBAPs) because CBAPs are not guaranteed.

[0022] In one embodiment, a FDS system may enable AP/PCPs to identify their neighbors in their beacon frames. Generally, if an AP/PCP hears the beacon of a neighbor, it can assume that the neighbor hears the AP/PCP' s beacon as well. Thus, if all AP/PCPs identify their neighbors in their beacons (by either including their neighbors' beacon allocations in their schedules or by simply listing the IDs of their neighbors in their beacons), then an AP/PCP can determine whether a neighbor is following the protocol by (1) checking whether it is identified in the neighbor's beacon and (2) by checking whether the neighbor is scheduling its fair share of the channel (based on how much of the channel the neighbor uses for control and SPs and the number of neighbors it identifies in its beacons). For example, a first AP may detect a neighboring beacon frame from a second AP that includes an ESE (a schedule). When it is time for the first AP to transmit its beacon frame, it will include an ESE that accommodates the schedule of the second AP (e.g., does not schedule over its control periods or SPs) and includes an allocation for the beacons of the second AP, thereby identifying the second AP as a neighbor. This way when the second AP receives the beacon frame of the first AP, the second AP can determine (1) that the first AP recognizes it as a neighbor by the fact that the first AP's ESE includes an allocation for the second AP's beacon frames and (2) that the first AP is following the FDS protocol by the fact that the first AP has not scheduled over the control periods or SPs of the second AP. However, if the first AP does not include in its schedule allocations associated with the beacon frames of its neighboring APs (assuming that is the way neighbors are identified in the FDS protocol), or if the first AP schedules over the control periods or SPs of its neighboring APs, it may be an indication that the first AP is not following the FDS protocol. Further, any AP that hears the beacon frame of the first AP, will know how many neighbors the first AP has based on how many neighbors are identified in its beacon frames, and will also know whether this first AP is following the FDS protocol by whether it is scheduling its fair share based on the first AP's number of neighboring APs.

[0023] In one embodiment, a FDS system may enable AP/PCP to include a listing of the IDs of its neighbors in its beacons and/or an extended schedule element as opposed to including their neighbors' beacon allocations in their schedules. This may provide a low overhead method of just listing the AP/PCP neighbors in the beacon or ESE. This may be included in one or more fields in the beacon frame or the ESE. The listing may the MAC addresses, BSSIDs, or some other form of identifier in the beacon frame or the ESE.

[0024] In one embodiment, a FDS system may facilitate that an AP/PCP may take into account the number of neighboring AP/PCPs when calculating how much time the AP/PCPs is allowed to use over the period of its beacon interval.

[0025] In one embodiment, a FDS system may facilitate that an AP/PCP may only be listening and decoding some of the received beacon frames from its neighboring AP/PCPs since only some of the beacon frames impact the time period the AP/PCP is scheduling for. In essence, the AP/PCP is always listening for beacon frames, however, the AP/PCPs is only concerned with actively decoding the beacon frames that are determined to affect its schedule of allocations.

[0026] In one embodiment, a FDS system may schedule specific SPs to accommodate the beacon frames associated with one or more neighboring AP/PCPs. Each SP would have information associated with the beacon frames of a particular neighbor AP/PCP; for example, the start time of the SP aligns with the start time of the neighbor AP/PCP' s BHI, the end time of the SP aligns with the end time of the neighbor AP/PCP's BHI, and the SP's source address is the neighbor AP/PCP's MAC address or BSSID. In essence, STAs and other AP/PCPs that are aware of the AP/PCP's schedule, including these specific SPs, would not schedule any data transmission during these specific SPs. This would provide the means for a neighboring AP/PCP to receive the beacon frame, to determine the schedule, and to determine that the AP/PCP is aware of the time/frequency domain slots when that the neighboring AP/PCP is intending to send its beacon frame(s).

[0027] In one embodiment, a FDS system may facilitate that the neighboring AP/PCPs are able to detect and decode from the schedule included in a beacon frame (or beacon frames in the BHI) sent by an AP/PCP, that the AP/PCP is acknowledging them as neighboring AP/PCPs and respecting their control (e.g. BHI) and data allocations (i.e. not scheduling over them). This makes the AP/PCP accountable when allocating its own beacon interval, which may be based on the number of determined neighboring AP/PCPs.

[0028] In one embodiment, a FDS system may facilitate setting a bit (e.g., a beacon indicator bit) in the SP definition in the ESE of the beacon frame to indicate if the SP is a data SP or a beacon indicator SP. For example, an AP may set the bit to "1" to indicate that the SP is a beacon indicator. The AP may set the bit to "0" to indicate that the SP is a data SP that may be used as an allocated resource for a device to use when transmitting data (UL or DL).

[0029] In one embodiment, when an AP/PCP hears a neighbor AP/PCP's beacon frame that contains an ESE, the AP/PCP parses the schedule and determines the number of SPs that have the beacon indicator set to indicate that the SP is a beacon SP. Further, the AP/PCP would recognize the AP/PCPs that are associated with each of these beacon SPs. Based on the number of recognized AP/PCPs that are associated with the beacon SPs, the AP/PCP would know how many neighbors the AP/PCP that broadcasted this beacon frame has. Further, based on the number of recognized AP/PCPs that are associated with the beacon SPs, the neighbor AP/PCP would know how much of the channel the AP/PCP that broadcasted this beacon frame should be using. [0030] FIG. 1 is a network diagram illustrating an example network environment for FDS, in accordance with one or more example embodiments of the present disclosure. Wireless network 100 may include one or more user device(s) 120 and one or more access point(s) (AP) 102, which may communicate in accordance with IEEE 802.11 communication standards, such as the IEEE 802.11ad and/or IEEE 802.11ay specifications. The user device(s) 120 may be referred to as stations (STAs). The user device(s) 120 may be mobile devices that are non- stationary and do not have fixed locations. Although the AP 102 is shown to be communicating on multiple antennas with user devices 120, it should be understood that this is only for illustrative purposes and that any user device 120 may also communicate using multiple antennas with other user devices 120 and/or AP 102.

[0031] In some embodiments, the user device(s) 120 and the AP(s) 102 may include one or more computer systems similar to that of the functional diagram of FIG. 4 and/or the example machine/system of FIG. 5.

[0032] One or more illustrative user device(s) 120 and/or AP(s) 102 (or a personal basic service set control point (PCP)) may be operable by one or more user(s) 110. The user device(s) 120 (e.g., 124, 126, or 128) and/or AP(s) 102 may include any suitable processor-driven device including, but not limited to, a mobile device or a non-mobile, e.g., a static, device. For example, user device(s) 120 and/or AP(s) 102 may include, a user equipment (UE), a station (STA), an access point (AP), a personal computer (PC), a wearable wireless device (e.g., bracelet, watch, glasses, ring, etc.), a desktop computer, a mobile computer, a laptop computer, an ultrabook tm computer, a notebook computer, a tablet computer, a server computer, a handheld computer, a handheld device, an internet of things (IoT) device, a sensor device, a PDA device, a handheld PDA device, an on-board device, an off-board device, a hybrid device (e.g., combining cellular phone functionalities with PDA device functionalities), a consumer device, a vehicular device, a non- vehicular device, a mobile or portable device, a non-mobile or non-portable device, a mobile phone, a cellular telephone, a PCS device, a PDA device which incorporates a wireless communication device, a mobile or portable GPS device, a DVB device, a relatively small computing device, a non-desktop computer, a "carry small live large" (CSLL) device, an ultra mobile device (UMD), an ultra mobile PC (UMPC), a mobile internet device (MID), an "origami" device or computing device, a device that supports dynamically composable computing (DCC), a context-aware device, a video device, an audio device, an A/V device, a set-top-box (STB), a blu-ray disc (BD) player, a BD recorder, a digital video disc (DVD) player, a high definition (HD) DVD player, a DVD recorder, a HD DVD recorder, a personal video recorder (PVR), a broadcast HD receiver, a video source, an audio source, a video sink, an audio sink, a stereo tuner, a broadcast radio receiver, a flat panel display, a personal media player (PMP), a digital video camera (DVC), a digital audio player, a speaker, an audio receiver, an audio amplifier, a gaming device, a data source, a data sink, a digital still camera (DSC), a media player, a smartphone, a television, a music player, or the like. It is understood that the above is a list of devices. However, other devices, including smart devices, Internet of Things (IoT), such as lamps, climate control, car components, household components, appliances, etc. may also be included in this list.

[0033] Any of the user device(s) 120 (e.g., user devices 124, 126, 128), and AP(s) 102 may be configured to communicate with each other via one or more communications networks 130 and/or 135 wirelessly or wired. Any of the communications networks 130 and/or 135 may include, but not limited to, any one of a combination of different types of suitable communications networks such as, for example, broadcasting networks, cable networks, public networks (e.g., the Internet), private networks, wireless networks, cellular networks, or any other suitable private and/or public networks. Further, any of the communications networks 130 and/or 135 may have any suitable communication range associated therewith and may include, for example, global networks (e.g., the Internet), metropolitan area networks (MANs), wide area networks (WANs), local area networks (LANs), or personal area networks (PANs). In addition, any of the communications networks 130 and/or 135 may include any type of medium over which network traffic may be carried including, but not limited to, coaxial cable, twisted-pair wire, optical fiber, a hybrid fiber coaxial (HFC) medium, microwave terrestrial transceivers, radio frequency communication mediums, white space communication mediums, ultra-high frequency communication mediums, satellite communication mediums, or any combination thereof.

[0034] Any of the user device(s) 120 (e.g., user devices 124, 126, 128), and AP(s) 102 may include one or more communications antennas. The one or more communications antennas may be any suitable type of antennas corresponding to the communications protocols used by the user device(s) 120 (e.g., user devices 124, 126 and 128), and AP(s) 102. Some non-limiting examples of suitable communications antennas include Wi-Fi antennas, Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards compatible antennas, directional antennas, non-directional antennas, dipole antennas, folded dipole antennas, patch antennas, multiple-input multiple-output (MIMO) antennas, or the like. The one or more communications antennas may be communicatively coupled to a radio component to transmit and/or receive signals, such as communications signals to and/or from the user devices 120 and/or AP(s) 102. [0035] Any of the user devices 120 (e.g., user devices 124, 126, 128), and AP(s) 102 may include multiple antennas that may include one or more directional antennas. The one or more directional antennas may be steered to a plurality of beam directions. For example, at least one antenna of a user device 120 (or an AP 102) may be steered to a plurality of beam directions. For example, a user device 120 (or an AP 102) may transmit a directional transmission to another user device 120 (or another AP 102).

[0036] Any of the user device(s) 120 (e.g., user devices 124, 126, 128), and AP(s) 102 may be configured to perform directional transmission and/or directional reception in conjunction with wirelessly communicating in a wireless network. Any of the user device(s) 120 (e.g., user devices 124, 126, 128), and AP(s) 102 may be configured to perform such directional transmission and/or reception using a set of multiple antenna arrays (e.g., DMG antenna arrays or the like). Each of the multiple antenna arrays may be used for transmission and/or reception in a particular respective direction or range of directions. Any of the user device(s) 120 (e.g., user devices 124, 126, 128), and AP(s) 102 may be configured to perform any given directional transmission towards one or more defined transmit sectors. Any of the user device(s) 120 (e.g., user devices 124, 126, 128), and AP(s) 102 may be configured to perform any given directional reception from one or more defined receive sectors.

[0037] MIMO beamforming in a wireless network may be accomplished using RF beamforming and/or digital beamforming. In some embodiments, in performing a given MIMO transmission, user devices 120 and/or AP(s) 102 may be configured to use all or a subset of its one or more communications antennas to perform MIMO beamforming.

[0038] Any of the user devices 120 (e.g., user devices 124, 126, 128), and AP(s) 102 may include any suitable radio and/or transceiver for transmitting and/or receiving radio frequency (RF) signals in the bandwidth and/or channels corresponding to the communications protocols utilized by any of the user device(s) 120 and AP(s) 102 to communicate with each other. The radio components may include hardware and/or software to modulate and/or demodulate communications signals according to pre-established transmission protocols. The radio components may further have hardware and/or software instructions to communicate via one or more Wi-Fi and/or Wi-Fi direct protocols, as standardized by the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards.

[0039] Some embodiments may be used in conjunction with devices and/or networks operating in accordance with existing. Wireless Fidelity (Wi-Fi) Alliance (WFA) Specifications, including Wi-Fi Neighbor Awareness Networking (NAN) Technical Specification (e.g., NAN and NAN2) and/or future versions and/or derivatives thereof, devices and/or networks operating in accordance with existing WFA Peer-to-Peer (P2P) specifications and/or future versions and/or derivatives thereof, devices and/or networks operating in accordance with existing Wireless-Gigabit-Alliance (WGA) specifications (Wireless Gigabit Alliance, Inc. WiGig MAC and PHY Specification) and/or future versions and/or derivatives thereof, devices and/or networks operating in accordance with existing IEEE 802.11 standards and/or amendments (e.g., 802.11b, 802.11g, 802.11η, 802.1 lac, 802.1 lax, 802.1 lad, 802. Hay, 802.1 laz, etc.).

[0040] In certain example embodiments, the radio component, in cooperation with the communications antennas, may be configured to communicate via 2.4 GHz channels (e.g., 802.11b, 802.1 lg, 802.11η, 802.11ax), 5 GHz channels (e.g., 802.11η, 802.11ac, 802.1 lax), or 60 GHZ channels (e.g., 802. Had, 802. Hay). In some embodiments, non-Wi-Fi protocols may be used for communications between devices, such as Bluetooth, dedicated short-range communication (DSRC), Ultra-High Frequency (UHF) (e.g., IEEE 802.11af, IEEE 802.22), white band frequency (e.g., white spaces), or other packetized radio communications. The radio component may include any known receiver and baseband suitable for communicating via the communications protocols. The radio component may further include a low noise amplifier (LNA), additional signal amplifiers, an analog-to-digital (A/D) converter, one or more buffers, and digital baseband.

[0041] Some demonstrative embodiments may be used in conjunction with a wireless communication network communicating over a frequency band of 60 GHz. However, other embodiments may be implemented utilizing any other suitable wireless communication frequency bands, for example, an extremely high frequency (EHF) band (the millimeter wave (mmWave) frequency band), a frequency band within the frequency band of between 20 GHz and 300 GHz, a WLAN frequency band, a WPAN frequency band, a frequency band according to the WGA specification, and the like.

[0042] The phrases "directional multi-gigabit (DMG)" and "directional band (DBand)", as used herein, may relate to a frequency band wherein the channel starting frequency is above 45 GHz. In one example, DMG communications may involve one or more directional links to communicate at a rate of multiple gigabits per second, for example, at least 1 gigabit per second, 7 gigabits per second, or any other rate.

[0043] In some demonstrative embodiments, the user device(s) 120 and/or the AP 102 may be configured to operate in accordance with one or more specifications, including one or more IEEE 802.11 specifications, (e.g., an IEEE 802.1 lad specification, an IEEE 802.1 lay specification, and/or any other specification and/or protocol). For example, an amendment to a DMG operation in the 60 GHz band, according to an IEEE 802.1 lad standard, may be defined, for example, by an IEEE 802. Hay project.

[0044] It is understood that a basic service set (BSS) provides the basic building block of an 802.11 wireless LAN. For example, in infrastructure mode, a single access point (AP) together with all associated stations (STAs) is called a BSS.

[0045] Various modulation schemes and coding rates may be defined by a wireless standard, which may be represented by a Modulation and Coding Scheme (MCS) index value. MCS index values may be used to determine the likely data rate of a Wi-Fi connection during a wireless communication between two devices (e.g., between AP 102 and a user device 120). The MCS value essentially determines the modulation type (e.g., BPSK, QPSK, 16-QAM, 64- QAM), the coding rate (e.g., 1/2, 2/3, 3/4, 5/6) that is possible when connecting to an access point (e.g., AP 102), where BPSK stands for binary phase shift keying, QPSK stands for quadrature phase shift keying, and QAM stands for quadrature amplitude modulation). It is understood that modulation is the method by which data is communicated through the air. The more complex the modulation, the higher the data rate. Modulations that are more complex may require better conditions such as less interference and a good line of sight. The coding rate may be an indication of how much of a data stream is actually being used to transmit usable data. This may be expressed as a fraction with the most efficient rate being 5/6 or 83.3% of the data stream being used. The actual MCS may depend on variables such as hardware design and local interferences that may affect the rate and the network performance during the communication. For example, if a wireless or Wi-Fi connection cannot be maintained when there are too many errors being experienced during the communication between the two devices, the MCS value may be lowered by selecting a different modulation type and/or coding rate in order to reduce the error rate. Although MCS may indicate the data rate of the wireless or Wi-Fi connection, it may not determine the actual throughput of the network.

[0046] Using IEEE 802.1 lay as an example, IEE 802.1 lay organizes access to the medium in beacon intervals (Bis), similar to 802.1 lad. A typical BI consisting of two main access periods: beacon header interval (BHI) and data transmission interval (DTI). The BHI enables beam training of unassociated DMG and EDMG STAs and network announcements through a sweep of multiple directionally transmitted frames. The BHI is further subdivided into three sub-intervals:

[0047] · Beacon transmission interval (BTI) used by the AP or the personal basic service set control point (PCP) for transmission of one or more beacon frames. [0048] Association beamforming training (A-BFT) used by STAs to perform beamforming training with the STA that transmitted beacon frames during the preceding BTI.

[0049] Announcement transmission interval (ATI) used for management frame exchange between the AP/PCP and beam-trained stations.

[0050] The BHI is followed by the DTI, which facilitates different types of medium access for data transmission and beamforming training. In the DTI, data frames can be exchanged either in contention-based access periods (CBAPs) or scheduled service periods (SPs) for contention-free communications.

[0051] In multiple channel access through scheduling, an AP/PCP can allocate aggregated and bonded channel(s) using the EDMG extended schedule element (ESE), which can be transmitted by the AP in the BTI. The ESE defines the channel scheduling including an indication of which channels an allocation is scheduled on.

[0052] In one embodiment, and with reference to FIG. 1, when an AP (e.g., AP 102) or a personal basic service set control point (PCP) establishes communication with one or more user devices 120 (e.g., user devices 124, 126, and/or 128), the AP/PCP may communicate in a downlink direction and the user devices 120 may communicate with the AP/PCP in an uplink direction.

[0053] In one embodiment, the one or more APs/PCPs may send one or more beacons (e.g., beacon(s) 142) to the user devices 120 in variable beacon intervals. It is understood that a beacon frame is one of the management frames in IEEE 802.11 -based WLANs. The beacon frame may contain information about the network. Beacon frames may be transmitted periodically to announce the presence of a wireless LAN. Beacon frames may be transmitted by the AP/PCP in an infrastructure basic service set (BSS).

[0054] In some embodiments, it is assumed that an AP/PCP begins each beacon interval by transmitting one or more beacons; that an AP/PCP includes scheduling information for an upcoming beacon interval in the form of an ESE in its beacon(s); that an AP/PCP listens for beacons from neighboring AP/PCPs; and based on the schedules it has received via beacons of neighboring AP/PCPs, the AP/PCP schedules its control and data orthogonally from control and data of its FDS-compliant 1st (e.g., and potentially 2nd) tier neighbors. Note that in order for AP/PCPs to schedule orthogonally to their 2 nd tier neighbors, all AP/PCPs must include their 1 st tier neighbors' schedules in their own schedules. Without this inclusion, 2 nd tier neighbors will not be aware their 2 nd tier neighbors' schedules (since 2 nd tier neighbors do not hear each other's beacons) and would not be able to schedule orthogonally. For example, assume a first AP, API, can hear a second AP, AP2, which can hear a third AP, AP3; assume API and AP3 cannot hear each other. API and AP2 are 1st tier neighbors, and AP2 and AP3 are 1 st tier neighbors, while API and AP3 are 2 nd tier neighbors. While 2 nd tier neighbor APs may not hear each other, they may still cause interference at each other's STAs.

[0055] In some embodiments, every beacon interval (BI), the AP/PCP creates a schedule for the Data Transmission Interval (DTI) of an upcoming BI and includes it in the next beacon transmission(s).

[0056] In some embodiments, whether the schedule included in the beacon(s) pertains to the DTI of the current BI or a future BI depends on how quickly STAs can process beacon info.

[0057] In some embodiments, entries (e.g., shown in quotation marks) in the schedule can be any of the following types:

[0058] A) "(SP)" - scheduled data transmission within the AP/PCP's BSS; the entry includes source/destination addresses, start time, and duration.

[0059] B) "(C)" - collision of 1st tier neighbor beacons; the entry includes the "collision notifier", start time, and duration.

[0060] C) "(B *)" - 1 st tier neighbor AP/PCP' s beacon(s) and other possible control periods such as the A-BFT and ATI; the entry includes the "neighbor beacon notifier", start time, duration, and potentially the neighbor AP/PCP's address.

[0061] D) "(SP*)" - 1st tier neighbor AP/PCP's scheduled data transmissions; the entry includes the "neighbor service period (SP) notifier", start time, duration, and potentially the source/destination addresses.

[0062] In some embodiments, when the AP/PCP hears beacons from a 1st tier neighbor, it blocks off those time periods in its schedule from use. In some embodiments, including these neighbor beacon allocations in the ESE ensures that AP/PCPs that cannot hear each other's beacons (e.g., on opposite sides of an AP/PCP) but have partially overlapping coverage areas (i.e. 2 nd tier neighbors), avoid collisions at their STAs.

[0063] Alternatively, a FDS system may enable AP/PCP to include a listing of the IDs of its neighbors in its beacons and/or an ESE as opposed to including their neighbors' beacon allocations in their schedules. This may provide a low overhead method of just listing the AP/PCP neighbors in the beacon or ESE. This may be included in one or more fields in the beacon frame or the ESE. The listing may the MAC addresses, BSSIDs, or some other form of identifier in the beacon frame or the ESE.

[0064] In some embodiments, the AP/PCP can either create SP* entries for the neighbor's SPs (that overlap with the DTI it is scheduling for) in its schedule or simply block them from use, depending on how cautious the network is designed to be (including neighbor SPs in the ESE allows 2nd tier neighbors to avoid potential collisions as well, however these types of collisions are rare in most deployments).

[0065] When an AP/PCP is scheduling its SPs, it schedules them randomly over unoccupied time periods first, then randomly across CBAP-only time periods. When scheduling over CBAP-only time periods, the AP/PCP can either group them by popularity before scheduling randomly over each group (i.e. schedule randomly across the time periods with the least number of CB APs first, then over time periods with the 2 nd least, etc.) or schedule randomly over them all at the same time. Then if an AP/PCP still has not scheduled its fair share of SPs, it can schedule its SPs randomly over any leftover time periods that have no control allocations or FDS-compliant SPs (e.g. time periods containing non-FDS-compliant SPs are fair game). These can also be treated in order or popularity or all at once. Finally, if the AP has data left in its queues, but has exhausted its fair share of SPs, it can schedule CBAPs in any time period not occupied by control.

[0066] In some embodiments, the AP/PCP schedules data for its associated STAs based on an estimate of fair channel access among all AP/PCPs in its collision domain. What an AP/PCP considers its "collision domain" depends on how greedy versus cautious the network is designed to be. In some embodiments, it may contain only 1st tier neighbors or 2nd tier neighbors as well.

[0067] In some embodiments, a key advantage to the FDS system described herein is that it establishes a robust beacon schedule (e.g., no collisions) much faster than current clustering solutions when the AP/PCP topology changes due to AP/PCPs moving, turning on/off, etc. As a result, systems/devices/methods described herein can scale significantly better with increasing AP/PCP density than some embodiments. Moreover, as the AP/PCP density grows, the proposed scheme automatically increases the amount of spatial reuse in the network.

[0068] FIGs. 2A-2B depict illustrative diagrams for flexible distributed scheduling, in accordance with one or more example embodiments of the present disclosure.

[0069] Referring to FIG. 2 A, there is shown two APs (e.g., AP 202 and AP 204) with different BI lengths (in time). For example, AP 202 is shown to have a BI 206 and AP 204 is shown to have a BI 208, where BI 206 is different from BI 208. The BI 206 includes a BHI 209 portion and a data 210 portion. The BHI is sent every BI. The example of FIG. 2A shows, for AP 202, a BHI 211 sent in a second BI and a BHI 213 sent in a third BI, and so on. Further, for AP 204, FIG. 2A shows that within BI 208, there is a BHI 215 and a data 216 portions. Another BHI 217 is found in a second BI interval and so on. [0070] In one embodiment, the AP 202 and AP 204 listen for BHIs from neighbor AP/ PCPs every BI and parse the included extended schedule elements (ESE) before creating their own schedules. For example, BHI 209 of AP 202 may comprise the ESE 205. The ESE 205 comprises information associated with the schedule of AP 202 during one or more beacon intervals. In this case, when AP 204 receives and decodes BHI 209, the AP 204 may identify the ESE 205 and parses that schedule before it creates its own schedule.

[0071] The BHI is subdivided into three sub-intervals (not shown): (1) BTI - used by the AP or the personal basic service set control point (PCP) for transmission of one or more beacon frames; (2) A-BFT used by STAs to perform beamforming training with the STA that transmitted beacon frames during the preceding BTI; and (3) ATI used for management frame exchange between the AP/PCP and beam-trained stations.

[0072] In one embodiment, a FDS system may facilitate that the AP/PCPs are not required to use the same BI length. The AP/PCPs may use any BI length ranging from BI m in to BI ma x, which may be predetermined for example by a standard. As a result, the AP/PCP may note when it last heard its neighbors' BHIs as well as the length of their Bis (specified in the beacons), so it can avoid scheduling on top of neighbor BHIs. BHIs must always be protected, since they carry management information to AP/PCPs' stations. The only time an AP/PCP can schedule on top of a neighbor's BHI is when that neighbor behaving in a rogue manner, e.g., jamming the channel.

[0073] Given the variability in BI length, an AP/PCP (e.g., AP 202 and AP 204) may not need to decode the packets of every BHI from a given neighbor. It depends on the neighbor's BI length relative to its own and how far in the future the neighbor schedules. For example, the BI 208 of AP 204 is twice that of BI 206 of AP 202. Assume AP 202 and AP 204 both transmit the extended schedule element (ESE) in the same BI as the DTI for which they are scheduling. In this case, AP 202's ESEs only affect AP 204's scheduling decisions every other BI, thus AP 204 need only listen to every other BHI from AP 202. For example, AP 204 should decode BHI 209, which may contain allocations that overlap with the time period it is scheduling for in the ESE transmitted during BHI 215. However, AP 204 can ignore BHI 211, since the included ESE only contains allocations for time periods that AP 204 has already scheduled for (the ESE for those time periods was sent previously in BHI 215).

[0074] All of AP 204' s ESEs, on the other hand, affect AP 202' s scheduling decisions, so AP 202 must decode each of them. Of course, if a neighbor decides to change its BHI location, BI length, etc. at some point, listening for and decoding only a subset of the neighbor's BHIs may delay the AP/PCP' s discovery of these changes, which could result in more collisions. [0075] In one embodiment, a FDS system may facilitate that the AP/PCP may include either a neighbor list in its beacons or the neighbor BHIs it plans to listen to in its schedule (marked as a "beacon SP"). The purpose of this is to inform neighbors that the AP/PCP is listening for their beacons and to inform them of how many other neighbors the AP/PCP has so they can determine whether the AP/PCP is complying with the FDS protocol (e.g., only scheduling its "fair share" of channel resources).

[0076] In one embodiment, a FDS system may require that the AP/PCP only reserve its

"fair share" of channel resources based on how many neighbors it has:

[0077] Time Allowed on Channel = (BI Length)/(No. of Neighbors + 1),

[0078] Time Allowed for SPs = Time Allowed on Channel - Time Used for Control.

[0079] It should be noted that "fair share" only applies to channel resources that the

AP/PCP expects to have exclusive use of, thus contention based access periods (CBAPs) are not included.

[0080] When scheduling its fair share of SPs in a given DTI, the AP/PCP may first try to schedule them randomly during unoccupied time periods. If there are not enough unoccupied time periods, the AP/PCP may schedule its SPs randomly over CBAP-only time periods (e.g., time periods where neighbors have only scheduled CBAPs, no BHIs or SPs). When scheduling SPs over CBAP-only time periods, these time periods may be treated equally or ordered by popularity (e.g., SPs are scheduled randomly over time periods with the fewest CBAP allocations first, then the next fewest, and so on).

[0081] If there are not enough unoccupied and CBAP-only time periods, the AP/PCP may schedule its SPs randomly during any remaining time periods not occupied by control periods or FDS-compliant SPs (i.e. SPs of AP/PCPs that are complying with the FDS protocol). These time periods may contain numerous non-FDS-compliant SPs and CBAPs, thus the AP/PCP may first group them by popularity before scheduling randomly over the time periods within each group, starting with the least popular first. In addition, when grouping time periods by popularity, the AP/PCP may group according to number of non-FDS-compliant SPs first, since only they are guaranteed transmissions, and then create subgroups based on number of CBAPs per time period, or it can group time periods simply by the number of total allocations (both non-FDS-compliant SPs and CBAPs).

[0082] In one embodiment, a FDS system may enable AP/PCP to include a listing of the IDs of its neighbors in its beacons and/or an extended schedule element as opposed to including their neighbors' beacon allocations in their schedules. This may provide a low overhead method of just listing the AP/PCP neighbors in the beacon or ESE. This may be included in one or more fields in the beacon frame or the ESE. The listing may the MAC addresses, BSSIDs, or some other form of identifier in the beacon frame or the ESE.

[0083] In one embodiment, a FDS system may determine compliance as follows. First, the AP/PCP may check whether a neighbor intends to comply with the FDS protocol by checking whether an FDS bit is set in the neighbor's BHI. For example, a beacon may contain an extended schedule element (ESE) that may be used to set the FDS bit. The ESE may contain one or more fields, and the FDS bit may be set in one of these fields of the ESE. Then, if an AP/PCP' s neighbors have set their FDS bits, but the AP/PCP is still suffering a lot of collisions, the AP/PCP may confirm that its neighbors are complying with the FDS protocol by checking that (1) it is identified as a neighbor in its neighbors' BHIs (e.g., if neighbors are identified listing their MAC addresses in the beacon, then the AP/PCP should find its MAC address in the list ) (2) its neighbors have not scheduled any packets on top of the AP/PCP 's BHIs and only CBAPs on top of the AP/PCP' s SPs. The AP/PCP can also check whether a neighbor is complying with the "fair share" restriction by comparing how much of the channel it is using for control periods and SPs against the "fair share" calculation based on the number of neighbors identified in the neighbor's BHI. Finally, there may be other more sophisticated ways of checking compliance, but they are left for implementation.

[0084] Once the AP/PCP has scheduled its allowed amount of SPs, if the AP/PCP still has data in its queues, it may schedule CBAPs during any remaining time periods that do not overlap with the BHIs of neighboring AP/PCPs. The CBAPs allocated this way may overlap neighbor's SPs. However, in order to avoid interfering with SPs, CBAPs must never overlap the start of an SP.

[0085] Referring to FIG. 2B, there is shown three AP/PCPs (AP 222, AP 223, and AP 224). In this example, AP 222 and AP 223 are 1 st tier neighbors, AP 223 and AP 224 are 1 st tier neighbors, but AP222 and AP 224 are 2 nd tier neighbors (i.e. they do not hear each other's beacons). AP 222 may send beacon frames during BHI 230 and BHI 231, which are separated by a beacon interval. The beacon interval may be defined as the time between Tl and T2 on the time domain access. AP 223 may send beacon frames during BHI 234 and BHI 235, which are separated by the beacon interval defined as the time between T5 and T6. Similarly, AP 224 may send beacon frames during BHI 236 and BHI 237, which are separated by the beacon interval defined as the time between T3 and T4.

[0086] In the example of FIG. 2B, focusing on AP 223, the AP 223 may listen for beacon frames coming from neighbor AP/PCPs. In this case, AP 223 may hear beacon frames in BHI 230 and BHI 236 received from AP 222 and AP 224 respectively. The AP 223 then may parse the included extended schedule elements (ESE) in order to determine what time periods to avoid when creating its own schedule that would be broadcasted using one or more beacon frames in its own BHI 234. For example, AP 223 may also create SPs for AP 222' s and AP 224's BHIs (e.g., SP 238 and SP 239, associated with AP 224 and AP 222, respectively). Doing this may prevent AP 222 and AP 224 from scheduling their beacons on top of each other, which might make it hard for AP 223 to receive them successfully. It also notifies the AP 222 and AP 224 that AP 223 acknowledges them as neighbors. The SP 238 and the SP 239 would have information associated with the neighbor AP/PCP from the perspective of AP 223. That is the SP 238 would contain information associated with AP 224 and SP 239 would contain information associated with AP 222. The SP 238 and the SP 239 may comprise information such as, the start time of the respective BHI (e.g., T4 for SP 238 and T2 for SP 239), the end time of the respective BHI (e.g., T7 for SP 238 and T8 for SP 239), and an indication of the neighbor AP/PCP (e.g., a MAC address or a BSSID).

[0087] In essence, when AP 223 sends its beacon frames in BHI 234, the STAs associated with AP 223 would be are aware of the AP 223 's schedule, including these specific SPs (e.g., SP 238 and SP 239). These AP 223 and its STAs would not schedule any data transmission (UL or DL) during these specific SPs. This provides the means for a neighboring AP/PCP (e.g., AP 222 and AP 224) to receive the beacon frames of AP 223, to determine the schedule of AP 223, and to determine that the AP 223 is aware of the time/frequency domain slots during which the neighboring AP/PCPs (e.g., AP 222 and AP 224) are intending to send their beacon frames.

[0088] It should be understood that although 802. Hay examples are shown in FIGs. 2A and 2B, the one or more embodiments of the FDS system may be applied to any communication standard including wired, wireless, light, or ultrasound standards.

[0089] FIG. 3A illustrates a flow diagram of illustrative process 300 for an illustrative flexible distributed scheduling system, in accordance with one or more example embodiments of the present disclosure.

[0090] At block 302, a device (e.g., the user device(s) 120 and/or the AP 102 of FIG. 1) may identify a first beacon frame received from a first neighbor device, wherein the first beacon frame is associated with a first beacon interval. For example, an AP/PCP (e.g., AP 102 of FIG. 1) may listen for beacon frames from neighboring AP/PCPs to determine their upcoming transmission schedules by parsing the ESEs contained in the received beacon frames. This may require listening on different channels, since neighbor AP/PCPs may operate in different primary channels. For example, an AP/PCP begins each BI by transmitting one or more beacons. The AP/PCP listens to the channel for at least one BI when it first comes online or needs to relocate its beacons, to determine a new location for its BHI that is orthogonal to neighbors' BHIs before sending out its own beacon. The AP/PCP listens for BHIs from neighbor APs/PCPs every BI and parses their included ESE.

[0091] At block 304, the device may identify a first schedule included in the first beacon frame, wherein the first schedule includes intended data transmissions during subsequent first beacon intervals associated with the first neighbor device. For example, an AP/PCP may schedule all control and data orthogonally from control and data of FDS-compliant (e.g., APs/PCPs complying with the FDS protocol) first (and potentially 2 nd ) tier neighbors. The AP/PCP may include control and data allocations of first tier neighbors in its schedule in order to propagate scheduling information to their second tier neighbors. The AP/PCP may restrict its own control and data allocations to a percentage of each data transmission interval (DTI) based on its number of first tier neighbors.

[0092] At block 306, the device may determine a second schedule based on the first schedule, wherein the second schedule comprises intended data transmissions during subsequent second beacon intervals associated with the device. For example, when it is time for the second AP/PCP to transmit its beacon frame, it will include an ESE that does not schedule over the BHI(s) and SP(s) of the first device. The ESE may even explicitly include the BHI(s) and SP(s) of the first device.

[0093] At block 308, the device may encode the second beacon frame with the second schedule associated with a second beacon interval. The AP/PCP may encode its own beacon frame with information associated with the neighbor's schedule (e.g., ESE) or may encode the beacon frame with a list of neighbor IDs. For example, the list may be included in one or more fields in the AP/PCP' s own beacon frame or its own ESE. The listing may the MAC addresses, BSSIDs, or some other form of identifier in the AP/PCP' s own beacon frame or its own ESE.

[0094] At block 308, the device may cause to send the second beacon frame. For example, a second AP/PCP may send its own beacon frames in a BHI during a specific period of time for a beacon interval. When the first AP/PCP receives the beacon frame of the second AP/PCP, the first AP/PCP can determine that the second AP/PCP is following the FDS protocol by confirming that the second AP/PCP' s BHIs and SPs do not overlap the first AP/PCP' s BHIs and SPs. Compliance with this protocol may be as follows: First, the AP/PCP may check whether a neighbor intends to comply with the FDS protocol by checking whether an FDS bit is set in the neighbor' s BHI. For example, a beacon may contain an extended schedule element (ESE) that may be used to set the FDS bit. The ESE may contain one or more fields, and the FDS bit may be set in one of these fields of the ESE. Then, if an AP/PCP' s neighbors have set their FDS bits, but the AP/PCP is still suffering a lot of collisions, the AP/PCP may confirm that its neighbors are complying with the FDS protocol by checking that (1) it is identified as a neighbor in its neighbors' BHIs (e.g., if neighbors are identified listing their MAC addresses in the beacon, then the AP/PCP should find its MAC address in the list ) (2) its neighbors have not scheduled any packets on top of the AP/PCP' s BHIs and only CBAPs on top of the AP/PCP' s SPs. The AP/PCP can also check whether a neighbor is complying with the "fair share" restriction by comparing how much of the channel it is using for control periods and SPs against the "fair share" calculation based on the number of neighbors identified in the neighbor's BHI.

[0095] It is understood that the above block descriptions are for purposes of illustration and are not meant to be limiting.

[0096] FIG. 4 shows a functional diagram of an exemplary communication station 400 in accordance with some embodiments. In one embodiment, FIG. 4 illustrates a functional block diagram of a communication station that may be suitable for use as an AP 102 (FIG. 1) or user device 120 (FIG. 1) in accordance with some embodiments. The communication station 400 may also be suitable for use as a handheld device, a mobile device, a cellular telephone, a smartphone, a tablet, a netbook, a wireless terminal, a laptop computer, a wearable computer device, a femtocell, a high data rate (HDR) subscriber station, an access point, an access terminal, or other personal communication system (PCS) device.

[0097] The communication station 400 may include communications circuitry 402 and a transceiver 410 for transmitting and receiving signals to and from other communication stations using one or more antennas 401. The communications circuitry 402 may include circuitry that can operate the physical layer (PHY) communications and/or media access control (MAC) communications for controlling access to the wireless medium, and/or any other communications layers for transmitting and receiving signals. The communication station 400 may also include processing circuitry 406 and memory 408 arranged to perform the operations described herein. In some embodiments, the communications circuitry 402 and the processing circuitry 406 may be configured to perform operations detailed in FIGs. 1, 2A, 2B and 3.

[0098] In accordance with some embodiments, the communications circuitry 402 may be arranged to contend for a wireless medium and configure frames or packets for communicating over the wireless medium. The communications circuitry 402 may be arranged to transmit and receive signals. The communications circuitry 402 may also include circuitry for modulation demodulation, upconversion/downconversion, filtering, amplification, etc. In some embodiments, the processing circuitry 406 of the communication station 400 may include one or more processors. In other embodiments, two or more antennas 401 may be coupled to the communications circuitry 402 arranged for sending and receiving signals. The memory 408 may store information for configuring the processing circuitry 406 to perform operations for configuring and transmitting message frames and performing the various operations described herein. The memory 408 may include any type of memory, including non-transitory memory, for storing information in a form readable by a machine (e.g., a computer). For example, the memory 408 may include a computer-readable storage device, read-only memory (ROM), random- access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices and other storage devices and media.

[0099] In some embodiments, the communication station 400 may be part of a portable wireless communication device, such as a personal digital assistant (PDA), a laptop or portable computer with wireless communication capability, a web tablet, a wireless telephone, a smartphone, a wireless headset, a pager, an instant messaging device, a digital camera, an access point, a television, a medical device (e.g., a heart rate monitor, a blood pressure monitor, etc.), a wearable computer device, or another device that may receive and/or transmit information wirelessly.

[0100] In some embodiments, the communication station 400 may include one or more antennas 401. The antennas 401 may include one or more directional or omnidirectional antennas, including, for example, dipole antennas, monopole antennas, patch antennas, loop antennas, microstrip antennas, or other types of antennas suitable for transmission of RF signals. In some embodiments, instead of two or more antennas, a single antenna with multiple apertures may be used. In these embodiments, each aperture may be considered a separate antenna. In some multiple-input multiple-output (MIMO) embodiments, the antennas may be effectively separated for spatial diversity and the different channel characteristics that may result between each of the antennas and the antennas of a transmitting station.

[0101] In some embodiments, the communication station 400 may include one or more of a keyboard, a display, a non-volatile memory port, multiple antennas, a graphics processor, an application processor, speakers, and other mobile device elements. The display may be an LCD screen including a touch screen.

[0102] Although the communication station 400 is illustrated as having several separate functional elements, two or more of the functional elements may be combined and may be implemented by combinations of software-configured elements, such as processing elements including digital signal processors (DSPs), and/or other hardware elements. For example, some elements may include one or more microprocessors, DSPs, field- programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), radio- frequency integrated circuits (RFICs) and combinations of various hardware and logic circuitry for performing at least the functions described herein. In some embodiments, the functional elements of the communication station 400 may refer to one or more processes operating on one or more processing elements.

[0103] Certain embodiments may be implemented in one or a combination of hardware, firmware, and software. Other embodiments may also be implemented as instructions stored on a computer-readable storage device, which may be read and executed by at least one processor to perform the operations described herein. A computer-readable storage device may include any non-transitory memory mechanism for storing information in a form readable by a machine (e.g., a computer). For example, a computer-readable storage device may include read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and other storage devices and media. In some embodiments, the communication station 400 may include one or more processors and may be configured with instructions stored on a computer-readable storage device memory.

[0104] FIG. 5 illustrates a block diagram of an example of a machine 500 or system upon which any one or more of the techniques (e.g., methodologies) discussed herein may be performed. In other embodiments, the machine 500 may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine 500 may operate in the capacity of a server machine, a client machine, or both in server-client network environments. In an example, the machine 500 may act as a peer machine in peer-to- peer (P2P) (or other distributed) network environments. The machine 500 may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile telephone, a wearable computer device, a web appliance, a network router, a switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine, such as a base station. Further, while only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein, such as cloud computing, software as a service (SaaS), or other computer cluster configurations.

[0105] Examples, as described herein, may include or may operate on logic or a number of components, modules, or mechanisms. Modules are tangible entities (e.g., hardware) capable of performing specified operations when operating. A module includes hardware. In an example, the hardware may be specifically configured to carry out a specific operation (e.g., hardwired). In another example, the hardware may include configurable execution units (e.g., transistors, circuits, etc.) and a computer readable medium containing instructions where the instructions configure the execution units to carry out a specific operation when in operation. The configuring may occur under the direction of the executions units or a loading mechanism. Accordingly, the execution units are communicatively coupled to the computer-readable medium when the device is operating. In this example, the execution units may be a member of more than one module. For example, under operation, the execution units may be configured by a first set of instructions to implement a first module at one point in time and reconfigured by a second set of instructions to implement a second module at a second point in time.

[0106] The machine (e.g., computer system) 500 may include a hardware processor 502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory 504 and a static memory 506, some or all of which may communicate with each other via an interlink (e.g., bus) 508. The machine 500 may further include a power management device 532, a graphics display device 510, an alphanumeric input device 512 (e.g., a keyboard), and a user interface (UI) navigation device 514 (e.g., a mouse). In an example, the graphics display device 510, alphanumeric input device 512, and UI navigation device 514 may be a touch screen display. The machine 500 may additionally include a storage device (i.e., drive unit) 516, a signal generation device 518 (e.g., a speaker), a flexible distributed scheduling (FDS) device 519, a network interface device/transceiver 520 coupled to antenna(s) 530, and one or more sensors 528, such as a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensor. The machine 500 may include an output controller 534, such as a serial (e.g., universal serial bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate with or control one or more peripheral devices (e.g., a printer, a card reader, etc.)).

[0107] The storage device 516 may include a machine readable medium 522 on which is stored one or more sets of data structures or instructions 524 (e.g., software) embodying or utilized by any one or more of the techniques or functions described herein. The instructions 524 may also reside, completely or at least partially, within the main memory 504, within the static memory 506, or within the hardware processor 502 during execution thereof by the machine 500. In an example, one or any combination of the hardware processor 502, the main memory 504, the static memory 506, or the storage device 516 may constitute machine- readable media. [0108] The FDS device 519 may carry out or perform any of the operations and processes (e.g., process 300) described and shown above.

[0109] It is understood that the above are only a subset of what the FDS device 519 may be configured to perform and that other functions included throughout this disclosure may also be performed by the FDS device 519.

[0110] While the machine-readable medium 522 is illustrated as a single medium, the term "machine-readable medium" may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) configured to store the one or more instructions 524.

[0111] Various embodiments may be implemented fully or partially in software and/or firmware. This software and/or firmware may take the form of instructions contained in or on a non-transitory computer-readable storage medium. Those instructions may then be read and executed by one or more processors to enable performance of the operations described herein. The instructions may be in any suitable form, such as but not limited to source code, compiled code, interpreted code, executable code, static code, dynamic code, and the like. Such a computer-readable medium may include any tangible non-transitory medium for storing information in a form readable by one or more computers, such as but not limited to read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; a flash memory, etc.

[0112] The term "machine-readable medium" may include any medium that is capable of storing, encoding, or carrying instructions for execution by the machine 500 and that cause the machine 500 to perform any one or more of the techniques of the present disclosure, or that is capable of storing, encoding, or carrying data structures used by or associated with such instructions. Non-limiting machine-readable medium examples may include solid-state memories and optical and magnetic media. In an example, a massed machine -readable medium includes a machine-readable medium with a plurality of particles having resting mass. Specific examples of massed machine -readable media may include non-volatile memory, such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), or electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD- ROM disks.

[0113] The instructions 524 may further be transmitted or received over a communications network 526 using a transmission medium via the network interface device/transceiver 520 utilizing any one of a number of transfer protocols (e.g., frame relay, internet protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Example communications networks may include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), mobile telephone networks (e.g., cellular networks), plain old telephone (POTS) networks, wireless data networks (e.g., Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards known as Wi-Fi®, IEEE 802.16 family of standards known as WiMax®), IEEE 802.15.4 family of standards, and peer-to-peer (P2P) networks, among others. In an example, the network interface device/transceiver 520 may include one or more physical jacks (e.g., Ethernet, coaxial, or phone jacks) or one or more antennas to connect to the communications network 526. In an example, the network interface device/transceiver 520 may include a plurality of antennas to wirelessly communicate using at least one of single-input multiple- output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) techniques. The term "transmission medium" shall be taken to include any intangible medium that is capable of storing, encoding, or carrying instructions for execution by the machine 500 and includes digital or analog communications signals or other intangible media to facilitate communication of such software. The operations and processes described and shown above may be carried out or performed in any suitable order as desired in various implementations. Additionally, in certain implementations, at least a portion of the operations may be carried out in parallel. Furthermore, in certain implementations, less than or more than the operations described may be performed.

[0114] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments. The terms "computing device," "user device," "communication station," "station," "handheld device," "mobile device," "wireless device" and "user equipment" (UE) as used herein refers to a wireless communication device such as a cellular telephone, a smartphone, a tablet, a netbook, a wireless terminal, a laptop computer, a femtocell, a high data rate (HDR) subscriber station, an access point, a printer, a point of sale device, an access terminal, or other personal communication system (PCS) device. The device may be either mobile or stationary.

[0115] As used within this document, the term "communicate" is intended to include transmitting, or receiving, or both transmitting and receiving. This may be particularly useful in claims when describing the organization of data that is being transmitted by one device and received by another, but only the functionality of one of those devices is required to infringe the claim. Similarly, the bidirectional exchange of data between two devices (both devices transmit and receive during the exchange) may be described as "communicating," when only the functionality of one of those devices is being claimed. The term "communicating" as used herein with respect to a wireless communication signal includes transmitting the wireless communication signal and/or receiving the wireless communication signal. For example, a wireless communication unit, which is capable of communicating a wireless communication signal, may include a wireless transmitter to transmit the wireless communication signal to at least one other wireless communication unit, and/or a wireless communication receiver to receive the wireless communication signal from at least one other wireless communication unit.

[0116] As used herein, unless otherwise specified, the use of the ordinal adjectives "first," "second," "third," etc., to describe a common object, merely indicates that different instances of like objects are being referred to and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking, or in any other manner.

[0117] The term "access point" (AP) as used herein may be a fixed station. An access point may also be referred to as an access node, a base station, an evolved node B (eNodeB), an evolved node B (eNodeB), or some other similar terminology known in the art. An access terminal may also be called a mobile station, user equipment (UE), a wireless communication device, or some other similar terminology known in the art. Embodiments disclosed herein generally pertain to wireless networks. Some embodiments may relate to wireless networks that operate in accordance with one of the IEEE 802.11 standards.

[0118] Some embodiments may be used in conjunction with various devices and systems, for example, a personal computer (PC), a desktop computer, a mobile computer, a laptop computer, a notebook computer, a tablet computer, a server computer, a handheld computer, a handheld device, a personal digital assistant (PDA) device, a handheld PDA device, an onboard device, an off-board device, a hybrid device, a vehicular device, a non- vehicular device, a mobile or portable device, a consumer device, a non- mobile or non-portable device, a wireless communication station, a wireless communication device, a wireless access point (AP), a wired or wireless router, a wired or wireless modem, a video device, an audio device, an audio- video (A/V) device, a wired or wireless network, a wireless area network, a wireless video area network (WVAN), a local area network (LAN), a wireless LAN (WLAN), a personal area network (PAN), a wireless PAN (WPAN), and the like.

[0119] Some embodiments may be used in conjunction with one way and/or two-way radio communication systems, cellular radio-telephone communication systems, a mobile phone, a cellular telephone, a wireless telephone, a personal communication system (PCS) device, a PDA device which incorporates a wireless communication device, a mobile or portable global positioning system (GPS) device, a device which incorporates a GPS receiver or transceiver or chip, a device which incorporates an RFID element or chip, a multiple input multiple output (MIMO) transceiver or device, a single input multiple output (SIMO) transceiver or device, a multiple input single output (MISO) transceiver or device, a device having one or more internal antennas and/or external antennas, digital video broadcast (DVB) devices or systems, multi- standard radio devices or systems, a wired or wireless handheld device, e.g., a smartphone, a wireless application protocol (WAP) device, or the like.

[0120] Some embodiments may be used in conjunction with one or more types of wireless communication signals and/or systems following one or more wireless communication protocols, for example, radio frequency (RF), infrared (IR), frequency-division multiplexing (FDM), orthogonal FDM (OFDM), time-division multiplexing (TDM), time-division multiple access (TDM A), extended TDMA (E-TDMA), general packet radio service (GPRS), extended GPRS, code-division multiple access (CDMA), wideband CDMA (WCDMA), CDMA 2000, single-carrier CDMA, multi-carrier CDMA, multi-carrier modulation (MDM), discrete multi- tone (DMT), Bluetooth®, global positioning system (GPS), Wi-Fi, Wi-Max, ZigBee, ultra- wideband (UWB), global system for mobile communications (GSM), 2G, 2.5G, 3G, 3.5G, 4G, fifth generation (5G) mobile networks, 3 GPP, long term evolution (LTE), LTE advanced, enhanced data rates for GSM Evolution (EDGE), or the like. Other embodiments may be used in various other devices, systems, and/or networks.

[0121] Example 1 may include a device comprising memory and processing circuitry configured to: identify a first beacon frame received from a first neighbor device, wherein the first beacon frame may be associated with a first beacon interval; identify a first schedule included in the first beacon frame, wherein the first schedule may include intended data transmissions during subsequent first beacon intervals associated with the first neighbor device; determine a second schedule based on the first schedule, wherein the second schedule comprises intended data transmissions during subsequent second beacon intervals associated with the device; encode a second beacon frame with a second schedule associated with a second beacon interval; and cause to send the second beacon frame.

[0122] Example 2 may include the device of example 1 and/or some other example herein, wherein the first beacon frame received from the first neighbor device may be orthogonal to the second beacon frame sent by the device. [0123] Example 3 may include the device of example 1 and/or some other example herein, wherein a length of the first beacon interval may be equal to or different from a length of the second beacon interval.

[0124] Example 4 may include the device of example 3 and/or some other example herein, wherein the memory and the processing circuitry are further configured to determine an amount of time in the first beacon interval for scheduling data transmissions using one or more first allocations based on the length of the first beacon interval, a time allocated for control, and a number of neighbor devices of the device.

[0125] Example 5 may include the device of example 1 and/or some other example herein, wherein the first schedule may be included in a first extended schedule element of the first beacon frame.

[0126] Example 6 may include the device of example 5 and/or some other example herein, wherein the first extended schedule element may include one or more first allocations associated with a communication channel.

[0127] Example 7 may include the device of example 6 and/or some other example herein, wherein the one or more first allocations comprise one or more data service periods, one or more control service periods, or one or more contention based access period (CBAP).

[0128] Example 8 may include the device of example 1 and/or some other example herein, wherein the memory and the processing circuitry are further configured to determine to set a first beacon service period in the second schedule, wherein the first beacon service period may be associated with the first neighbor device.

[0129] Example 9 may include the device of example 8 and/or some other example herein, wherein the second schedule may include a start time of the first beacon service period, an end time of the first beacon service period, and an indication of the first neighbor device.

[0130] Example 10 may include the device of example 1 and/or some other example herein, further comprising a transceiver configured to transmit and receive wireless signals.

[0131] Example 11 may include the device of example 10 and/or some other example herein, further comprising an antenna coupled to the transceiver.

[0132] Example 12 may include a non-transitory computer-readable medium storing computer-executable instructions which when executed by one or more processors result in performing operations comprising: identifying a first beacon frame received from a first neighbor device, wherein the first beacon frame may be associated with a first beacon interval; identifying a first schedule included in the first beacon frame, wherein the first schedule may include intended data transmissions during subsequent first beacon intervals associated with the first neighbor device; determining a second schedule based on the first schedule, wherein the second schedule comprises intended data transmissions during subsequent second beacon intervals associated with a second device; encoding a second beacon frame with a second schedule associated with a second beacon interval; and causing to send the second beacon frame.

[0133] Example 13 may include the non-transitory computer-readable medium of example 12 and/or some other example herein, wherein the first beacon frame received from the first neighbor device may be orthogonal to the second beacon frame sent by the second device.

[0134] Example 14 may include the non- transitory computer-readable medium of example 12 and/or some other example herein, wherein a length of the first beacon interval may be equal to or different from a length of the second beacon interval.

[0135] Example 15 may include the non-transitory computer-readable medium of example 14 and/or some other example herein, wherein the operations further comprise determining an amount of time in the first beacon interval for scheduling data transmissions using one or more first allocations based on the length of the first beacon interval, a time used for control allocations, and a number of neighbor devices of the second device.

[0136] Example 16 may include the non-transitory computer-readable medium of example 12 and/or some other example herein, wherein the first schedule may be included in a first extended schedule element of the first beacon frame.

[0137] Example 17 may include the non-transitory computer-readable medium of example

16 and/or some other example herein, wherein the first extended schedule element may include one or more first allocations associated with a communication channel.

[0138] Example 18 may include the non- transitory computer-readable medium of example

17 and/or some other example herein, wherein the one or more first allocations comprise one or more data service periods, one or more control service periods, or one or more contention based access period (CBAP).

[0139] Example 19 may include the non-transitory computer-readable medium of example 12 and/or some other example herein, wherein the operations further comprise determining to set a first beacon service period in the second schedule, wherein the first beacon service period may be associated with the first neighbor device.

[0140] Example 20 may include the non-transitory computer-readable medium of example 19 and/or some other example herein, wherein the second schedule may include a start time of the first beacon service period, an end time of the first beacon service period, and an indication of the first neighbor device. [0141] Example 21 may include a method comprising: identifying, by one or more processors of a device, a first beacon frame received from a first neighbor device, wherein the first beacon frame may be associated with a first beacon interval; identifying a first schedule included in the first beacon frame, wherein the first schedule may include intended data transmissions during subsequent first beacon intervals associated with the first neighbor device; determining a second schedule based on the first schedule, wherein the second schedule comprises intended data transmissions during subsequent second beacon intervals associated with the device; encoding a second beacon frame with a second schedule associated with a second beacon interval; and causing to send the second beacon frame.

[0142] Example 22 may include the method of example 21 and/or some other example herein, wherein the first beacon frame received from the first neighbor device may be orthogonal to the second beacon frame sent by the device.

[0143] Example 23 may include the method of example 21 and/or some other example herein, wherein a length of the first beacon interval may be equal to or different from a length of the second beacon interval.

[0144] Example 24 may include the method of example 23 and/or some other example herein, further comprising determining an amount of time in the first beacon interval for scheduling data transmissions using one or more first allocations based on the length of the first beacon interval, a time used for control allocations, and a number of neighbor devices of the device.

[0145] Example 25 may include the method of example 21 and/or some other example herein, wherein the first schedule may be included in a first extended schedule element of the first beacon frame.

[0146] Example 26 may include one or more non-transitory computer-readable media comprising instructions to cause an electronic device, upon execution of the instructions by one or more processors of the electronic device, to perform one or more elements of a method described in or related to any of examples 1-25, or any other method or process described herein.

[0147] Example 27 may include an apparatus comprising logic, modules, and/or circuitry to perform one or more elements of a method described in or related to any of examples 1-25, or any other method or process described herein.

[0148] Example 28 may include a method, technique, or process as described in or related to any of examples 1-25, or portions or parts thereof. [0149] Example 29 may include an apparatus comprising: one or more processors and one or more computer readable media comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform the method, techniques, or process as described in or related to any of examples 1-25, or portions thereof.

[0150] Example 30 may include a method of communicating in a wireless network as shown and described herein.

[0151] Example 31 may include a system for providing wireless communication as shown and described herein.

[0152] Example 32 may include a device for providing wireless communication as shown and described herein.

[0153] Embodiments according to the invention are in particular disclosed in the attached claims directed to a method, a storage medium, a device and a computer program product, wherein any feature mentioned in one claim category, e.g., method, can be claimed in another claim category, e.g., system, as well. The dependencies or references back in the attached claims are chosen for formal reasons only. However, any subject matter resulting from a deliberate reference back to any previous claims (in particular multiple dependencies) can be claimed as well, so that any combination of claims and the features thereof are disclosed and can be claimed regardless of the dependencies chosen in the attached claims. The subject- matter which can be claimed comprises not only the combinations of features as set out in the attached claims but also any other combination of features in the claims, wherein each feature mentioned in the claims can be combined with any other feature or combination of other features in the claims. Furthermore, any of the embodiments and features described or depicted herein can be claimed in a separate claim and/or in any combination with any embodiment or feature described or depicted herein or with any of the features of the attached claims.

[0154] The foregoing description of one or more implementations provides illustration and description, but is not intended to be exhaustive or to limit the scope of embodiments to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of various embodiments.

[0155] Certain aspects of the disclosure are described above with reference to block and flow diagrams of systems, methods, apparatuses, and/or computer program products according to various implementations. It will be understood that one or more blocks of the block diagrams and flow diagrams, and combinations of blocks in the block diagrams and the flow diagrams, respectively, may be implemented by computer-executable program instructions. Likewise, some blocks of the block diagrams and flow diagrams may not necessarily need to be performed in the order presented, or may not necessarily need to be performed at all, according to some implementations.

[0156] These computer-executable program instructions may be loaded onto a special- purpose computer or other particular machine, a processor, or other programmable data processing apparatus to produce a particular machine, such that the instructions that execute on the computer, processor, or other programmable data processing apparatus create means for implementing one or more functions specified in the flow diagram block or blocks. These computer program instructions may also be stored in a computer-readable storage media or memory that may direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable storage media produce an article of manufacture including instruction means that implement one or more functions specified in the flow diagram block or blocks. As an example, certain implementations may provide for a computer program product, comprising a computer- readable storage medium having a computer-readable program code or program instructions implemented therein, said computer-readable program code adapted to be executed to implement one or more functions specified in the flow diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational elements or steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions that execute on the computer or other programmable apparatus provide elements or steps for implementing the functions specified in the flow diagram block or blocks.

[0157] Accordingly, blocks of the block diagrams and flow diagrams support combinations of means for performing the specified functions, combinations of elements or steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the block diagrams and flow diagrams, and combinations of blocks in the block diagrams and flow diagrams, may be implemented by special-purpose, hardware-based computer systems that perform the specified functions, elements or steps, or combinations of special-purpose hardware and computer instructions.

[0158] Conditional language, such as, among others, "can," "could," "might," or "may," unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain implementations could include, while other implementations do not include, certain features, elements, and/or operations. Thus, such conditional language is not generally intended to imply that features, elements, and/or operations are in any way required for one or more implementations or that one or more implementations necessarily include logic for deciding, with or without user input or prompting, whether these features, elements, and/or operations are included or are to be performed in any particular implementation.

[0159] Many modifications and other implementations of the disclosure set forth herein will be apparent having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the disclosure is not to be limited to the specific implementations disclosed and that modifications and other implementations are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.