Patent Description:
The present disclosure relates generally to low latency wireless communications.

In computer networking, a wireless Access Point (AP) is a networking hardware device that allows a Wi-Fi compatible client device to connect to a wired network and to other client devices. The AP usually connects to a router (directly or indirectly via a wired network) as a standalone device, but it can also be an integral component of the router itself. Several APs may also work in coordination, either through direct wired or wireless connections, or through a central system, commonly called a Wireless Local Area Network (WLAN) controller. An AP is differentiated from a hotspot, which is the physical location where Wi-Fi access to a WLAN is available.

Prior to wireless networks, setting up a computer network in a business, home, or school often required running many cables through walls and ceilings in order to deliver network access to all of the network-enabled devices in the building. With the creation of the wireless AP, network users are able to add devices that access the network with few or no cables. An AP connects to a wired network, then provides radio frequency links for other radio devices to reach that wired network. Most APs support the connection of multiple wireless devices to one wired connection. APs are built to support a standard for sending and receiving data using these radio frequencies.

In <CIT> radio communication system for an industrial automation system in which at least one first communication device and one second communication device are redundantly connected to an industrial communication network, wherein the first and second communication devices are each connected directly or indirectly to a particular first radio transceiver station and to a particular second radio transceiver station via the first communication network connection and via the second communication network connection thereof, where the first and second radio transceiver stations determine an order for data frames to be transmitted inside a predefined interval of time based on destination MAC addresses assigned to the data frames to be transmitted, and where the order within data frames to be transmitted to a selected destination MAC address is determined by the order in which the data frames are received.

In <CIT> radio communication system for an industrial automation system in which at least a first and a second communication device are redundantly linked to an industrial communication network, wherein the first and second communication devices are each connected indirectly or directly to a particular first radio subscriber station or radio base station and to a particular second radio subscriber station or radio base station via the first communication network connection and via the second communication network connection of the communication devices, where the radio subscriber stations interchange messages about available radio base stations among one another and use the messages to coordinate which of the radio subscriber stations has exclusive authorization for a radio link to a selected radio base station at present or within a definable period.

Parallel Redundancy Protocol (PRP) using non-overlapping Resource Unit (RU) groupings may be provided. A first computing device may associate to a first Access Point (AP) at a virtual Media Access Control (MAC) address. Next, the first computing device may associate to a second AP at the virtual MAC address. Then data from a data frame may be replicated to a first one or more RUs in a channel. The first one or more RUs may be assigned to the first AP. Data from the data frame may then be replicated to a second one or more RUs in the channel. The second one or more RUs may be assigned to the second AP and may not overlap the first one or more RUs.

Both the foregoing overview and the following example embodiments are examples and explanatory only, and should not be considered to restrict the disclosure's scope, as described and claimed. Furthermore, features and/or variations may be provided in addition to those described. For example, embodiments of the disclosure may be directed to various feature combinations and sub-combinations described in the example embodiments.

The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar elements. While embodiments of the disclosure may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods. Accordingly, the following detailed description does not limit the disclosure. Instead, the scope of the invention is defined by the appended claims.

Parallel Redundancy Protocol (PRP) is a network protocol standard for Ethernet that may provide seamless failover against failure of any network component. PRP may be used for applications that cannot withstand packet loss such as industrial internet, smart grids, factory automation, autonomous driving, remote surgery, intelligent transportation systems, power utilities, and manufacturing. Consistent with embodiments of the disclosure, to carry out PRP, redundancy boxes (i.e., redboxes) may be used. A redbox may comprise a switch or a Work Group Bridge (WGB) that may make two copies of each incoming data frame (i.e., replicate) and then send the replicated data frames on two independent paths in a network. One of the PRP replicated packets may be discarded by another redbox at the destination if both of the replicated packets make it to the destination. As will be described in greater detail below, a redbox may make an association with two upstream APs and transmit using two non-overlapping Resource Units (RU) groups respectively corresponding to the two upstream APs.

<FIG> shows an operating environment <NUM>. As shown in <FIG>, operating environment <NUM> may comprise a first computing device <NUM>, a first AP <NUM>, a second AP <NUM>, and a second computing device <NUM>. First computing device <NUM> and second computing device <NUM> may each comprise a redbox that may replicate and discard data frames as described above. First AP <NUM> and second AP <NUM> may provide wireless access for a client device connected to first computing device <NUM> and may operate using the IEEE <NUM> standard for example.

First computing device <NUM> may comprise a redbox operating in a WGB mode. A WGB may comprise a small stand-alone unit that may provide a wireless infrastructure connection for Ethernet-enabled devices for example. Devices that do not have a wireless client adapter in order to connect to a wireless network may be connected to the WGB through an Ethernet port. The WGB may associate to first AP <NUM> and second AP <NUM> through a wireless interface. Through the WGB, client devices may obtain access to the wireless network.

A client device that the WGB may provide wireless network access may, for example, correspond to an autonomous vehicle in motion or a robot moving about in a factory. The client device may comprise, but is not limited to, a smart phone, a personal computer, a tablet device, a mobile device, a cable modem, a remote control device, a set-top box, a digital video recorder, an Internet-of-Things (IoT) device, a network computer, a mainframe, a router, or other similar microcomputer-based device.

The elements described above of operating environment <NUM> (e.g., first computing device <NUM>, first AP <NUM>, second AP <NUM>, and second computing device <NUM>) may be practiced in hardware and/or in software (including firmware, resident software, micro-code, etc.) or in any other circuits or systems. The elements of operating environment <NUM> may be practiced in electrical circuits comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. Furthermore, the elements of operating environment <NUM> may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to, mechanical, optical, fluidic, and quantum technologies. As described in greater detail below with respect to <FIG>, the elements of operating environment <NUM> may be practiced in a computing device <NUM>.

<FIG> is a diagram illustrating Orthogonal Frequency-Division Multiple Access (OFDMA). First computing device <NUM>, first AP <NUM>, and second AP <NUM> may be compatible with the IEEE <NUM>. 11ax specification standard, for example, and may support OFDMA technology to provide media access to client devices. As shown in <FIG>, the media may be divided into time slots along a time axis <NUM> and may have a channel width along a frequency axis <NUM>. When using OFDMA to provide media access, an AP may partition a channel into smaller sub-channels know as Resource Units (RUs) so that simultaneous multiple-user transmissions may occur. The channel width may comprise, for example, <NUM>, broken into eight, <NUM> RUs. Each RU may be separated from the next one with a few KHz of empty channel so with the eight, <NUM> RUs and empty space, together the channel may be <NUM>. An AP may determine RU allocation for multiple stations for both downlink and uplink OFDMA. In other words, the AP may determine how RUs may be assigned to stations (i.e., user <NUM>, user <NUM>, user <NUM>, and user <NUM>) within a given channel. The stations may provide feedback to IEEE <NUM>. 11ax compatible APs using, for example, solicited or unsolicited buffer status reports, however, the AP may make the decision in regards to RU allocation for synchronized Uplink (UL)-OFDMA from multiple client devices.

<FIG> is a diagram illustrating non-overlapping RU groupings. As shown in <FIG>, a timeslot <NUM> may comprise a first RU grouping <NUM> and a second RU grouping <NUM>. First RU grouping <NUM> may comprise, for example, two, <NUM> RUs and second RU grouping <NUM> may comprise, for example, two, <NUM> RUs. As will be described in greater detail below, first RU grouping <NUM> may comprise a first one or more RUs in a channel assigned to first AP <NUM> and second RU grouping <NUM> may comprise a second one or more RUs in the channel assigned to second AP <NUM>.

Embodiments of the disclosure may provide multiple UL RU blocks from a device (e.g. first computing device <NUM>) to multiple APs (e.g., first AP <NUM> and second AP <NUM>) while leveraging IEEE <NUM>. 11ax compliant hardware. In doing so, embodiments of the disclosure may abide by the specification and related constraints of Off-the-shelf (OTS) commercial chipsets. As such, embodiments of the disclosure may use existing Trigger Frame (TF) and Multiuser Physical layer Protocol Data Unit (MU-PPDU) structures. Consequently user devices may be be triggered by one AP that allocates the RUs (and associated MCS or data-rate) for its UL transmission. However, one constraint of IEEE <NUM>. 11ax may be that a single client device identified by an Association ID (AID) may only be assigned a single RU (unless that client device is part of, for example, a Multicast (MCAST) group). However, embodiments of the disclosure may assign multiple AIDs to a single virtual Media Access Control (MAC) address, for example, in software. In this case, for example, the TF may contain an RU assignment (and associated MCS or data-rate) for AID0, AID1, and AIDn corresponding to the association (AID) at each Basic Service Set Identifier (BSSID). In other words, a virtual MAC address of a device may contain two or more underlying AIDs exchanged between the cooperating APs.

On the TF itself, an efficient bandwidth process may be to designate a primary trigger AP and have all remaining APs operate in High Efficiency (HE) Trigger-Based (TB) Uplink (UL) MU-PPDU listen mode using a shared virtual Receiver MAC address (RA) described in more detail below. The selection of a primary AP may be based on a reasonable metric, for example, best uplink Received Signal Strength Indicator (RSSI)/Signal-to-Noise Ratio (SNR) of a frame received and may be chosen by a PRP redbox (e.g., first computing device <NUM>) dynamically for each WGB. Each AP may still associated with the WGB on it's per BSSID AID and may send control information and even non-PRP data using distinct (un-related) RUs as well as legacy Single User (SU) (e.g., IEEE <NUM>. 11ac) operating modes. As the PRP client device moves, the primary AP may be changed and/or the AP Transmit (TX) power and related limits (e.g., OBSS_PD Min/Max, OFDMA Power offset ) may be manipulated to maximize the probability of the PRP client device receiving the trigger and being heard my multiple APs.

<FIG> is a flow chart setting forth the general stages involved in a method <NUM> consistent with embodiments of the disclosure for providing PRP using non-overlapping RU groupings. Method <NUM> may be implemented using first computing device <NUM>, first AP <NUM>, second AP <NUM>, and second computing device <NUM> as described in more detail above with respect to <FIG>. Ways to implement the stages of method <NUM> will be described in greater detail below.

Method <NUM> begins at starting block <NUM> and proceed to stage <NUM> where first computing device <NUM> associates to first AP <NUM> at a virtual MAC address. For example, first computing device <NUM> may comprise a redbox functioning in a WGB mode in order to provide a client device wireless network access by associating with first AP <NUM>. The client device may, for example, correspond to an autonomous vehicle in motion or a robot moving about in a factory.

From stage <NUM>, where first computing device <NUM> associates to first AP <NUM> at the virtual MAC address, method <NUM> advances to stage <NUM> where first computing device <NUM> associates to second AP <NUM> at the virtual MAC address. For example, first computing device <NUM> may associate to second AP <NUM> while also maintaining its association to first AP <NUM> in order to implement PRP consistent with embodiments of the disclosure. In other words, first computing device <NUM> may make an association with two upstream APs (e.g., IEEE <NUM>. 11ax compliant APs) at the same time. The upstream association to the two APs may be accomplished using the same Service Set Identifier (SSID) on both sides. Associating a single computing device MAC address to two APs on the same SSID may not be permissible with conventional systems. For example, with IEEE <NUM>, a single station (i.e., understood as a single MAC address) may not associate to more than one BSSID.

When mobile stations associate with an AP, the AP may assign an AID. The AID may be used for a variety of purposes. Consistent with embodiments of the disclosure, to accomplish dual AP association for PRP, first computing device <NUM> may use one virtual MAC address per association with a unique IEEE <NUM>. 11ax AID per BSSID. Potentially, first computing device <NUM> may associate to as many BSSIDs as there are AP radios in range. However, only two associations are needed for a minimum PRP implementation.

Furthermore, transmission of a frame to an AP may require a specific Receiver MAC address (RA), in addition to a Destination MAC address (DA). Consistent with embodiments of the disclosure, first computing device <NUM> and its associated APs (e.g., first AP <NUM> and second AP <NUM>) may negotiate a virtual RA (i.e., virtual MAC address) shared among APs (in addition to each AP's native RA for the BSSID). This process may allow first computing device <NUM> to send redundant frames to a single RA on different RU blocks that are received and demodulated by at least two APs at the same time. This may allow PRP to function over a single Wi-Fi redbox radio consistent with embodiments of the disclosure.

Because first computing device <NUM> may roam to different APs, first computing device <NUM> may first request the shared MAC behavior of the upstream APs, which may facilitate the aforementioned dual association. First computing device <NUM> accomplishes this by associating to a primary AP (e.g., first AP <NUM>). Based on its <NUM> report for example, first computing device <NUM> may request first AP <NUM> (i.e., acting as the primary AP) to negotiate virtual MAC address support with a next best or secondary AP (e.g., second AP <NUM>) in an extension of the <NUM> report, association frames, or other exchange processes. The virtual MAC may therefore be carried with first computing device <NUM> from AP to AP as first computing device <NUM> roams. In other embodiments, the primary AP may coordinate a virtual MAC address with a secondary AP, for example, through over the air Neighbor Discovery Protocol (NDP) messages for each supported SSID where PRP is enabled. First computing device <NUM> may now have the dual association to both APs (i.e., first AP <NUM> and second AP <NUM>).

Consistent with embodiments of the disclosure, inter-AP communication may be accomplished using, for example, the IEEE <NUM>. 11be standard. In other words, inter-AP communications between first AP <NUM> and second AP <NUM> including, for example, negotiate the virtual RA or negotiating for the assignment of the first one or more RUs to first AP <NUM> in the channel and for the assignment of the second one or more RUs to second AP <NUM> in the channel may be accomplished using, for example, the IEEE <NUM>. 11be standard.

Once first computing device <NUM> associates to second AP <NUM> at the virtual MAC address in stage <NUM>, method <NUM> may continue to stage <NUM> where first computing device <NUM> may replicate data from a data frame to a first one or more RUs in a channel. The first one or more RUs may be assigned to first AP <NUM>. For example, referring back to <FIG>, first RU grouping <NUM> may comprise the first one or more RUs in the channel assigned to first AP <NUM>.

After first computing device <NUM> replicates data from the data frame to the first one or more RUs in the channel in stage <NUM>, method <NUM> proceeds to stage <NUM> where first computing device <NUM> replicates data from the data frame to a second one or more RUs in the channel. The second one or more RUs are assigned to second AP <NUM> and the first one or more RUs and the second one or more RUs may not overlap. For example, referring back to <FIG>, second RU grouping <NUM> may comprise the second one or more RUs in the channel assigned to second AP <NUM>.

Acting as the primary AP, first AP <NUM> may coordinate with second AP <NUM> for non-overlapping RU groups that may be used for uplink and downlink communication on first AP <NUM> and second AP <NUM>. This may be accomplished using several different processes. In one embodiment, static PRP RU allocation may be used where PRP traffic may be identified along with corresponding RU characteristics (e.g., size and occurrence frequency), and the APs may agree on reserved PRP specific RU allocation over the air, or through a central allocation function (e.g., at a Wireless LAN Controller (WLC)). In another embodiment, a round robin PRP RU allocation may be used where APs (e.g., during the NDP exchange or through WLC allocation) may agree on a PRP slotting scheme for each AP and each RU. "Border" PRP RU allocation may be used in another embodiment where one AP may allocate the lower RUs of a given channel to PRP traffic while the other AP allocates the upper RUs in a non-overlapping fashion. Consistent with yet another embodiment, WGB-specific PRP RU allocation may be used where one AP may be elected as the primary AP and may make the RU allocation, while the other AP only accepts the RU allocation made by the primary AP. Channel state information (CSI)-based PRP RU allocation may comprise another embodiment where the result of explicit Multi-User, Multiple-Input, Multiple-Output (MU-MIMO) sounding or implicit measures may be used to select complimentary RUs. Complimentary RUs may comprise those that may be mathematically de-correlated (e.g., the <NUM> RUs at the beginning and end of a <NUM> or <NUM> channel).

From stage <NUM>, where first computing device <NUM> replicates data from the data frame to the second one or more RUs in the channel, method <NUM> advances to stage <NUM> where a radio associated with first computing device <NUM> transmits the first one or more RUs and the second one or more RUs in the channel to the virtual MAC address. For example, first AP <NUM> (e.g., as the primary AP) may issues a TF allocating RUs (and associated MCS or data-rate) to both AIDs of the same size and rate (or of different sizes and rate if channel metrics indicate each AP might have different receive RSSI). Then first computing device <NUM> may make copies of the data frame and send them on the different RUs (as per the TF assignment from the primary AP), in a single UL MU-PPDU frame. Consequently, embodiments of the disclosure may provide PRP using a single source radio (e.g., located with first computing device <NUM>), rather than two radios.

Once the radio associated with first computing device <NUM> transmits the first one or more RUs and the second one or more RUs in the channel to the virtual MAC address in stage <NUM>, method <NUM> may continue to stage <NUM> where first AP <NUM> may receive the first one or more RUs and the second one or more RUs. For example, the first one or more RUs and the second one or more RUs may be received by first AP <NUM> on a single UL MU-PPDU frame on the channel. The association between first computing device <NUM> and first AP <NUM> may comprise a first one of two independent paths in operating environment <NUM>.

After first AP <NUM> receives the first one or more RUs and the second one or more RUs in stage <NUM>, method <NUM> may proceed to stage <NUM> where first AP <NUM> may create a first copy of the data frame from the first one or more RUs. For example, while first AP <NUM> receives both the first one or more RUs and the second one or more RUs, first AP <NUM> may use the first one or more RUs to create the first copy of the data frame because the first one or more RUs were allocated to first AP <NUM>.

From stage <NUM>, where first AP <NUM> creates the first copy of the data frame from the first one or more RUs, method <NUM> may advance to stage <NUM> where first AP <NUM> may send the first copy of the data frame to second computing device <NUM>. For example, after first AP <NUM> demodulates the UL MU-PPDU signal (potentially receiving the same PPDU on multiple RU's from each AID), the first copy of the data frame may be created from the demodulated signal and forwarded on a first of the two aforementioned independent paths in operating environment <NUM> towards second computing device <NUM>.

Once first AP <NUM> sends the first copy of the data frame to second computing device <NUM> in stage <NUM>, method <NUM> may continue to stage <NUM> where second AP <NUM> may receive the first one or more RUs and the second one or more RUs. For example, the first one or more RUs and the second one or more RUs may be received by second AP <NUM> on a single UL MU-PPDU frame on the channel. The association between first computing device <NUM> and second AP <NUM> may comprise a second one of two independent paths in operating environment <NUM>.

After second AP <NUM> receives the first one or more RUs and the second one or more RUs in stage <NUM>, method <NUM> may proceed to stage <NUM> where second AP <NUM> may create a second copy of the data frame from the second one or more RUs. For example, while second AP <NUM> receives both the first one or more RUs and the second one or more RUs, second AP <NUM> may use the second one or more RUs to create the second copy of the data frame because the second one or more RUs were allocated to second AP <NUM>.

From stage <NUM>, where second AP <NUM> creates the second copy of the data frame from the second one or more RUs, method <NUM> may advance to stage <NUM> where second AP <NUM> may send the second copy of the data frame to second computing device <NUM>. For example, after second AP <NUM> demodulates the UL MU-PPDU signal (potentially receiving the same PPDU on multiple RU's from each AID), the second copy of the data frame may be created from the demodulated signal and forwarded on a second one of the two aforementioned independent paths in operating environment <NUM> towards the second computing device <NUM>.

Once second AP <NUM> sends the second copy of the data frame to second computing device <NUM> in stage <NUM>, method <NUM> may continue to stage <NUM> where second computing device <NUM> may receive the first copy of the data frame from first AP <NUM>. For example, the first copy of the data frame may be received by second computing device <NUM> over the first one of the two aforementioned independent paths.

After second computing device <NUM> receives the first copy of the data frame from first AP <NUM> in stage <NUM>, method <NUM> may proceed to stage <NUM> where second computing device <NUM> may receive the second copy of the data frame from second AP <NUM>. For example, the second copy of the data frame may be received by second computing device <NUM> over the second one of the two aforementioned independent paths.

From stage <NUM>, where second computing device <NUM> receives the second copy of the data frame from second AP <NUM>, method <NUM> may advance to stage <NUM> where second computing device <NUM> may discard the first copy of the data frame or the second copy of the data frame. For example, when second computing device <NUM> receives redundant copies of the data frame, it may remove one of the redundant copies of the data frame by discarding either the first copy of the data frame or the second copy of the data frame. Accordingly, embodiments of the disclosure may provide PRP over a wireless network using dual non-overlapping RUs sent to different APs on the same SSID where the redundant frames are introduced onto their own independent paths. In some cases, however, second computing device <NUM> may fail to receive one of either the first copy of the data frame or the second copy of the data frame. In this situation, second computing device <NUM> may use whichever of the first copy of the data frame or the second copy of the data frame it received. Once second computing device <NUM> discards the first copy of the data frame or the second copy of the data frame in stage <NUM>, method <NUM> may then end at stage <NUM>.

<FIG> shows computing device <NUM>. As shown in <FIG>, computing device <NUM> may include a processing unit <NUM> and a memory unit <NUM>. Memory unit <NUM> may include a software module <NUM> and a database <NUM>. While executing on processing unit <NUM>, software module <NUM> may perform, for example, processes for providing PRP using non-overlapping RU groupings as described above with respect to <FIG>. Computing device <NUM>, for example, may provide an operating environment for first computing device <NUM>, first AP <NUM>, second AP <NUM>, or second computing device <NUM>. First computing device <NUM>, first AP <NUM>, second AP <NUM>, or second computing device <NUM> may operate in other environments and are not limited to computing device <NUM>.

Computing device <NUM> may be implemented using a Wireless Fidelity (Wi-Fi) access point, a cellular base station, a tablet device, a mobile device, a smart phone, a telephone, a remote control device, a set-top box, a digital video recorder, a cable modem, a personal computer, a network computer, a mainframe, a router, a switch, a server cluster, a smart TV-like device, a network storage device, a network relay devices, or other similar microcomputer-based device. Computing device <NUM> may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. Computing device <NUM> may also be practiced in distributed computing environments where tasks are performed by remote processing devices. The aforementioned systems and devices are examples and computing device <NUM> may comprise other systems or devices.

Embodiments of the disclosure, for example, may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process. Accordingly, the present disclosure may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.). In other words, embodiments of the present disclosure may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. A computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

Embodiments of the disclosure may be practiced via a system-on-a-chip (SOC) where each or many of the elements illustrated in <FIG> may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communications units, system virtualization units and various application functionality all of which may be integrated (or "burned") onto the chip substrate as a single integrated circuit. When operating via an SOC, the functionality described herein with respect to embodiments of the disclosure, may be performed via application-specific logic integrated with other components of computing device <NUM> on the single integrated circuit (chip).

Claim 1:
A method comprising:
associating (<NUM>), by a first computing device, to a first Access Point, AP, at a virtual Media Access Control, MAC, address;
associating (<NUM>), by the first computing device, to a second AP at the virtual MAC address;
replicating (<NUM>) data from a data frame to a first one or more Resource Units, RUs, in a channel, wherein the first one or more RUs are assigned to the first AP;
replicating (<NUM>) data from the data frame to a second one or more RUs in the channel, wherein the second one or more RUs are assigned to the second AP and wherein the first one or more RUs and the second one or more RUs do not overlap; and
transmitting (<NUM>), by a radio associated with the first computing device, the first one or more RUs and the second one or more RUs in the channel to the virtual MAC address.