Embodiments presented in this disclosure generally relate to wireless communication. More specifically, embodiments disclosed herein relate to access point coordination using dual network allocation vectors (NAVs).
Wireless networks (e.g., wireless fidelity (WiFi) networks) may use multi-access point coordination (MAPC) to improve spatial reuse efficiency. Access points in the networks are assigned to coordination groups (CGs), and then access points in a CG parallelize transmissions that would otherwise have to be scheduled serially. Existing networks use a NAV to indicate, to access points in the network, busy periods during which transmissions should be deferred. The NAV, however, may provide limited support for MAPC. For example, the NAV may cause access points in a CG to defer transmissions during a transmission opportunity (TXOP) for the CG.
So that the manner in which the above-recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate typical embodiments and are therefore not to be considered limiting; other equally effective embodiments are contemplated.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one embodiment may be beneficially used in other embodiments without specific recitation.
The present disclosure describes a network that uses dual NAVs. According to an embodiment, an apparatus includes one or more memories and one or more processors communicatively coupled to the one or more memories. A combination of the one or more processors generates a message that includes (i) a first NAV indicating a first time period and (ii) a second NAV indicating a second time period and transmits the message. The first NAV indicates to a first access point assigned to an overlapping basic service set to defer transmissions during the first time period. The second NAV indicates to a second access point assigned to a MAPC group that transmissions are allowed during the second time period.
According to another embodiment, a method includes generating, by a first access point, a message that includes (i) a first NAV indicating a first time period and (ii) a second NAV indicating a second time period. The method also includes transmitting, by the first access point, the message. The first NAV indicates to a second access point assigned to an overlapping basic service set to defer transmissions during the first time period. The second NAV indicates to a third access point assigned to a MAPC group that transmissions are allowed during the second time period.
According to another embodiment, a system includes a first access point assigned to a MAPC group and a second access point assigned to the MAPC group. The second access point generates a message that includes (i) a first NAV indicating a first time period and (ii) a second NAV indicating a second time period. The second access point also transmits the message. The first NAV indicates to access points assigned to an overlapping basic service set to defer transmissions during the first time period. The second NAV indicates to the first access point that transmissions are allowed during the second time period.
The present disclosure describes a network (e.g., a WiFi network) that uses dual NAVs to coordinate transmissions from access points that are assigned to a CG and from access points that are outside the CG (e.g., access points that are part of an overlapping basic service set (OBSS)). An access point in the CG (e.g., a leader access point) may transmit a message (e.g., a CG setup frame) that includes two NAVs, referred to as an outer NAV and an inner NAV. The outer NAV indicates to access points in an OBSS a time period when transmissions should be deferred (similar operation to existing NAVs). The inner NAV indicates to access points in the CG a time period when transmissions are allowed. The time period when the access points in the OBSS defer transmissions may partially overlap with the time period when the access points in the CG are allowed to transmit. In this manner, the access points in the CG may parallelize transmissions during a TXOP for the CG, while the access points in the OBSS defer transmissions.
In particular embodiments, the network provides several technical advantages. For example, the network provides differentiated NAV durations for access points in the CG and access points in the OBSS. As another example, the network may provide conflict free transmission scheduling for access points in the CG.
The access point 102 facilitates wireless communication (e.g., WiFi communication) in the system 100. One or more devices 104 may connect to the access point 102. The access point 102 may then facilitate wireless communication for the connected devices 104. For example, the access point 102 may transmit messages to a connected device 104. As another example, the access point 102 may receive messages transmitted by the device 104. The access point 102 may then direct that message towards its intended destination.
The device 104 may be any suitable device that wirelessly connects to the access point 102. As an example and not by way of limitation, the device 104 may be a computer, a laptop, a wireless or cellular telephone, an electronic notebook, a personal digital assistant, a tablet, or any other device capable of receiving, processing, storing, or communicating information with other components of the system 100. The device 104 may be a wearable device such as a virtual reality or augmented reality headset, a smart watch, or smart glasses. The device 104 may also include a user interface, such as a display, a microphone, keypad, or other appropriate terminal equipment usable by the user. The device 104 may include a hardware processor, memory, or circuitry configured to perform any of the functions or actions of the device 104 described herein. For example, a software application designed using software code may be stored in the memory and executed by the processor to perform the functions of the device 104.
The access points 102 may be assigned to CGs (which may also be referred to as MAPC groups). An access point 102 may be the leader of the CG and may coordinate the transmissions of the access points 102 in the CG. The access points 102 in the CG may improve spatial reuse efficiency by parallelizing their transmissions that would otherwise have to be scheduled serially. To reduce interference from access points 102 that are not in the CG, the leader access point 102 may transmit a message that includes dual NAVs. One of the NAVs, referred to as an outer NAV, may indicate a time period when access points 102 that are outside the CG (e.g., access points 102 in an OBSS) should defer transmissions. The other NAV, referred to as an inner NAV, may indicate a time period when access points 102 in the CG may transmit. The time periods indicated in the NAVs may partially overlap each other. In this manner, the access points 102 outside the CG are instructed when to defer transmissions, and the access points 102 in the CG are instructed when to transmit. Because the time periods indicated by the NAVs may partially overlap, the access points 102 outside the CG may defer transmissions to reduce interference when the access points 102 in the CG are transmitting.
The devices 104 that are associated with (e.g., connected to) the access points 102 in the CG may use the inner NAV to determine when the devices 104 should defer transmissions. The devices 104 that are associated with the access points 102 outside the CG may use the outer NAV to determine when the devices 104 should defer transmissions. For example, the devices 104 may receive the message containing the outer and inner NAVs from the leader access point 102 of the CG. The device 104 that is associated with an access point 102 in the CG may process the inner NAV to determine when to defer transmissions. The device 104 that is associated with an access point 102 outside the CG may process the outer NAV to determine when to defer transmissions.
In some embodiments, the devices 104 may signal to the access points 102 whether the devices 104 support or handle dual NAVs. For example, the devices 104 may use a subfield (e.g., a dual NAV mode subfield) in an element (e.g., the Extended Capabilities element) to indicate whether the devices 104 support the outer and inner NAVs. The devices 104 may set the subfield to a value (e.g., ‘1’) to indicate that the devices 104 support outer and inner NAVs. The access points 102 in the CG may then signal the devices 104 that are associated with those access points 102 and that support outer and inner NAVs such that those devices 104 receive both the outer and inner NAVs. For example, the access points 102, including the leader access point 102 of the CG, may generate a message containing both the outer and inner NAVs in response to receiving the subfield or element from a device 104 indicating that the device 104 supports dual NAVs. The access points 102 may then transmit the message to the device 104.
The device 104 may also track which access points 102 in the system 100 belong to the CG and which access points 102 are outside the CG. For example, the device 104 may determine from an identifier (e.g., a network identifier) of an access point 102 with which the device 104 is associated whether the access point 102 is in the CG. If yes, the device 104 may defer transmissions according to the inner NAV. If not, the device 104 may defer transmissions according to the outer NAV. As another example, the leader access point 102 of the CG may use a frame (e.g., a MAPC advertisement frame) to indicate the access points 102 in the CG. The leader access point 102 may include, in the frame, a bitmap that indicates the access points 102 assigned to the CG. The device 104 may use the bitmap to determine whether the access point 102 with which the device 104 is associated belongs to the CG. The leader access point 102 may update the bitmap as the membership in the CG changes.
In the example of
The processor 112 is any electronic circuitry, including, but not limited to one or a combination of microprocessors, microcontrollers, application specific integrated circuits (ASIC), application specific instruction set processor (ASIP), and/or state machines, that communicatively couples to the memory 114 and controls the operation of the access point 102 and/or device 104. The processor 112 may be 8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture. The processor 112 may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components. The processor 112 may include other hardware that operates software to control and process information. The processor 112 executes software stored on the memory 114 to perform any of the functions described herein. The processor 112 controls the operation and administration of the access point 102 and/or device 104 by processing information (e.g., information received from the memory 114 and radios 116). The processor 112 is not limited to a single processing device and may encompass multiple processing devices contained in the same device or computer or distributed across multiple devices or computers. The processor 112 is considered to perform a set of functions or actions if the multiple processing devices collectively perform the set of functions or actions, even if different processing devices perform different functions or actions in the set.
The memory 114 may store, either permanently or temporarily, data, operational software, or other information for the processor 112. The memory 114 may include any one or a combination of volatile or non-volatile local or remote devices suitable for storing information. For example, the memory 114 may include random access memory (RAM), read only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices. The software represents any suitable set of instructions, logic, or code embodied in a computer-readable storage medium. For example, the software may be embodied in the memory 114, a disk, a CD, or a flash drive. In particular embodiments, the software may include an application executable by the processor 112 to perform one or more of the functions described herein. The memory 114 is not limited to a single memory and may encompass multiple memories contained in the same device or computer or distributed across multiple devices or computers. The memory 114 is considered to store a set of data, operational software, or information if the multiple memories collectively store the set of data, operational software, or information, even if different memories store different portions of the data, operational software, or information in the set.
The radios 116 may communicate messages or information using different communication technologies. For example, the access point 102 and/or device 104 may use one or more of the radios 116 for WiFi communications. The access point 102 and/or device 104 may use one or more of the radios 116 to transmit messages and one or more of the radios 116 to receive messages. The access point 102 and/or device 104 may include any number of radios 116 to communicate using any number of communication technologies.
The access point 102A transmits a message 204 to coordinate transmissions in the system 100. The message 204 may be received by any component in the system 100. In the example of
The devices 104A and 104B may associate with any of the access points 102 in the system 100. In the example of
In certain embodiments, the time period 304 and the time period 308 may partially overlap. For example, the time period 304 may be contained in or partially contained in the time period 308. As a result, the access points 102 in the CG 202 may transmit during a time when the access points 102 that are outside the CG 202 are deferring transmissions. As a result, the access points 102 in the CG 202 may parallelize transmissions, while the access points 102 outside the CG 202 defer transmissions to reduce interference.
The access point 102A begins by transmitting the message 204. The access points 102B and 102C may receive the message 204. The access point 102A may transmit the message 204 at the beginning of a TXOP 402. The message 204 includes the inner NAV and the outer NAV that indicate time periods during the TXOP 402 when the access points 102 in the CG 202 should transmit and when the access points 102 outside the CG 202 should defer transmissions. In some embodiments, the access point 102A may determine that an access point 102 in the CG 202 (e.g., the access point 102A or the access point 102B) won contention for the TXOP 402, and thus, the TXOP 402 belongs to the CG 202 (and may be referred to as a MAPC TXOP). In response, the access point 102A may coordinate transmissions so that the access points 102 in the CG 202 may transmit during the TXOP 402 and so that access points 102 outside the CG 202 defer transmissions during the TXOP 402. The access point 102A generates and transmits the message 204 to coordinate transmissions in this manner.
The access point 102B processes the inner NAV in the message 204 to determine that the access point 102B is allowed to make the transmission 406 during the time period 304. The inner NAV indicates the time period 304 during the TXOP 402 when access points 102 assigned to the CG 202 may transmit. As seen in
The access point 102C processes the outer NAV in the message 204, because the access point 102C is outside the CG 202. The access point 102 processes the outer NAV to determine the time period 308 when the access point 102C should defer transmissions. As seen in
The devices 104A and 104B may signal whether the device 104A or the device 104B supports dual NAVs. Specifically, the device 104A and the device 104B may signal whether the device 104A and device 104B understand how to process different NAVs depending on whether the access points 102 with which the device 104A and the device 104B are associated belong to the CG 202 or not. In the example of
When the access point 102A determines from the signals 502 and 504 that the devices 104A and 104B support dual NAVs, the access point 102A may generate and communicate a message 506 that is received by the devices 104A and 104B. In some embodiments, the message 506 is the same as the message 204 shown in
The devices 104A and 104B may process the inner NAV or the outer NAV depending on whether the devices 104A and 104B are associated with access points 102 in the CG 202 or outside the CG 202. In the example of
In some embodiments, the device 104A may use an identifier (e.g., a network identifier) of the access point 102 with which the device 104A is associated to determine whether the access point 102 is assigned to the CG 202 or not. For example,
In block 702, the access point 102A generates a message 204. The message 204 may include an inner NAV 302 and an outer NAV 306. The inner NAV 302 indicates a time period 304 when access points 102 in the CG 202 are allowed to transmit. The outer NAV 306 indicates a time period 308 when access points 102 outside the CG 202 should defer transmissions. The time period 304 and the time period 308 may partially overlap. As a result, the access points 102 in the CG 202 are allowed to transmit when the access points 102 outside the CG 202 defer transmissions.
In block 704, the access point 102 transmits the message 204. Other access points 102 in the system 100 may receive the message 204. Some of the access points 102 may belong to the CG 202, and some of the access points 102 may be outside the CG 202. The access points 102 in the CG 202 may process the inner NAV 302 in the message 204 to determine the time period 304 when the access points 102 are allowed to transmit. The access points 102 outside the CG 202 process the outer NAV 306 to determine the time period 308 when the access points 102 should defer transmissions. In this manner, interference may be reduced when the access points 102 and the CG 202 are transmitting. Additionally, the NAVs may be used to coordinate and parallelize the transmissions of the access points 102 in the CG 202.
In summary, a network (e.g., a WiFi network) uses dual NAVs to coordinate transmissions from access points 102 that are assigned to a CG 202 and from access points 102 that are outside the CG 202 (e.g., access points 102 that are part of an overlapping basic service set (OBSS)). An access point 102 in the CG 202 (e.g., a leader access point 102) may transmit a message 204 (e.g., a CG setup frame) that includes two NAVs, referred to as an outer NAV and an inner NAV. The outer NAV indicates to access points 102 in an OBSS a time period when transmissions should be deferred (similar operation to existing NAVs). The inner NAV indicates to access points 102 in the CG 202 a time period when transmissions are allowed. The time period when the access points 102 in the OBSS defer transmissions may partially overlap with the time period when the access points 102 in the CG 202 are allowed to transmit. In this manner, the access points 102 in the CG 202 may parallelize transmissions during a TXOP for the CG 202, while the access points 102 in the OBSS defer transmissions.
In the current disclosure, reference is made to various embodiments. However, the scope of the present disclosure is not limited to specific described embodiments. Instead, any combination of the described features and elements, whether related to different embodiments or not, is contemplated to implement and practice contemplated embodiments. Additionally, when elements of the embodiments are described in the form of “at least one of A and B,” or “at least one of A or B,” it will be understood that embodiments including element A exclusively, including element B exclusively, and including element A and B are each contemplated. Furthermore, although some embodiments disclosed herein may achieve advantages over other possible solutions or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the scope of the present disclosure. Thus, the aspects, features, embodiments and advantages disclosed herein are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the invention” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s).
As will be appreciated by one skilled in the art, the embodiments disclosed herein may be embodied as a system, method or computer program product. Accordingly, embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, embodiments may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for embodiments of the present disclosure 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).
Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatuses (systems), and computer program products according to embodiments presented in this disclosure. 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 block(s) of the flowchart illustrations and/or block diagrams.
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 device 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 block(s) of the flowchart illustrations and/or block diagrams.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer, other programmable data processing apparatus, or other device provide processes for implementing the functions/acts specified in the block(s) of the flowchart illustrations and/or block diagrams.
The flowchart illustrations 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. In this regard, each block in the flowchart illustrations 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 illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, 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.
In view of the foregoing, the scope of the present disclosure is determined by the claims that follow.
This application claims benefit of co-pending U.S. provisional patent application Ser. No. 63/613,681 filed Dec. 21, 2023. The aforementioned related patent application is herein incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63613681 | Dec 2023 | US |