# Patent

## Title
Wireless access points providing hybrid 802.11 and scheduled priority access communications

## Abstract

Wireless access points providing hybrid 802.11 and scheduled priority access communications are provided herein. An exemplary wireless access point may be configured to communicate with a set of standard access clients using an 802.11 mode of communication during standard access phases, as well as communicate with a set of priority access clients during priority access phases, when the wireless access point is not communicating with the set of standard access clients, using a priority mode of communication.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application is related to U.S. Provisional Application Ser. No. 61/948,482, filed on Mar. 5, 2014, titled “Simultaneous Downlink Transmission to Multiple Single-User MIMO Clients”, which is hereby incorporated herein by reference, including all references cited therein.
FIELD OF THE INVENTION
The present invention relates generally to wireless communications, and more specifically, but not by way of limitation, to wireless access points that are configured to service a hybrid collection of standard 802.11 clients and priority access clients.
BACKGROUND
A wireless access point (AP) is a device that allows wireless devices such as computers, telephones, appliances, and other similar network enabled computing devices to connect to a wired network using Wi-Fi, or related standards. The AP allows the network enabled devices to access, for example, the Internet, or allows the network enabled devices to communicate with one another over the network. APs typically utilize one or more protocols specified in the IEEE 802.11 standards. That is, an AP may be configured to service clients that utilize one or more protocols that are IEEE 802.11 standards compliant.
SUMMARY
According to some embodiments, the present disclosure is directed to a wireless access point that comprises: (a) a processor; and (b) a memory for storing instructions, wherein the instructions when executed by the processor cause the wireless access point to perform operations comprising: (i) communicating with a set of standard access clients using an 802.11 mode of communication during standard access phases; and (ii) communicating with a set of priority access clients during priority access phases, when the wireless access point is not communicating with the set of standard access clients, using a priority mode of communication.
According to some embodiments, the present disclosure is directed to a method of communicating with standard 802.11 clients and priority access clients that utilize a priority access MAC protocol, using a wireless access point. The method may comprise: (i) silencing both standard access clients and priority access clients prior to standard access phases; (ii) communicating with standard access clients using an 802.11 mode of communication during standard access phases; (iii) silencing both standard access clients and priority access clients prior to priority access phases; and (iv) communicating with groups of priority access clients during priority access phases using the priority access MAC protocol.
According to some embodiments, the present disclosure is directed to a computing device configured to communicate with a wireless access point using a media access control (MAC) protocol. The computing device comprises: (a) a processor; and (b) a memory for storing a MAC protocol, wherein the MAC protocol is executed by the processor to: (i) evaluate a priority activation frame received from the wireless access point to determine if a group identifier included in the priority activation frame corresponds to a group identifier assigned to the computing device by the wireless access point; (ii) communicate with the wireless access point, for a specified period of time specified in the priority activation frame, if the group identifier of the priority activation frame matches the group identifier of the computing device; and (iii) cease communication with the wireless access point if the group identifier of the priority activation frame does not match the group identifier of the computing device.
According to some embodiments, the present disclosure is directed to a node within a wireless communications network that schedules access for both standard 802.11 clients and priority access clients to the Internet, the node comprising: (a) a standard 802.11 client interface for communicating with client devices using a standard 802.11 mode; (b) a priority media access control/physical (MAC/PHY) interface for communicating with client devices using a priority access MAC protocol; and (c) a scheduling module that manages standard access phases and priority access phases, wherein the standard access phases comprise time periods where the node silences client devices using the priority access MAC protocol and allows client devices using a standard 802.11 mode to communicate with the node, and wherein the priority access phases comprise time periods where the node silences client devices using standard 802.11 mode and allows client devices using the priority access MAC protocol to communicate with the node.



BRIEF DESCRIPTION OF THE DRAWINGS
Certain embodiments of the present technology are illustrated by the accompanying figures. It will be understood that the figures are not necessarily to scale and that details not necessary for an understanding of the technology or that render other details difficult to perceive may be omitted. It will be further understood that the technology is not necessarily limited to the particular embodiments illustrated herein.
FIG. 1 is an exemplary WiFi network that may be utilized to practice aspects of the present technology;
FIG. 2 is an exemplary communication schedule for a wireless access point that communicates with both standard 802.11 clients and priority access clients;
FIG. 3 is an exemplary signal flow diagram illustrating the operation of a wireless access point during a standard access phase;
FIG. 4 is an exemplary signal flow diagram illustrating the operation of a wireless access point when switching between standard and priority access phases of operation;
FIG. 5 is a signal flow diagram that illustrates the wireless access point switching between standard and priority access phases, namely when a standard access client is currently transmitting data to the wireless access point after expiration of the duration associated with the standard access phase;
FIG. 6 is a signal flow diagram that illustrates the wireless access point switching between standard and priority access phases, namely when the wireless access point is currently transmitting data to the standard access client after expiration of the duration associated with the standard access phase;
FIG. 7 is an exemplary signal flow diagram illustrating the operation of a wireless access point during a priority access phase, where the wireless access point schedules communications for two client groups of priority access clients;
FIG. 8 is an exemplary signal flow diagram illustrating the operation of a wireless access point during a priority access phase, where the wireless access point utilizes both priority activation and deactivation frames to schedule communications for two client groups of priority access clients;
FIG. 9 is a flowchart of an exemplary method for scheduling communication of standard 802.11 clients and priority access clients that utilize a priority access MAC protocol, using a wireless access point; and
FIG. 10 illustrates an exemplary computing device that may be used to implement an embodiment of the present technology



DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
While this technology is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail several specific embodiments with the understanding that the present disclosure is to be considered as an exemplification of the principles of the technology and is not intended to limit the technology to the embodiments illustrated.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It will be understood that like or analogous elements and/or components, referred to herein, may be identified throughout the drawings with like reference characters. It will be further understood that several of the figures are merely schematic representations of the present technology. As such, some of the components may have been distorted from their actual scale for pictorial clarity.
The present technology provides a wireless access point (AP) that utilizes both traditional 802.11 AP modes that support standard 802.11 Wi-Fi clients, as well as a priority access MAC-PHY interface for servicing enhanced scheduled priority access clients. The present technology increases the client capacity on the AP by managing individual fixed broadband client airtime fairness, reducing latency, and advantageously providing open service to traditional Wi-Fi devices on the same radio.
By providing timed windows of opportunity during which the AP supports standards compatible 802.11 devices, and then notifying the 802.11 devices to cease transmitting for upcoming intervals, an AP can concurrently leverage those additional intervals for scheduled medium access to better manage the diverse latency sensitive higher throughput demanding fixed client population. Advantageously, a single AP can provide high capacity and improved efficiency fixed and Wi-Fi support, and adapt bandwidths as necessary to respond to the changing needs in fixed and nomadic device types and their varying usage application demands.
Fixed broadband wireless clients at homes and businesses are quite diverse in location and distance from an AP. Additionally, these clients may be directionally oriented with the AP to achieve increased operation distance by leveraging high gain directional antenna radiation patterns. Given these usage scenarios clients may heavily interfere with each other as individual clients are not visible to each other throughout the service footprint. IEEE 802.11 standards implemented at the AP attempt to solve this problem using Carrier Sense Multiple Access (CSMA), but as distance and antenna directionality increase, almost every device becomes a hidden node causing unusable client transmission interference.
Therefore, if an AP uses traditional 802.11 CSMA and does not adapt, if one client channel does not sense the transmission of another client, the client believes it can transmit to the AP and naturally causes interference.
As a result, most fixed broadband wireless implementations implement time division duplexing (TDD) or frequency division duplexing (FDD), fixed scheduling protocols to manage the scheduling between clients using a priority access MAC/PHY layer(s). Unfortunately, these priority access layers are not compatible with the over 10 billion traditional (e.g., standard) 802.11 Wi-Fi devices, which include many smart tablet/phones and laptops.
The 802.11 standards have attempted to support some forms of quality of service improvements using, for example, Point Coordination Function (PCF) and Hybrid Coordination Function (HCF). With PCF, contention free periods are setup by the AP and managed by the AP (Point Coordinator), in which all but a single client device is allowed to transfer frames. Industry support for PCF has been very minimal and it is known that many client devices currently in deployment do not fully comply with contention free periods initiated by PCF. As a consequence, PCF cannot be used to provide reliability with regard to quality of service in networks supporting legacy users.
HCF was introduced in the IEEE 802.11e standard and provides a statistical method for providing quality of service to clients. It will be understood by to those skilled in the art that while HCF provides a level of quality of service in the statistical sense, HCF methods cannot provide the level of quality of service required for carrier/operator-grade networks.
Additionally, both PCF and HCF do not address the issues related to non-compliant devices nor the propensity of hidden nodes in the network which prevent standards based quality of service techniques to operate properly.
With the stunning growth of mobile Wi-Fi devices now representing 50% of Internet traffic, it is critical to enable service providers with flexibility to adapt to service both low latency reliable priority access clients together with nomadic standard 802.11 Wi-Fi devices in a single AP.
The present technology relates to and incorporates aspects of the IEEE 802.11 standards. Namely, the following definitions from various sections of the IEEE 802.11 standards are provided herein for reference purposes. NAV—Network Allocation Vector (also referred to as “Virtual Carrier Sensing”); PCF—Point Coordination Function; DCF—Distributed Coordination Function; PIFS—Point Coordination Function Interframe Space; and DIFS—Distributed Coordination Function Interframe Space.
FIG. 1 is a block diagram of an exemplary WiFi network 100, constructed in accordance with various embodiments of the present technology. The network 100 may include a plurality of end user client devices that include both a standard 802.11 client, hereinafter “standard access client 105” as well as a priority client, hereinafter “priority access client 110.” Generally, the standard access client 105 includes any computing device that is configured to operate on any IEEE 802.11 specified protocol, such as 802.11a through 802.11n.
The priority access client 110 may comprise a processor 115 and a memory 120. The priority access client 110 may include a priority media access control (MAC) protocol 125 that allows the priority access client 110 to communicate with an AP 130. It is noteworthy that AP 130 may communicate with a plurality of standard access clients and a plurality of priority access clients simultaneously, as will be described in greater detail below. In some instances, the priority access client 110 may be configured to utilize both standard and priority protocols to communicate with the AP 130.
It is noteworthy that both the standard access client 105 and the priority access client 110 communicatively couple with the AP 130 in a wireless manner, as will be described in greater detail below. It will be understood that the AP 130 may be coupled with a wired/wireless network 170, such as the Internet.
The AP 130 generally includes a processor 135, a memory 140 having a standard access client 802.11 layer 145 and a priority access MAC layer 150, a cache 155, and a scheduling module 160. The processor 135 of the AP 130 executes instructions within the memory 140 of the AP 130 to allow a hybrid mix of communications between both the standard access client 105 and the priority access client 110. As would be known to one of ordinary skill in the art, both the standard access client 802.11 layer 145 and the priority access MAC layer 150 may be arranged as sublayers of a data link layer of a TCP/IP layer used by the AP 130.
The AP 130 may include, for example, a wireless router or other wireless hub or device that is configured to function as an interface between client devices and a network medium, such as the wired/wireless network 170. In other instances, the AP 130 may include a node within any network that is configured to service both standard access clients and priority access clients, where the priority access clients utilize a priority access MAC layer to communicate with the node. As with the AP 130, this node is configured to schedule access to the network for both the standard access clients and the priority access clients, allowing the node to service a much greater spectrum of client devices.
Returning back to the discussion of the AP 130, there are two phases of operation for the AP 130. The first is a standard access phase of operation. During the standard access phase of operation, the AP 130 services standard non-priority 802.11 clients and/or priority access clients operating in standard 802.11 mode. These clients are able to associate with the AP 130 and send/receive data during this phase.
The second phase of operation for the AP 130 is a priority access phase. During the priority access phase of operation, the AP 130 services priority access clients that run a priority access MAC protocol. Advantageously, the AP 130 allows for the scheduling of both the standard and priority access clients using the scheduling module 160.
FIG. 2 illustrates the operation of the AP 130 in both standard and priority access phases. Notably, the scheduling module 160 of the AP 130 alternates standard access phases with the priority access phases. Because the AP 130 executes this alternation transparently to the client devices, the AP 130 is able to simultaneously offer access to the network 170 to both the standard and priority access clients.
Broadly described, the scheduling module 160 manages standard access phases and priority access phases for the AP 130. A standard access phase comprise a time period where the AP 130 allows only client devices using a standard 802.11 mode to communicate with the AP 130. Conversely, the priority access phases comprise time periods where the scheduling module 160 of the AP 130 allows only client devices using the priority access MAC protocol to communicate with the AP 130. Priority may be referred to as proprietary or fixed-access. In sum, prior to each phase (standard or priority), the AP 130 is configured to transmit a silencing signal to all clients, regardless of the mode of communication utilized by the client device.
More specifically, the phases are implemented by the scheduling module 160 in time divided intervals. For reference purposes, Ts is the duration that the AP 130 is allowed to operate in a standard access phase and Tp is the duration of operation in a priority access phase. Again, the scheduling module 160 of the AP 130 alternates these phases such that they repeat over time as shown in FIG. 2.
FIG. 3 illustrates the operation of the AP 130 during a standard access phase. The AP 130 starts operating in the standard access phase by authenticating and associating both standard 802.11 clients and priority access clients operating in a standard 802.11 mode. Standard 802.11 clients are referred to as STASTD1/STASTD2 priority. It will be understood that in some instances the reference “STASTD” may be utilized to refer generally to clients that operate in standard 802.11 mode.
Once the clients have been associated, the AP 130 loads an association context for the clients. In some instances, an association context may include encryption keys for the supported clients, which are stored into the cache 155. During the standard access phase, the AP 130 allows for automatic sharing of the wired or wireless network 170 associated with the AP 130 through the use of Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA) and a random back-off time following a busy medium condition as per the DCF operation described in the IEEE 802.11 standard. The AP 130 may perform Career Sensing (CS) through both virtual and physical mechanisms.
FIG. 4 illustrates the AP 130 switching from a standard access phase to a priority access phase. When the AP 130 has operated in the standard access phase for a time duration T>TS, the AP 130 switches to a priority mode of operation. In some instances, the AP 130 initiates the switch by sending a CTS-to-Self frame 405 with its duration field set to TP in order to silence all client devices.
It is noteworthy that the 802.11 standard allows a maximum CTS-to-Self duration value of NAVMAX=32767, (i.e., 32 ms). If TP>NAVMAX, the AP 130 sets the duration field to NAVMAX. Additionally, the AP 130 sets a timer that is equal to NAVMAX. When the timer is close to expiration, the AP 130 sends another CTS-to-self frame with duration set to TP−NAVMAX (if <NAVMAX). This subsequent CTS-to-self frame forces all standard access clients (STASTD1 and STASTD2) to remain in NAV for the entire TP duration.
The transmission of CTS-to-self frames to all clients functions to silence all clients prior to the AP 130 communicating with priority access clients during the duration of the TP (e.g., a priority access phase). In some instances, the transmission of the CTS-to-self frames functions to silence both standard access clients and all priority access clients that are not in a client group with which the AP 130 is currently communicating. It is noteworthy that the AP 130 may selectively communicate with each group of priority access clients using an association context, such as a group ID and encryption key. As will be described in greater detail below, the AP 130 may selectively communicate with priority access clients using priority activation and deactivation frames, within a given priority access phase.
It will be understood that the AP 130 may send as many CTS-to-Self frames as required for all the standard operating clients to remain in NAV for duration of TP. In some embodiments, the AP 130 may send the CTS-to-Self frames at a data rate such that all standard operating clients, including 802.11n clients that operate in the same band, do not interfere with the AP 130 operation during the priority access phase.
FIG. 4 also illustrates the switching of the AP 130 between standard and priority access phases, and specifically, during instances where the AP 130 is operating in NAV mode. It will be understood that the AP 130 may be put into NAV by virtue of a CTS frame that is received by the AP 130 from a standard access client 420. If the AP 130 is currently operating in NAV mode, the AP 130 waits until the NAV period 410 has expired and sends a CTS-to-self frame 405 after one PIFS interval 415. As per the IEEE 802.11 standard, PIFS<DIFS and hence the AP 130 gains access to the medium, such as the wired network 170 (see FIG. 1) before any standard operating client gains a transmit opportunity.
FIG. 5 is a signal flow diagram that illustrates the AP 130 switching between standard and priority access phases, namely when a standard access client is currently transmitting data to the AP 130 after expiration of the duration TS associated with a standard access phase. If the AP is currently receiving a packet from a standard access client such as STASTD1, the AP 130 waits until the packet is received and sends an Ack frame (if necessary) to the standard access client STASTD1. The AP 130 also sends the CTS-to-Self frame 505.
FIG. 6 is a signal flow diagram that illustrates the AP 130 switching between standard and priority access phases, namely when the AP 130 is currently transmitting data to a standard access client after expiration of the duration TS associated with the standard access phase. If the AP is currently sending a packet to a STASTD1, the AP 130 completes the current ongoing transmission, waits for an Ack frame (if necessary) from the standard access client STASTD1, and sends a CTS-to-Self frame 605 after PIFS interval 610. So at the AP 130, when the TS threshold is reached, the ongoing transmissions are allowed to complete before the AP 130 sends any CTS-to-Self frame, thus switching the AP 130 into the priority access phase.
Immediately after sending a CTS-to-Self frame, the AP 130 switches a TX/RX profile at the AP 130 in order to service priority access clients that belong to Client Group 1 (CG1). One example of this is the reloading of the hardware accelerated encryption key cache 155. Let Gmax be the maximum keys (e.g., association context) that could be cached (currently Gmax=128) at the AP 130 at any point of time. This limits the number of clients that can communicate with the AP with encrypted frames. In some instances, any associated priority access clients and standard access clients that do not have their keys cached will not be able to communicate with AP until their keys are reloaded.
FIGS. 7 and 8 collectively illustrate the operation of the AP 130 during priority access phases. Prior to communicating with the priority access clients, the AP 130 groups the priority access clients into Client Groups (CGs) based on different parameters such as current traffic, client service priority, and so forth. This serves two purposes: (a) to reduce the number of STAPA that are going to contend for the medium at a particular time interval, thereby reducing collisions, and (b) in order to address the hardware limitations that may be encountered in servicing a large number of clients (e.g., encryption key cache). The AP 130 may assign a unique client group identifier to each client group created. The unique client group identifiers assigned to the client groups may be utilized by the AP 130 to coordinate or schedule access for the priority access client groups as will be described in greater detail below.
At the start of the priority access phase, the AP 130 sends a priority Action Frame called here as Priority Activation Frame (PAF) with CG_ID 1 and Duration dcg1(<dp) specified. Broadly, the PAF includes a client group identifier and a duration that specifies how long the client group is allowed to contend for access to the network 170.
The AP 130 then loads the cache 155 with an association context, such as any encryption key for the STAPA (priority access clients) that belong the CG_ID 1 group. Clients that belong to CG_ID 1 begin to contend for a channel opened by the AP 130, upon the clients receiving a PAF from the AP 130 after a duration of dc. The dc duration is a time the AP 130 requires to reload the cache 155 with new keys. This allows clients that belong to CG_ID 1 to access the channel for a duration of dcg1. When the duration dcg1 has passed, using a similar mechanism for switching from standard to priority access phase, the AP 130 waits until current transaction is complete and sends a PAF with CG_ID 2 and duration dcg2 and reloads the cache 155. STAPA that belong to CG_ID 2 start to contend for the channel after expiration of the duration dc. STAPA belonging to a particular group can access the medium only after receiving a PAF from AP 130 for that group and only for the duration specified in the PAF frame.
It will be understood that the “dc” duration may comprise a duration of any desired length. In some instances, the length of the duration may be predicated upon the time required by the AP 130 to reload the cache 155 with encryption keys for a client group. That is, the “dc” duration can include an arbitrary amount of time that defines how long it takes the AP 130 to unload and reload encryption keys in the cache 155. For example, the “dc” duration may be equal to the amount of time it takes to purge the cache 155 of encryption keys for client group CG_ID 1, as well as the time it takes the AP 130 to load encryption keys for client group CG_ID 2.
As an alternative shown in FIG. 8, the AP 130 can also activate and deactivate the groups of priority access clients by sending Priority Activation Frame (PAF) and Priority Deactivation Frame (PDF). In this case, the switch in profile occurs before the transmission of the frames.
The AP 130 divides the nodes into groups and assigns dCG values to the different groups taking the dp into account such that during a single phase, (dCG1+dCG2+ . . . dCGn)<(dp−dc−Tmax), where Tmax is the maximum time for an ongoing transmission opportunity (TXOP) transaction. Therefore, when a STASTD begins to contend for the channel after its NAV, the AP 130 has already loaded an association context of the STASTD in its cache 155 and has switched to the standard access phase of operation. The STASTD are now serviced and the operation repeats over time.
In some embodiments the AP 130 includes an 802.11ac 4×4:4 DL-MU-MIMO processor, configured with four panel antennas fixed 90-degree radiation patterns with limited overlap to achieve a near 360-degree total coverage.
FIG. 9 is a flowchart of an exemplary method for scheduling communication of standard 802.11 clients and priority access clients that utilize a priority access MAC protocol, using a wireless access point. According to some embodiments, the method may include transmitting 905 a silencing signal to all clients prior to standard access phases. For example, the AP may send a CTS-to-self frame to all clients prior to initiating communications with standard access clients. The method may also include communicating 910 with standard access clients during standard access phases.
Next, the method may include transmitting 915 a silencing signal to all clients prior to priority access phases. The method may then include selectively communicating 920 with groups of priority access clients during priority access phases using the priority access MAC protocol. It will be understood that the AP may “selectively” communicate with each of the groups of priority clients by transmitting priority activation and deactivation frames as described above. Thus, the AP may communicate with each group of priority clients within a given priority access phase, while standard access clients are in, for example, an NAV mode.
It is noteworthy that the steps shown in FIG. 9 may not occur in the order specified. That is, the silencing of client devices most frequently occurs prior to allowing other client devices to contend for communication with the AP 130. Thus, standard access clients are silenced before the AP 130 communicates with clients using priority protocols, and vice-versa.
FIG. 10 illustrates an exemplary computing device 1000 that may be used to implement an embodiment of the present technology. The device 1000 of FIG. 10 may be implemented in the contexts of the likes of computing devices, such as the client devices that utilized a priority access MAC/PHY layer to communicate with an AP. The computing device 1000 of FIG. 10 includes a processor 1010 and memory 1020. Memory 1020 stores, in part, instructions and data for execution by processor 1010. Memory 1020 may store the executable code when in operation. The system 1000 of FIG. 10 further includes a mass storage device 1030, portable storage medium drive(s) 1040, output devices 1050, input devices 1060, a graphics display 1070, and peripheral device(s) 1080.
The components shown in FIG. 10 are depicted as being connected via a single bus 1090. The components may be connected through one or more data transport means. Processor 1010 and main memory 1020 may be connected via a local microprocessor bus, and the mass storage device 1030, peripheral device(s) 1080, portable storage medium drive(s) 1040, and graphics display 1070 may be connected via one or more input/output (I/O) buses.
Mass storage device 1030, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor 1010. Mass storage device 1030 may store the system software for implementing embodiments of the present invention for purposes of loading that software into main memory 1020.
Portable storage medium drive(s) 1040 operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk, digital video disc, or USB storage device, to input and output data and code to and from the computing system 1000 of FIG. 10. The system software for implementing embodiments of the present invention may be stored on such a portable medium and input to the computing device 1000 via the portable storage medium drive(s) 1040.
Input devices 1060 provide a portion of a user interface. Input devices 1060 may include an alphanumeric keypad, such as a keyboard, for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Additionally, the device 1000 as shown in FIG. 10 includes output devices 1050. Suitable output devices include speakers, printers, network interfaces, and monitors.
Graphics display 1070 may include a liquid crystal display (LCD) or other suitable display device. Graphics display 1070 receives textual and graphical information, and processes the information for output to the display device.
Peripheral device(s) 1080 may include any type of computer support device to add additional functionality to the computing system. Peripheral device(s) 1080 may include a modem or a router.
The components provided in the computing device 1000 of FIG. 10 are those typically found in computing systems that may be suitable for use with embodiments of the present invention and are intended to represent a broad category of such computer components that are well known in the art. Thus, the computing system 1000 of FIG. 10 may be a personal computer, hand held computing system, telephone, mobile computing system, workstation, server, minicomputer, mainframe computer, or any other computing system. The computer may also include different bus configurations, networked platforms, multi-processor platforms, etc. Various operating systems may be used including Unix, Linux, Windows, Macintosh OS, Palm OS, Android, iPhone OS and other suitable operating systems.
Some of the above-described functions may be composed of instructions that are stored on storage media (e.g., computer-readable medium). The instructions may be retrieved and executed by the processor. Some examples of storage media are memory devices, tapes, disks, and the like. The instructions are operational when executed by the processor to direct the processor to operate in accord with the technology. Those skilled in the art are familiar with instructions, processor(s), and storage media.
It is noteworthy that any hardware platform suitable for performing the processing described herein is suitable for use with the technology. The terms “computer-readable storage medium” and “computer-readable storage media” as used herein refer to any medium or media that participate in providing instructions to a CPU for execution. Such media can take many forms, including, but not limited to, non-volatile media, volatile media and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as a fixed disk. Volatile media include dynamic memory, such as system RAM. Transmission media include coaxial cables, copper wire and fiber optics, among others, including the wires that comprise one embodiment of a bus. Transmission media can also take the form of acoustic or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic medium, a CD-ROM disk, digital video disk (DVD), any other optical medium, any other physical medium with patterns of marks or holes, a RAM, a PROM, an EPROM, an EEPROM, a FLASHEPROM, any other memory chip or data exchange adapter, a carrier wave, or any other medium from which a computer can read.
Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to a CPU for execution. A bus carries the data to system RAM, from which a CPU retrieves and executes the instructions. The instructions received by system RAM can optionally be stored on a fixed disk either before or after execution by a CPU.
Computer program code for carrying out operations for aspects of the present technology may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present technology has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. Exemplary embodiments were chosen and described in order to best explain the principles of the present technology and its practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
Aspects of the present technology are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present technology. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. The descriptions are not intended to limit the scope of the technology to the particular forms set forth herein. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments. It should be understood that the above description is illustrative and not restrictive. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the technology as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art. The scope of the technology should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the appended claims along with their full scope of equivalents.

## Claims

1. A wireless access point, comprising:
a processor; and
a memory for storing instructions, wherein the instructions when executed by the processor cause the wireless access point to perform operations comprising:
establishing a communication schedule, the communication schedule comprising timed windows of opportunity, the timed windows of opportunity comprising standard access phases and priority access phases each with a duration, wherein the communication schedule alternates between the standard access phases and the priority access phases;
communicating with a set of standard access clients using an 802.11 mode of communication during the standard access phases; and
communicating with a set of priority access clients during the priority access phases, when the wireless access point is not communicating with the set of standard access clients, using a priority mode of communication,
wherein the wireless access point is configured to adapt bandwidths as necessary to respond to changing needs of standard access clients and priority access clients and varying usage application demands, the priority access clients being low latency and fixed.

2. The wireless access point according to claim 1, wherein the wireless access point is further configured to alternate the standard access phases with the priority access phases.

3. The wireless access point according to claim 1, wherein the instructions when executed by the processor cause the wireless access point to perform operations comprising transmitting silencing commands to both the set of standard access clients and the set of priority access clients prior to communicating with either standard access clients or priority access clients.

4. The wireless access point according to claim 3, wherein the wireless access point communicates with the set of priority access clients by transmitting a priority activation frame to the set of priority access clients to initiate communications between the set of priority access clients and the wireless access point.

5. The wireless access point according to claim 4, wherein the wireless access point awaits expiration of a virtual or physical carrier sensing period prior to transmitting one or more Clear-To-Send-to-Self frames to the set of priority access clients.

6. The wireless access point according to claim 4, wherein the instructions when executed by the processor cause the wireless access point to perform operations comprising:
determining a duration of a priority access phase; p1 setting a timer within the wireless access point if the duration of the priority access phase exceeds a virtual or physical carrier sensing period for the wireless access point;
specifying a duration for an initial Clear-To-Send-to-Self frame that is equal to the virtual or physical carrier sensing period; and
subsequently transmitting a final Clear-To-Send-to-Self frame close to expiration of the timer, the final Clear-To-Send-to-Self frame having a duration that ensures that the standard access clients remain silent until expiration of the duration of the priority access phase.

7. The wireless access point according to claim 1, wherein the instructions when executed by the processor cause the wireless access point to perform operations comprising:
dividing the set of priority access clients into client groups based upon client parameters; and
assigning group identifiers to priority access clients in the client groups such that each client group includes a group identifier and each priority access client within the client group is provided with the group identifier.

8. The wireless access point according to claim 7, wherein the instructions when executed by the processor cause the wireless access point to perform operations comprising:
loading an association context for a client group into a cache of the wireless access point;
transmitting a priority activation frame to the client group, the priority activation frame comprising the association context for the client group; and
silencing the client group using a priority deactivation frame that is sent to the client group.

9. The wireless access point according to claim 7, wherein the instructions when executed by the processor cause the wireless access point to perform operations comprising allowing each of the client groups to communicate with the wireless access point during a priority access phase using unique time periods for each client group.

10. The wireless access point according to claim 7, wherein the instructions when executed by the processor cause the wireless access point to perform operations comprising:
loading an association context for a client group into a cache of the wireless access point; and
transmitting a priority activation frame to the client group, the priority activation frame comprising the association context for the client group.

11. The wireless access point according to claim 10, wherein the priority activation frame comprises a duration that specifies a time frame during which the client group is allowed to communicate with the wireless access point.

12. The wireless access point according to claim 11, wherein after expiration of the duration for the client group, the wireless access point purges a cache of the association context for the client group and loads another association context for a different client group into the cache of the wireless access point.

13. A method of scheduling communication of standard access clients and priority access clients that utilizes a priority access media access control (“MAC”) protocol, using a wireless access point, the method comprising:
establishing a communication schedule, the communication schedule comprising timed windows of opportunity, the timed windows of opportunity comprising standard access phases and priority access phases each with a duration, wherein the communication schedule alternates between the standard access phases and the priority access phases;
transmitting a signal to silence both standard access clients and priority access clients prior to the standard access phases;
communicating with the standard access clients using an 802.11 mode of communication during the standard access phases;
transmitting a signal to silence both the standard access clients and the priority access clients prior to the priority access phases; and
communicating with the priority access clients during the priority access phases using a priority access MAC protocol,
wherein the wireless access point is configured to adapt bandwidths as necessary to respond to changing needs of the standard access clients and the priority access clients and varying usage application demands, the priority access clients being low latency and fixed.

14. The method according to claim 13, further comprising:
grouping the priority access clients into client groups based upon client parameters;
assigning a group identifier to each of the client groups; and
assigning the group identifier of a client group to each of the priority access clients in the client group.

15. The method according to claim 14, further comprising, during a priority access phase:
transmitting a priority activation frame to a client group; and
transmitting a priority deactivation frame to the client group currently communicating with the wireless access point.

16. The method according to claim 15, further comprising, during the priority access phase:
loading an association context for the client group into a cache of the wireless access point prior to transmitting the priority activation frame to the client group; and
purging the cache of the wireless access point of the association context after transmitting the priority deactivation frame to the client group.

17. The method according to claim 16, further comprising, during the priority access phase:
loading another association context for a subsequent client group into the cache of the wireless access point after transmitting the priority deactivation frame to the client group; and
transmitting a priority activation frame to the subsequent client group.

18. The method according to claim 13, further comprising:
determining a duration of a priority access phase;
setting a timer within the wireless access point if the duration of the priority access phase exceeds a virtual or physical carrier sensing period for the wireless access point;
specifying a duration for an initial Clear-To-Send-to-Self frame that is equal to the virtual or physical carrier sensing period; and
subsequently transmitting a final Clear-To-Send-to-Self frame close to expiration of the timer, the final Clear-To-Send-to-Self frame having a duration that ensures that the standard access clients remain silent until expiration of the duration of the priority access phase.

19. A node within a wireless communications network that schedules access for both standard access 802.11 clients and priority access clients to the Internet, the node comprising:
a standard 802.11 client interface for communicating with client devices using a standard 802.11 mode;
a priority media access control/physical (MAC/PHY) interface for communicating with client devices using a priority access MAC protocol;
a scheduling module that manages standard access phases and priority access phases,
wherein the standard access phases comprise time periods where the node allows only client devices using the standard 802.11 mode to communicate with the node,
wherein the priority access phases comprise time periods where the node allows only client devices using the priority access MAC protocol to communicate with the node,
wherein the scheduling module is further configured to group the priority access clients into client groups, and schedule client group transmission periods for each of the client groups during each priority access phase;
wherein the scheduling module is further configured to selectively communicate with each of the client groups individually by transmitting unique priority activation frames and unique priority deactivation frames to the client groups,
wherein a client group communicates with the node during a duration that extends between receipt of a unique priority activation frame by the client group and prior to receipt of a unique priority deactivation frame by the client group, and
wherein a wireless access point is configured to adapt bandwidths as necessary to respond to changing needs of the standard access 802.11 clients and the priority access clients and varying usage application demands, the priority access clients being low latency and fixed.

20. The node according to claim 19, wherein the scheduling module alternates between the standard access phases and the priority access phases.

21. The node according to claim 19, wherein the scheduling module sets a duration for each of the standard access phases and the priority access phases.

22. The node according to claim 21, wherein when a standard access 802.11 client is transmitting data to the node after expiration of a duration for a standard access phase, the node being configured to delay transmitting a silencing signal until the node has transmitted an acknowledgement (“Ack”) signal to the standard access 802.11 client.

23. The node according to claim 21, wherein when the node is transmitting data to a standard access 802.11 client after expiration of a duration for a standard access phase, the node is configured to delay transmitting a silencing signal until the node has received an acknowledgement (“Ack”) signal from the standard access 802.11 client.

24. The node according to claim 23, wherein the silencing signal is transmitted after expiration of a Point Coordination Function Interframe Space Frame that follows the receipt of the Ack signal from the standard access 802.11 client.

25. The wireless access point according to claim 7, wherein the set of priority access clients are divided into the client groups based upon current network traffic at the wireless access point or according to client service priority.

26. The wireless access point according to claim 7, wherein the wireless access point communicates with a priority access client group only during a priority access phase to which the priority access client group belongs, wherein the priority access client group is linked to the priority access phase using the assigned group identifier.

27. The wireless access point according to claim 7, wherein the wireless access point communicates with a first client group during a first priority access phase, and a second client group communicates with the wireless access point during a second priority access phase.

28. The wireless access point according to claim 27, further comprising:
adapting a bandwidth of the wireless access point for the first client group;
transmitting to the first client group a priority activation frame that includes a group identifier assigned to the priority access clients of the first client group, prior to communicating with the first client group;
transmitting to the first client group a priority deactivation frame that includes a group identifier assigned to the priority access clients of the first client group, prior to communicating with the first client group;
adapting the bandwidth of the wireless access point for the second client group;
transmitting to the second client group a priority activation frame that includes a group identifier assigned to the priority access clients of the second client group, prior to communicating with the second client group; and
transmitting to the second client group a priority deactivation frame that includes a group identifier assigned to the priority access clients of the second client group, prior to communicating with the second client group.

29. The wireless access point according to claim 1, wherein throughput is greater for the priority access clients than the standard access clients.

30. A method, comprising:
communicating with a set of standard access clients using an 802.11 mode of communication during a standard access phase;
prior to expiration of a timer, transmitting a first clear to send (CTS) frame to the set of standard access clients, the CTS frame comprising a network allocation vector (NAV) maximum duration;
communicating with a set of priority access clients during a priority access phase using a priority mode of communication; and
transmitting additional CTS frames with the network allocation vector (NAV) maximum duration if the priority access phase is longer than the network allocation vector (NAV) maximum duration of the first CTS frame.