Patent Description:
When multiple devices within communications range of one another wirelessly communicate, the signals may be separated in time and/or frequency to allow receiving devices to differentiate individual communications. For example, the available frequencies for communications between two devices may be divided into several channels so that the two devices may transmit data at the same time in different portions of the available frequency range, and the receiving devices can identify an individual communication by filtering out data carried in undesired frequencies of the range. In another example, two devices may communicate in a shared frequency range by specifying various times that are reserved for particular communications, so that a first communication is sent during a first time window (and not during a second time window), and a second communication is sent during a second time window (and not during the first time window), so that a receiving device can identify an individual communication based on an associated time window.

<CIT> describes, according to its abstract, a method including: obtaining, by an access point AP, use permission of a channel; determining, by the AP after obtaining the use permission of the channel, scheduling information for a station STA participating in full-duplex transmission, where the scheduling information includes information about a first station that performs uplink transmission on the channel and information about a second station that performs downlink transmission on the channel at the same time, or the scheduling information includes information about a third station that simultaneously performs uplink and downlink transmission on the channel; and sending, by the AP, a trigger frame, where the trigger frame includes the scheduling information.

The invention to which the present European patent relates is defined in the appended independent claims. Further optional features are defined in the appended dependent claims.

One example useful for
understanding the invention presented in this disclosure provides a method, including: allocating a plurality of Resource Units (RU) to a plurality of connected Stations (STAs) based on communications capabilities and traffic requests corresponding to the plurality of connected STAs, wherein a first RU of the plurality of RUs is allocated to a first STA of the plurality of connected STAs as a bidirectional (BD) RU for full-duplex communications with the first STA; transmitting a generalized-trigger to the plurality of connected STAs to assign the plurality of RUs; transmitting downlink (DL) communications on DL RUs of the plurality RUs and the BD RU; and receiving uplink (UL) communications on UL RUs of the plurality of RUs and the BD RU.

One example useful for
understanding the invention presented in this disclosure provides a method, comprising: receiving an assignment of a Resource Unit (RU) for a STA indicating a time window and a frequency band for full-duplex communication between the STA and an Access Point (AP); receiving a downlink message from the AP over the frequency band of the RU during the time window; in response to waiting a predefined amount of time after beginning to receive the downlink message from the AP, transmitting an uplink message to the AP from the STA over the frequency band during a portion of the time window; and during the portion of the time window in which the uplink message is transmitted, applying, by the STA, self interference cancellation to the downlink message based on the uplink message.

One example useful for
understanding the invention presented in this disclosure provides a computer readable storage medium, including instructions that when performed by a processor of a computing device enable the computing device to: allocate a plurality of Resource Units (RU) to a plurality of connected Stations (STAs) based on communications capabilities and traffic requests corresponding to the plurality of connected STAs, wherein a first RU of the plurality of RUs is allocated to a first STA of the plurality of connected STAs as a bidirectional (BD) RU for full-duplex communications with the first STA; transmit a generalized-trigger to the plurality of connected STAs to assign the plurality of RUs; transmit downlink (DL) communications on DL RUs of the plurality RUs and the BD RU; and receive uplink (UL) communications on UL RUs of the plurality of RUs and the BD RU.

When communicating between devices, the devices may transmit messages on different channels and/or at different times to avoid collisions or interference between devices. In many wireless communications environments, such as in Wi-Fi networks (e.g., using the <NUM> family of standards maintained by the IEEE (Institute of Electrical and Electronics Engineers)), the individual devices in the environment may operate using different schemas or versions of the standards available. For example, a first device may use an older or more basic version of IEEE <NUM> (due to software or hardware constraints), whereas a second device may use a newer version (for example, a version of <NUM> with the features described herein) or more complete version of IEEE <NUM>, which offers different or additional features for communications. The present disclosure provides for mixed duplex communications among several devices, which may be using different communication standards in a shared communications environment, to enable full-duplex communications in the environment with support for legacy devices. Depending on the capabilities of the remote devices, the congestion of the signaling environment, and the needs of the remote devices, an Access Point assigns various segments of time on specific frequencies bands for communicating with selected remote devices. These time and frequency segments can be designated for uploading messages, downloading messages, or both uploading and downloading messages. The Access Point manages which segments are assigned to which devices, and manages the timing of individual transmissions within those segments to allow for error correction or signal spacing to mitigate interference.

As will be appreciated, the present disclosure references various standards, including IEEE <NUM>. 11ax, in non-limiting examples to provide context of the operations of the systems and methods disclosed herein. Accordingly, one of ordinary skill in the art will appreciate that earlier, later, and derivative (e.g., branch, experimental, proprietary) versions of the recited standards as well as unrelated or future communications standards with similar use cases may also employ the teachings provided herein.

<FIG> illustrates a shared communications environment <NUM> in which an Access Point (AP) <NUM> is in communication with four stations (STA) 120a-d (generally, STA <NUM>). An AP <NUM> may be a computing device, such as a wireless router, that provides a communications hub to various computing devices (i.e., the STA <NUM>) in the communication environment <NUM> according to one or more communications standards and the capabilities of the connected computing devices. The STAs <NUM> may be mobile or stationary computing devices (e.g., laptops, desktops, tablets, cellphones, etc.) that may selectively join or leave a Wireless Local Area Network (WLAN) provided by the AP <NUM>. The hardware of an AP <NUM> or an STA <NUM> is discussed in greater detail herein in regard to <FIG>.

Several mobile or stationary computing devices, referred to as STAs <NUM>, may be served by one AP <NUM> as a communications hub that controls what channels and/or time windows are assigned to a given STA <NUM> for various traffic requests. As used herein, a Resource Unit (RU) describes the assigned channel and time window for a given STA <NUM> in a shared communications environment <NUM>. Individual communications sent from an STA <NUM> to the AP <NUM> may be referred to as uplinks, uploads, up-communications, or the like. Individual communications sent from the AP <NUM> to a STA <NUM> may be referred to as downlinks, downloads, down-communications, or the like. A given RU may be used for Uplinks (UL) to communicate from an STA <NUM> to the AP <NUM>, for Downlinks (DL) to communicate from the AP <NUM> to the STA <NUM>, or both. The STAs 120a-d are provided to illustrate different communications modes 130a-d (generally, mode <NUM>) available with the AP <NUM>. The AP <NUM> assigns different RUs to different STAs <NUM> based on the communications capabilities and needs of the individual devices, the number of individual devices, communications standards and hardware used by the individual devices, network policies, available spectrum, and potential interference pathways <NUM>. Each of the communication modes <NUM> represents an RU assignment within a given Physical Layer Convergence Procedure (PLCP) Protocol Data Unit (PDU) (a PLCP PDU may also be referred to as a PPDU) assigned for an STA <NUM>. In various embodiments, different RU assignments to more or fewer STAs <NUM> using more or fewer RUs in different modes are contemplated. Accordingly, the communication modes <NUM> shown in <FIG> represent one RU assignment at a given time, and different assignments may be used at different times. The RU term used herein includes the RU defined in <NUM>. 11ax, but is not intended to exclude other embodiments that confine the transmitted power to a subset of the frequency domain.

In the illustrated RU assignment, the first STA 120a is assigned a DL RU, which the AP <NUM> uses to download data to the first STA 120a via a DL mode 130a. The second STA 120b is assigned a UL RU, which the second STA 120b uses to upload data to the AP <NUM> via a UL mode 130b. The third STA 120c is assigned two RUs - one UL RU and one DL RU - that the third STA 120c and the AP <NUM> respectively use to transmit data to the other within the same time period, but on different RU via a dual half-duplex mode 130c. The fourth STA 120d is assigned one bidirectional (BD) RU that is used for both UL and DL during the same time period, allowing the fourth STA 120d to be in full-duplex mode 130d with the AP <NUM>; providing concurrent UL and DL communications on a single channel. Accordingly, an STA <NUM> assigned solely UL RUs or solely DL RUs may be referred to as being in half-duplex communication with the AP <NUM>, an STA <NUM> assigned at least one UL RU and at least one DL RU may be referred to as being in dual half-duplex communication with the AP <NUM>, and an STA <NUM> with at least one BD RU may be referred to as being in full-duplex communication with the AP <NUM>.

At a different time, the AP <NUM> may reassign the STAs <NUM> different types or numbers of RUs, which affect the communication mode <NUM> of the associated STA <NUM>. For example, at a later time, the AP <NUM> may assign the first STA 120a a UL RU to place the first STA 120a in UL mode 130b. In another example, the AP <NUM> may assign the third STA 120c one UL RU and one DL RU to remain in dual half-duplex mode 130c. In yet another example, the AP <NUM> may assign the third STA 120c two DL RUs in one time period to be in downlink communication mode 130a via two channels. In a further example, the AP <NUM> may assign the fourth STA 120d two RUs, one BD and one UL, to place the fourth STA 120d in full-duplex mode 130d. Accordingly, the AP <NUM> may assign one or more RUs to each STA <NUM> in a given PPDU, and depending on the DL, UL, or BD assignment of the RU, the communications mode <NUM> of the STA <NUM> may be different in any given PPDU than a prior or subsequent PPDU. When at least one RU is used for bidirectional communications, the STA <NUM> is considered to be in full-duplex mode 130d, regardless of the assignment of the other RUs for that STA <NUM>.

<FIG> illustrates a Transmit Opportunity (TXOP) <NUM>, including two PPDUs <NUM>, according to embodiments of the present disclosure. In a time and frequency (or wavelength) divided multiplexed communication environment, different frequency bands are used during different time periods for specific purposes. As illustrated, a first PPDU 240a (generally, PPDU <NUM>) occupies a first time division from t<NUM>-t<NUM> ,and a second PPDU 240b occupies a second time division from t<NUM>-t<NUM>.

In the first PPDU 240a, a first time period from times t<NUM>-t<NUM> is reserved for a first preamble 210a (generally, preamble <NUM>) or other broadcast related content across the available spectrum from frequencies f<NUM> to f<NUM>. In a second time period from time t<NUM>-t<NUM>, four RUs 220a-d (generally, RU <NUM>) are assigned in different frequency divisions (e.g., f<NUM>-f<NUM>, f<NUM>-f<NUM>, f<NUM>-f<NUM>, and f<NUM>-f<NUM>) of the available spectrum. Each RU <NUM> may be assigned to one or more different STAs <NUM> for uplink, downlink, or bi-directional communications. The third time period from t<NUM>-t<NUM> is reserved for a first inter-frame space (IFS) 230a (generally, IFS <NUM>). The IFS <NUM> may include Short Inter-frame Spaces, (SIFS), Distributed Coordination Function (DCF) Inter-frame Spaces, (DIFS), Arbitration Inter-frame Spaces (AIFS), and the like which provide a period of time for the various devices (i.e., the AP <NUM> and STAs <NUM>) to process the associated PPDU <NUM> before sending or receiving a subsequent PPDU <NUM>, or to perform network optimization and management tasks.

The second PPDU 240b includes an associated second preamble 210b, second set of RUs 220e-h, and second IFS 230b, and subsequent PPDUs <NUM> include similar associated elements. The RUs 220e-h in the second PPDU 240b, however, are not necessarily assigned for the same mode of communication (i.e., UL, DL or BD) or STA <NUM> as the RUs 220a-d in the corresponding frequency band from the first PPDU 240a. For example, in the frequency division of f<NUM>-f<NUM>, the AP <NUM> may assign the first RU 220a for a DL mode 130a to a first STA 110a, and the fifth RU 220e for a UL mode 130b to the first STA 120a. Continuing the example, the AP <NUM> may assign a second STA 120b the second RU 220b for an UL mode 130b and the eighth RU <NUM> for a UL mode 130b. The AP <NUM> may assign no RUs <NUM> to a third STA 120c from the first PPDU 240a, but the fifth RU 220f from the second PPDU 240b. The AP may also assign a fourth STA 120d the third RU 220c and the fourth RU 220d for UL and DL respectively to operate in dual half-duplex mode 130c during the first PPDU 240a, and the seventh RU <NUM> to operate in full-duplex mode 130d during the second PPDU 240b.

In some embodiments, the AP <NUM> organizes transmissions into a two-PPDU set, in which the RUs <NUM> of the first PPDU 240a are primarily used for uplink communications, and in which the RUs <NUM> of the second PPDU 240b are primarily used for downlink communications. In such embodiments, the AP <NUM> assigns a given RU <NUM> in a given PPDU <NUM> for the opposite downlink/uplink classification by treating the given RU <NUM> as a BD RU <NUM>. The given STA <NUM> in this example may use the reassigned BD RU <NUM> for one of UL, DL, or BD communications depending on the data queued on the given STA <NUM>. This reassignment allows the associated STA <NUM>, if capable, to transmit or receive high-priority data out of sequence, or at a higher data rate, while allowing other STAs <NUM> to process data at a different standardized rate.

As will be appreciated, different communications standards impose different timing and frequency requirements, and <FIG> is provided to illustrate concepts of the present disclosure that are generally applicable across standards and use cases. In practice, the frequency bands and time periods used by APs <NUM> and STAs <NUM> may be unevenly spaced, include gaps between time periods, include padding between frequency bands, include additional PPDU elements (e.g., acknowledgment messages, clear to send messages), include unassigned RUs <NUM>, include more or fewer RUs <NUM>, etc..

<FIG> is a flowchart of a method <NUM> for an AP <NUM> to manage communications with STAs <NUM>, according to embodiments of the present disclosure. Method <NUM> may be understood in conjunction with the AP timelines <NUM> in <FIG> and <FIG>. Method <NUM> begins with block <NUM>, where the AP <NUM> identifies STAs <NUM> served by the AP <NUM> and the capabilities of those STAs <NUM>. In various embodiments, different connected STAs <NUM> may have more or fewer antennas, different processing speeds, different queue sizes in memory, run different versions of operating or application software, or have different user preferences that specify or define how the STA <NUM> is able to communicate with the AP <NUM>. For example, the AP <NUM> may identify that n STA <NUM> are connected to the AP <NUM> for communication at a given time, and that n-m of those connected STAs <NUM> are capable of full-duplex communications in a given PPDU. As will be appreciated, the capabilities of a given STA <NUM> may vary across time (and PPDUs) as the signal to noise ratio (SNR), number of connected STAs <NUM>, queue lengths associated with the given STA <NUM>, etc. For example, a STA <NUM> with a low SNR may initially be identified as incapable of full-duplex communications, but when the SNR increases, may be re-identified as capable of full-duplex communications based on an SNR threshold.

At block <NUM>, the AP <NUM> creates virtual STAs for scheduling Quality of Service (QoS) priorities for the connected STAs <NUM> capable of full-duplex communications. In various embodiments, certain communications or STAs <NUM> may be prioritized to improve the QoS for a given service or user. For example, real-time video protocols may be assigned an improved QoS relative to messages sent via another protocol, or an employee user STA <NUM> may be assigned QoS priority over a guest user STA <NUM>. The virtual STAs are created for RU assignment in conjunction with scheduling communications with the actual device; effectively allowing a full-duplex capable STA <NUM> to be scheduled at twice the rate of UL/DL as a non-full-duplex capable device. When the STA <NUM> has a pending UL, the associated virtual STA is placed in queue to be scheduled for DL so that the full-duplex capable STA <NUM> can be scheduled for a DL RU and take advantage of that DL RU to upload QoS priority content (and vice versa). QoS assignment is discussed in greater detail in regard to <FIG>.

At block <NUM>, the AP <NUM> allocates RUs in the given PPDU to the connected STAs <NUM> for UL, DL, or BD transfer of data between the AP <NUM> and the individual devices. A given STA <NUM> may be scheduled for an RU based on a communications backlog (e.g., a number of communications queued for transmission to or from the AP <NUM>), a length of time since last communication, a number of competing STAs <NUM> for a given set of RUs within a time period, channel conditions, a promised speed of uplink/downlink, and the like, which the AP <NUM> balances to determine which STAs <NUM> are assigned one or more RUs within a given PPDU.

In various embodiments, the AP <NUM> determines which STAs <NUM> are assigned an RU on a particular frequency band to avoid assigning STAs <NUM> in physical proximity to one another RUs on adjacent or nearby frequency bands. For example, if a first STA 120a is assigned an RU in a frequency band of a-b MHz (Megahertz) and a second STA 120b is assigned an RU in a frequency band of b-c MHz, device impairments of various sorts may result in signal leakage and interference between the two STAs <NUM>. Instead, the AP <NUM> may identify STAs <NUM> located within interfering distance of one another, such as is described in greater detail in regard to <FIG>, and assign neighboring STAs <NUM> non-neighboring RUs, using time or frequency distances to avoid interference between the neighboring devices.

At block <NUM>, the AP <NUM> transmits a generalized trigger message (for example, basic trigger message of <NUM>. 11ax enhanced to indicate DL resource allocation in addition to UL resource allocation, or High Efficiency Signal-B (HE-SIG-B) of DL MU PPDU enhanced to carry UL resource allocation in addition to DL resource allocation), for the PPDU that indicates to the connected STAs <NUM> which RUs have been assigned to which devices for half duplex, dual-half duplex or full-duplex communication. The AP <NUM> transmits this generalized trigger message in the same way as a trigger message is sent in the <NUM>. 11ax systems. Within the present PPDU, the trigger is transmitted between time t<NUM> and t<NUM> according to the AP timeline <NUM> in <FIG> and <FIG>.

At block <NUM>, the AP <NUM> transmits DL messages to the STAs <NUM> assigned DL RUs and receives UL messages from the STAs <NUM> assigned UL RUs, including UL and/or DL messages received on BD RUs assigned to full-duplex devices. As illustrated in <FIG> and <FIG>, the AP <NUM> begins transmitting DL messages to the connected STAs <NUM> before the connected STAs <NUM> begin transmitting (and the AP <NUM> begins to receive) the UL messages. The delay between transmission of DL and UL messages (e.g., Δ(t<NUM>, t<NUM>) in <FIG> or Δ(t<NUM>, t<NUM>) in <FIG>) is provided to reduce collisions within the preamble where legacy or non-full-duplex-capable STAs <NUM> learn which RUs are associated with DL traffic for those STAs <NUM>, and to enable the AP <NUM> (and full-duplex capable STA <NUM>) to initialize and perform Self Interference Cancellation (SIC) algorithms based on UL/DL transmissions carried on the same channel. For example, this delay could be equal to or greater than the time an STA <NUM> takes to process a field within the Physical Layer Convergence Procedure (PLCP) Protocol Data Unit (PDU) (a PLCP PDU may also be referred to as a PPDU), such as, for example, a High Efficiency Signal B (HE-SIG-B) field of a packet header defined in a wireless communications standard, such as, for example IEEE <NUM>.

At block <NUM>, the AP <NUM> performs PPDU conclusion activities, such as sending or receiving acknowledgement (ACK) messages (or a Block Acknowledgement (BA)), and waits for the appropriate IFS, such as an SIFS if the TXOP continues or a DIFS or AIFS if the TXOP does not continue. Method <NUM> may then return to block <NUM> for the AP <NUM> to identify the connected STAs <NUM> available and ready for communicating with the AP <NUM> and the capabilities of those devices.

<FIG> is a flowchart of a method <NUM> for half-duplex or dual-half-duplex communications from an STA <NUM> to an AP <NUM>, according to embodiments of the present disclosure. Method <NUM> may be understood in conjunction with the uplink station timelines <NUM>, downlink station timelines <NUM>, and dual-half-duplex station timelines <NUM> in <FIG> and <FIG>. Method <NUM> begins with block <NUM>, where the STA <NUM> receives a generalized trigger, which may be any of the following: a <NUM>. 11ax trigger frame, a <NUM>. 11ax basic trigger frame enhanced to carry DL resource information in addition to UL resource information, a trigger frame according to a specification that carries UL and DL resource information, a generalized trigger frame, an HESIGB field, a generalized SIG field to schedule UL and/or DL transmissions and associated RU assignments. In various embodiments, the AP <NUM> can assign one or more RUs in a given PPDU to the STA <NUM>, and the STA <NUM> may perform several instances of method <NUM> or method <NUM> (discussed in relation to <FIG>) in parallel depending on the assigned RUs. Within the present PPDU, the generalized-trigger received between time t<NUM> and t<NUM> according to the STA UL timeline <NUM>, STA DL timeline <NUM>, and STA HD timeline <NUM> in <FIG> and <FIG>. If the STA <NUM> is not assigned an RU for the given PPDU, method <NUM> may proceed to block <NUM> to wait for the next PPDU.

At block <NUM>, the STA <NUM> optionally sends a Clear To Send (CTS) message, (also referred to as a Clear to Transmit Signal) to the AP <NUM> (e.g., as per the IEEE <NUM>. 11ax specification). In some embodiments using a CTS message, the STA <NUM> sends the CTS message from times t<NUM>-t<NUM> according to <FIG>, in response to receiving and decoding a generalized-trigger in times t<NUM>-t<NUM> that includes a Single Unit or Multiple Unit Ready To Send (RTS) message. Here, DL and UL resources can be decoded from the HE-SIG-B part of the PPDU that follows the CTS message where HE-SIG-B indicates UL resource allocation in addition to DL resource allocation. In various embodiments, the AP <NUM> may send second a supplemental trigger in response to receiving the CTS response (e.g., after time t<NUM> and before time t<NUM> or as a preamble or other field in the DL message sent from time t<NUM>-t<NUM>). In this embodiment, UL as well as DL resources can be assigned in this supplemental trigger message.

At block <NUM>, the STA <NUM> determines whether the assigned RU is for uplink communications to the AP <NUM>, or for downlink communications from the AP <NUM>. When the STA <NUM> is assigned a DL RU, method <NUM> proceeds to block <NUM>. When the STA is assigned an UL RU, method <NUM> proceeds to block <NUM>. When the STA <NUM> is assigned at least one DL RU and at least one UL RU, method <NUM> proceeds to blocks <NUM> and <NUM> for the respective RUs. As illustrated in <FIG> and <FIG>, although a given STA <NUM> may process blocks <NUM> and <NUM> in parallel, the STA <NUM> delays beginning to perform the actions in block <NUM> for a predefined amount of time after beginning to perform the actions in block <NUM>.

At block <NUM>, the STA <NUM> begins receiving the DL message on the assigned RU from the AP <NUM>, and at block <NUM>, when the DL message has been received from the AP <NUM>, the STA <NUM> transmits a response to acknowledge receipt of the DL message. Method <NUM> proceeds to block <NUM> from block <NUM>.

At block <NUM>, the STA <NUM> begins sending the UL message on the assigned RU to the AP <NUM> (e.g., from time t<NUM>-t<NUM> in <FIG> and from time t<NUM>-t<NUM> in <FIG>). At block <NUM> the AP <NUM> transmits, and the STA <NUM> receives an ACK message for the receipt of the UL message. Method <NUM> proceeds to block <NUM> from block <NUM>.

At block <NUM>, the STA <NUM> waits for the next RU cycle (e.g., for a SIFS, a time gap where another type of transmission, such as for a legacy STA <NUM>, can take place, and/or a subsequent TXOP), and method <NUM> returns to block <NUM> for the next PPDU to begin.

<FIG> is a flowchart of a method <NUM> for full-duplex communications from an STA <NUM> to an AP <NUM>, according to embodiments of the present disclosure. Method <NUM> may be understood in conjunction with the full-duplex station timelines <NUM> in <FIG> and <FIG>. From the perspective of the AP <NUM>, method <NUM> may occur substantially simultaneously (accounting for transmission delays) with method <NUM>. Method <NUM> begins with block <NUM>, where the STA <NUM> receives an RU assignment for a BD RU. In various embodiments, the AP <NUM> can assign one or more RUs in a given PPDU to the STA <NUM>, and the STA <NUM> may perform several instances of method <NUM> (discussed in relation to <FIG>) or method <NUM> in parallel depending on the assigned RUs. Within the present PPDU, the trigger is received between time t<NUM> and t<NUM> according to the STA UL timeline <NUM>, STA DL timeline <NUM>, and STA HD timeline <NUM> in <FIG> and <FIG>. If the STA <NUM> is not assigned an RU for the given PPDU, method <NUM> may proceed to block <NUM> to wait for the next PPDU.

At block <NUM>, the STA <NUM> optionally sends a Clear To Send (CTS) message to the AP <NUM> (e.g., as per the IEEE <NUM>. 11ax specification). In some embodiments using a CTS message, the STA <NUM> sends the CTS message from times t<NUM>-t<NUM> according to <FIG>, in response to receiving and decoding a generalized-trigger in times t<NUM>-t<NUM> that includes a Single Unit or Multiple Unit Ready To Send (RTS) message. In various embodiments, the AP <NUM> may send second a supplemental trigger in response to receiving the CTS response (e.g., after time t<NUM> and before time t<NUM> or as a preamble or other field in the DL message sent from time t<NUM>-t<NUM>). In various embodiments, the DL RUs are assigned in the HE-SIG-B part of HE MU PPDU or in the supplemental trigger, and the UL RUs are assigned in the supplemental trigger.

At block <NUM>, the STA <NUM> receives DL messages from the AP <NUM> on a given RU. In embodiments not using a CTS message (per block <NUM>), the STA <NUM> receives the DL messages beginning at time t<NUM> according to <FIG>. In embodiments using a CTS message, the STA <NUM> receives the DL messages beginning at time t<NUM> according to <FIG>.

At block <NUM>, the STA <NUM> transmits UL messages to the AP <NUM> on the same RU as which the DL messages are received per block <NUM>. In embodiments not using a CTS message (per block <NUM>), the STA <NUM> transmits the UL messages beginning at time t<NUM> according to <FIG>. In embodiments using a CTS message, the STA <NUM> receives the DL messages beginning at time t<NUM> according to <FIG>.

At block <NUM>, the STA <NUM> applies a SIC protocol or algorithm to the received DL message to correct any interference introduced in the channel by transmitting the UL message in the same frequency band as the DL message. The STA <NUM> may apply SIC at or before beginning to transmit the UL message and may apply SIC until the DL message is fully received or the UL message is fully transmitted.

At block <NUM>, the STA <NUM> after having completed transmission of the UL message and receipt of the DL message, transmit an ACK message to acknowledge receipt of the DL message to the AP <NUM>. At block <NUM>, the STA <NUM> receives acknowledgement of the receipt of the UL message by the AP <NUM>.

At block <NUM>, the STA <NUM> waits for the next RU cycle (e.g., for a SIFS), and method <NUM> returns to block <NUM> for the next PPDU to begin.

<FIG> and <FIG> illustrate timing charts of various communications within a PPDU between APs <NUM> and STAs <NUM>, according to embodiments of the present disclosure. Although the timing charts in <FIG> and <FIG> include a different number to times tx, the timing charts may describe the same period of time, albeit with more or fewer divisions therein. Additionally, the illustrated distance between any two indicated times is not necessarily to scale of the distance indicated to another set of indicated times.

<FIG> illustrates a first timing chart 600a running from time t<NUM> to time t<NUM> and including an AP timeline <NUM> indicating actions performed by an AP <NUM>, an STA UL timeline <NUM> indicating actions performed by an STA <NUM> in UL mode 130b, an STA DL timeline <NUM> indicating actions performed by an STA <NUM> in DL mode 130a, an STA HD timeline <NUM> indicating actions performed by an STA <NUM> in dual-half-duplex mode 130c, and an STA FD timeline <NUM> indicating actions performed by an STA <NUM> in full-duplex mode 130d.

In the first timing chart 600a, the AP <NUM> sends a generalized trigger message from time t<NUM>-t<NUM> indicating what (DL and/or UL) RUs have been assigned to the STAs <NUM>. The AP <NUM> begins sending DL communications to the STAs <NUM> in DL, dual-half-duplex, or full-duplex modes <NUM> from time t<NUM>-t<NUM> in the assigned RUs. At time t<NUM>, after a delay of a predefined length from time t<NUM>, the STAs <NUM> in UL, dual-half-duplex, and full-duplex modes <NUM> begin to send UL messages to the AP <NUM> in the assigned RUs. From time t<NUM>-t<NUM>, the STAs <NUM> in dual-half-duplex or full-duplex mode perform SIC on the received DL communications based on the UL messages transmitted by those STAs <NUM> in a shared BD RU, and the AP <NUM> may also perform SIC on received UL communications. From time t<NUM>-t<NUM>, the AP <NUM> and the STAs <NUM>, regardless of communication mode <NUM> send acknowledgement messages for completion of the PPDU.

<FIG> illustrates a second timing chart 600b running from time t<NUM> to time t<NUM> and including an AP timeline <NUM> indicating actions performed by an AP <NUM>, an STA UL timeline <NUM> indicating actions performed by an STA <NUM> in UL mode 130b, an STA DL timeline <NUM> indicating actions performed by an STA <NUM> in DL mode 130a, an STA HD timeline <NUM> indicating actions performed by an STA <NUM> in dual-half-duplex mode 130c, and an STA FD timeline <NUM> indicating actions performed by an STA <NUM> in full-duplex mode 130d.

In the second timing chart 600b, the AP <NUM> sends a generalized trigger message from time t<NUM>-t<NUM> requesting that the STAs <NUM> respond with a CTS response. In one embodiment, DL and UL resources assigned to various STAs <NUM> are indicated in the HE-SIG-B field of the HE MU PPDU whose transmission starts at t<NUM>. After the STAs <NUM> respond with a CTS response at time t<NUM>-t<NUM>, the AP <NUM> may wait for a predefined time, (e.g., an SIFS from time t<NUM>-t<NUM>) before sending a DL communication to the STAs <NUM> from time t<NUM>-t<NUM>. In some embodiments, an initial portion of the DL communication (e.g., an HE Multi- User (MU) PPDU) includes DL RU allocation information for the STAs <NUM>, while in other embodiments, the trigger message includes UL RU allocation information. When the DL RU allocation information is included in the initial portion of a DL communication, each STA <NUM> decodes the DL RU allocation information at time t<NUM>-t<NUM>, and determines whether any of the RUs have been assigned to that STA <NUM>. In various embodiments, when one RU is allocated as both an UL RU (e.g., in the trigger message) and as a DL RU (e.g., in the HE MU PPDU), the STA <NUM> to which the shared RU is assigned may use the shared RU for full-duplex communications, UL communications, or DL communications, depending on the needs and queued communications on that STA <NUM>. The AP <NUM> begins sending DL communications to the STAs <NUM> in DL, dual-half-duplex, or full-duplex modes <NUM> from time t<NUM>-t<NUM> in the assigned RUs. At time ts, after a delay of a predefined length from time t<NUM>, the STAs <NUM> in UL, dual-half-duplex, and full-duplex modes <NUM> begin to send UL messages to the AP <NUM> in the assigned RUs. From time t<NUM>-t<NUM>, the STAs <NUM> in full-duplex mode 130d perform SIC on the received DL communications based on the UL messages transmitted by those STAs <NUM> in a shared BD RU, and the AP <NUM> may also perform SIC on received UL communications. From time t<NUM>-t<NUM>, the AP <NUM> and the STAs <NUM> that received DL communications send acknowledgement messages for the received communications.

<FIG> is a flowchart of a method <NUM> for QoS rescheduling via full-duplex communications, according to embodiments of the present disclosure. Method <NUM> begins with block <NUM>, where the AP <NUM> identifies STA traffic with QoS priority outside of the UL/DL schedule for the AP <NUM>. In some embodiments, an AP <NUM> may generally schedule UL and DL traffic in different time windows (e.g., ULs at time t<NUM>, DL at time t<NUM>, ULs at time t<NUM>, etc.), but some STAs <NUM> may be entitled to send or receive QoS prioritized traffic outside of the general schedule - to send UL data during a DL period or to receive DL data during an UL period. In various embodiments, specific traffic may be entitled to QoS prioritization based on the application sending/receiving the traffic, the encapsulation format or type of the traffic (e.g., Transmission Control Protocol (TCP) versus User Datagram Protocol (UDP) traffic), the identity of the STA <NUM> (e.g., an employee STA <NUM> versus a guest STA <NUM> on a network), or the like.

At block <NUM>, the AP <NUM> identifies whether a source/destination STA <NUM> for priority traffic is capable of full-duplex communications, and, if so, method <NUM> proceeds to block <NUM>. If a STA <NUM> identified as a source or destination for QoS priority traffic is not capable of full-duplex communications, method <NUM> may end, and the AP <NUM> will attempt to prioritize communications for the prioritized traffic via one-directional RU communications (e.g., half-duplex or dual-half-duplex assignment of RUs).

At block <NUM>, the AP <NUM> determines whether the QoS traffic is scheduled for uplink from the STA <NUM> or downlink to the STA <NUM>.

When the QoS prioritized traffic is scheduled for uplink from the STA <NUM>, method <NUM> proceeds to block <NUM>, where the AP <NUM> creates a virtual STA corresponding to the STA <NUM> requesting uplink priority, where the virtual STA is placed in queue to request downlink priority. For example, consider a first STA 120a that has QoS priority UL data to second to the AP <NUM> and a second STA 120b that has QoS priority DL data to receive from the AP <NUM>, both while the AP <NUM> is scheduled to run downlink scheduling and assign DL RUs. The AP <NUM> may schedule the second STA 120b as normal in downlink scheduling, but creates a virtual STA to represent the first STA 120a and schedules the virtual device as part of downlink scheduling with the other devices (actual or virtual) requesting DL RUs. The virtual STA may be assigned or not assigned an RU based on the relative scheduling priorities of all of the devices (virtual or actual) requesting a DL RU during downlink scheduling.

When the QoS prioritized traffic is scheduled for downlink to the STA <NUM>, method <NUM> proceeds to block <NUM>, where the AP <NUM> creates a virtual STA corresponding to the STA <NUM> requesting downlink priority, where the virtual STA is placed in queue to request uplink priority. For example, consider a first STA 120a that has QoS priority DL data to receive from the AP <NUM> and a second STA 120b that has QoS priority UL data to send to the AP <NUM>, both while the AP <NUM> is scheduled to run uplink scheduling and assign UL RUs. The AP <NUM> may schedule the second STA 120b as normal in uplink scheduling, but creates a virtual STA to represent the first STA 120a and schedules the virtual STA as part of uplink scheduling with the other devices (actual or virtual) requesting UL RUs. The virtual STA may be assigned or not assigned an RU based on the relative scheduling priorities of all of the devices (virtual or actual) requesting an UL RU during uplink scheduling.

At block <NUM>, the AP <NUM> determines whether an RU has been assigned to the virtual STA. If no RU was assigned to the virtual STA, method <NUM> may conclude. If an RU was assigned to the virtual STA, method <NUM> proceeds to block <NUM>.

At block <NUM>, the AP <NUM> assigns the RU assigned to the virtual STA to the associated STA <NUM> and treats the assigned RU as a full-duplex RU. For example, in a transmission scheme using a two-PPDU set in which RUs in the first PPDU are nominally scheduled for uplinks and RUs in the second PPDU are nominally scheduled for downlinks, a virtual STA can be assigned an UL RU in the first PPDU or a DL RU in the second PPDU. The STA <NUM> associated with the virtual STA then uses the assigned UL RU or DL RU as a BD RU; allowing the STA <NUM> to download during the first PPDU or upload during the second PPDU for QoS enhancement. As will be appreciated, in addition to the QoS prioritized traffic carried outside of the nominal direction of traffic, the STA <NUM> may also include any additional traffic in the nominal direction as part of the full-duplex communications offered by the BD RU.

<FIG> is a flowchart of a method <NUM> for interference pathway identification for RU allocation, according to embodiments of the present disclosure. Method <NUM> begins at block <NUM>, where the AP <NUM> issues a sounding command to the STA <NUM> within range of the AP <NUM>. Each STA <NUM> that receives the sounding command within a predefined SNR threshold, power threshold (e.g., at least x Watts), or the like, responds to the sounding command indicating that the given STA <NUM> is in the operational range of the AP <NUM> that transmitted the sounding command.

At block <NUM>, the AP <NUM> receives sounding responses from the STAs <NUM> within the operational range of the AP <NUM>. The sounding responses may indicate a received power level and/or SNR of the sounding command as received by the associated STAs as well as other information identifying the STAs and the capabilities or locations thereof.

At block <NUM>, the AP <NUM> receives sounding feedback from the STAs <NUM>. In addition to the AP <NUM> receiving the sounding responses (per block <NUM>), the STAs <NUM> may also receive the sounding responses transmitted back to the AP <NUM> from other STAs <NUM>. Each STA <NUM> formats a sounding feedback that identifies the other STAs <NUM> whose sounding responses were received by the given STA <NUM> of at least a given SNR or power level, which defines a list of STAs <NUM> that neighbor the given STA <NUM>. Each STA <NUM> transmits a list of the identities of the neighboring STAs <NUM> for the given STA <NUM> to the AP <NUM> in the sounding feedback.

At block <NUM>, the AP <NUM> identifies which STAs <NUM> are neighbors or otherwise located in a signal path between one another and the AP <NUM> based on the received sounding feedback that identifies which STAs <NUM> were able to receive the sounding response from other STAs <NUM>. Accordingly, the AP <NUM> determines that an interference pathway <NUM> would exist between the neighboring STAs <NUM> if adjacent RUs are used for full-duplex communications. Using the identification of the potential interference pathways <NUM>, the AP <NUM> mitigates the risk of interference between two or more STAs <NUM> by either assigning non-neighboring RUs to the two or more STAs <NUM> or disabling full-duplex communications for at least one of the neighboring STAs <NUM> in a given PPDU.

For example, consider a first STA 120a and a second STA 120b that are both capable of full-duplex communications and are determined to be neighbors that are capable of causing interference on the transmitted or received signals of the other. The AP <NUM> in this example may assign RUs in a first PPDU such that only the first STA 120a is permitted to communicate in full-duplex mode 130d, and the second STA 120b is not assigned an RU or assigned RUs for half-duplex or dual-half-duplex communications during the first PPDU. The AP <NUM> may then assign RUs in a subsequent PPDU (i.e., at a later time) such that only the second STA 120b is permitted to communicate in full-duplex mode 130d, and the first STA 120a is not assigned an RU or assigned RUs for half-duplex or dual-half-duplex communications during the first PPDU. Alternatively, the AP <NUM> may assign both the first STA 120a and the second STA 120b RUs in the same PPDU that are separated by at least one intervening frequency band. For example, an AP <NUM> with RUs in three frequency bands of a-b MHz, b-c MHz, and c-d MHz can avoid assigning the middle frequency bands of b-c MHz to either the first STA 120a or the second STA 120b (e.g., not assigning that channel or assigning that channel to a third STA 120c) in the same PPDU, and thus mitigate the interference of the two neighboring STA <NUM> on one another for full-duplex communications in the frequency bands of a-b MHz and c-d MHz.

Method <NUM> may conclude after block <NUM>, and the AP <NUM> may perform a subsequent iteration of method <NUM> based on one or more of an elapsed predefined period of time (e.g., every s seconds), in response to a new STA <NUM> connecting to the AP <NUM>, in response to a STA <NUM> disconnecting from the AP <NUM> (e.g., a handoff to another AP <NUM>, a logoff), in response to a predefined number of dropped or re-requested frame transmissions occurring within a time period, a user request, the location of a given STA <NUM> changing by a predefined distance, etc..

<FIG> illustrates a computing device <NUM>, as may be used as an AP or STA, according to embodiments of the present disclosure. The computing device <NUM> includes a processor <NUM>, a memory <NUM>, and communication interfaces <NUM>. The processor <NUM> may be any processing element capable of performing the functions described herein. The processor <NUM> represents a single processor, multiple processors, a processor with multiple cores, and combinations thereof. The communication interfaces <NUM> facilitate communication between the computing device <NUM> and other devices. The communications interfaces <NUM> are representative of wireless communications antennas and various wired communication ports. The memory <NUM> may be either volatile or non-volatile memory and include RAM, flash, cache, disk drives, and other memory storage devices. Although shown as a single entity, the memory <NUM> may be divided into different memory storage elements such as RAM and one or more hard disk drives.

As shown, the memory <NUM> includes various instructions that are executable by the processor <NUM> to provide an operating system <NUM> to manage various functions of the computing device <NUM> and one or more applications <NUM> to provide various functionalities to users of the computing device <NUM>, which include one or more of the functions and functionalities described in the present disclosure. Additionally, the memory <NUM> includes one or more outbound queues <NUM> containing data to be transmitted to other devices via the communication interfaces <NUM> and one or more inbound queues <NUM> that contain data received from other devices via the communication interfaces <NUM> and are being held for processing by the operating system <NUM> and/or the application <NUM>.

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," 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).

Claim 1:
A method, comprising:
identifying (<NUM>) traffic with Quality of Service, QoS, priority for a first station, STA, 120a of a plurality connected STAs;
in response to determining that the first STA is capable of full-duplex communication, creating (<NUM>) a virtual STA device associated with the first STA;
allocating (<NUM>) a plurality of Resource Units, RU, to the plurality of connected STAs based on communications capabilities and traffic requests corresponding to the plurality of connected STAs, wherein a first RU of the plurality of RUs is allocated to a first STA of the plurality of connected STAs as a downlink, DL, RU, and a second RU of the plurality of RUs is allocated to the virtual device as an uplink, UL, RU;
re-assigning the second RU from the virtual device to the first STA as a bidirectional, BD, RU for full-duplex communications with the first STA;
transmitting (<NUM>) a generalized-trigger to the plurality of connected STAs to assign the plurality of RUs;
transmitting (<NUM>) downlink, DL, communications on DL RUs of the plurality RUs and the second RU; and
receiving (<NUM>) uplink, UL, communications on UL RUs of the plurality of RUs and the second RU.