Enhanced Network Coding Design in Wi-Fi 802.11 Aggregate MPDU Format
By adopting network encoding technology in Wi-Fi networks, encoding and decoding input packets, the problems of packet loss and channel interference in Wi-Fi networks are solved, and data transmission with high reliability and low latency are achieved, supporting emerging AR and VR applications.
Patent Information
- Application Number
- CN202280099536.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-29
- Publication Date
- 2025-04-04
AI Technical Summary
Existing Wi-Fi technologies have packet loss problems in wireless applications with high reliability and low latency requirements, especially in authorization-free spectrum and management-free network environments, resulting in channel interference and unstable data transmission.
Network encoding technology is adopted to encode input packets through linear packet erasure coding and forward error correction code and decode at the receiving end to improve the reliability and efficiency of data transmission. In a specific implementation, the A-Control subfield of the A-MPDU is modified to contain information of the network encoding scheme and decoded at the receiver side to recover the lost data packet.
Improves the reliability and reduces latency of Wi-Fi networks, supports new wireless applications with high reliability and low latency, such as augmented reality (AR) and virtual reality (VR), while reducing the competitive demand for channels.
Smart Images

Figure CN119769051A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to systems and methods for wireless communications and, more particularly, to enhancements to Wi-Fi network coding for aggregate frames. Background Art
[0002] Wireless devices are becoming widely prevalent and are increasingly requesting access to wireless channels. The Institute of Electrical and Electronics Engineers (IEEE) is developing one or more standards that utilize Orthogonal Frequency Division Multiple Access (OFDMA) in channel allocation. BRIEF DESCRIPTION OF THE DRAWINGS
[0003] Figure 1A is a network diagram illustrating an example network environment of a multi-link device (MLD) according to one or more example embodiments of the present disclosure.
[0004] Figure 1B Depicted is an illustrative diagram of MLD communication between two logical entities according to one or more example embodiments of the present disclosure.
[0005] Figure 1C Depicted is an illustrative diagram of MLD communication between an access point (AP) MLD having a logical entity and a non-AP MLD having a logical entity, according to one or more example embodiments of the present disclosure.
[0006] Figure 2 Example network coding of multiple packets according to one or more example embodiments of the present disclosure is shown.
[0007] Figure 3 A diagram illustrating network coding performance when using systematic codes according to one or more example embodiments of the present disclosure is shown.
[0008] Figure 4 An example MLD transmission of an Aggregate Medium Access Control (MAC) Protocol Data Unit (A-MPDU) using network coding is shown according to one or more example embodiments of the present disclosure.
[0009] Figure 5 An example diagram of a process of network coding using A-MPDU according to one or more example embodiments of the present disclosure is shown.
[0010] Figure 6 A functional diagram of an exemplary communication station that may be suitable for use as a user equipment according to one or more example embodiments of the present disclosure is shown.
[0011] Figure 7 A block diagram is shown of an example machine upon which any one or more techniques (eg, methodologies) may be performed according to one or more example embodiments of the present disclosure.
[0012] Figure 8 is a block diagram of a radio architecture according to some examples.
[0013] Fig. 9 A method for performing a multi-function circuit according to one or more example embodiments of the present disclosure is shown. Figure 8 Example front-end module circuit in a radio architecture of FIG.
[0014] Fig.10 A method for performing a multi-function circuit according to one or more example embodiments of the present disclosure is shown. Figure 8 Example radio IC circuit in a radio architecture of FIG.
[0015] Fig.11 A method for performing a multi-function circuit according to one or more example embodiments of the present disclosure is shown. Figure 8 Example baseband processing circuitry in a radio architecture of FIG. DETAILED DESCRIPTION
[0016] The following description and accompanying drawings sufficiently illustrate specific embodiments to enable those skilled in the art to practice them. Other embodiments may incorporate structural changes, logical changes, electrical changes, process changes, algorithm changes, and other changes. Portions and features of some embodiments may be included in or substituted with portions and features of other embodiments. The embodiments set forth in the claims encompass all available equivalents of those claims.
[0017] The IEEE 802.11 technical standards define wireless communications, including how to aggregate frames into transmissions. For example, the 802.11n and 802.11ac standards define frame aggregation as a technique for combining multiple frames into a single transmission using a fixed medium access control (MAC) layer overhead and reducing contention for the wireless medium.
[0018] A MAC Protocol Data Unit (MPDU) is a radio frame that includes a header, a body, and a trailer, in which a MAC Service Data Unit (MDSU) is encapsulated. 802.11n defines an Aggregate MPDU (A-MPDU), in which multiple frames are aggregated into a single transmission, usually followed by a block acknowledgement. 802.11ac uses the A-MPDU format.
[0019] The 802.11be standard defines multi-link device link transmission. In multi-link communication, a multi-link device (MLD) (also known as a multi-link logical entity (MLLE)) may refer to a device having more than one subordinate station (STA) and having a medium access control (MAC) layer service access point (SAP) (e.g., of a communication layer stack) to a logical link control (LLC) (which may include a MAC data service). An AP MLD (A MLD) may refer to an access point (AP) device, where each STA subordinate to a STA MLD is an AP. A non-AP ML device (non-AP MLD) may be an A MLD, where each STA subordinate to the MLD is a non-APSTA. An MLD may be viewed as a logical / virtual entity with multiple STAs (e.g., AP STAs or non-AP STAs), and each STA may simultaneously use a separate communication link with a corresponding STA of another MLD. In this way, an MLD may communicate simultaneously over multiple communication links without having to drop one communication link to allow another communication link to be established. Multi-link Operation (MLO) is an important 802.11be feature that allows a device to communicate with another device using multiple links on different channels / bands. A device that supports multi-link is an MLD.
[0020] More wireless applications are requiring high reliability and low latency. However, Wi-Fi operates in unlicensed spectrum and unmanaged network environments, where interference from neighboring networks may cause packet loss. One way to improve reliability is to utilize network coding techniques in Wi-Fi that are not currently provided by the 802.11 standard.
[0021] In one or more embodiments, 802.11 network coding may include linear block erasure coding and forward error correction coding. Input packets P1, P2, ..., P k (For example, finite fields The column vector on ) can be encoded as a group Among them, [R1,R2,…,R n ]=[P1,P2,…,P k ][c ij ] k×n , where c ij is the coding coefficient, and packet loss includes: deletion [c ij ]. Decoding consists of: solving a linear equation; and recovering [P1, P2, …, P if ≥ k coded packets are received. k]. Network coding provides a much better rate-reliability tradeoff than repetition, and this tradeoff improves as the coding group size (k) increases. For example, using a network coding rate of 0.5, two input packets P1, P2 can be encoded into four coded packets P1, P2, P3, R4. If two of the coded packets are lost during reception, the output packets P1, P2 can still be recovered.
[0022] In one or more embodiments, the A-Control subfield in the A-MPDU subframe of the A-MPDU may be modified to include information required by the network coding scheme. The content of the A-Control subfield of each A-MPDU subframe may be different between A-MPDU subframes. The A-Control field may include the following information: NC code type (e.g., Reed-Solomon encoder with coding matrix C{ij}), number of data packets (k), number of parity packets (nk), and packet index after network coding (NC) encoding. NC encoding may be performed on the frame body subfield of the MPDU, rather than on the MAC header or frame check sequence (FCS) and not on the MPDU delimiter and padding field of the A-MPDU subframe. The enhancements herein provide improved reliability and reduced latency, and may support new wireless applications (e.g., AR / VR) that require ultra-low latency and extremely high reliability.
[0023] In one or more embodiments, system network coding is used in the A-MPDU format, and NC coding is done on multiple links. The new A-Control field may include the following information required for the receiver to decode the network coded packet: NC code type, number of data packets, number of parity packets, packet index after NC coding, and NC group index. NC code types are predefined in the 802.11 standard. For example, Reed-Solomon codes can be used as NC, and parameters can be selected. This can also be indicated as the capability of an access point (AP) or station (STA).
[0024] In one or more embodiments, the Enhanced A-Control subfield may include the following fields:
[0025] Control ID (4 bits): New value for network coding.
[0026] NC code type: m (2 bits), up to 4 different NC code types (e.g., RS(31,x), RS(63,x), RS(127,x), RS(255,x)), where RS(a,b) is a Reed-
[0027] Solomon code.
[0028] Total number of data packets: k (7 bits);
[0029] Up to 128 groups.
[0030] Total number of parity check packets: p (7 bits);
[0031] Up to 128 parity groups.
[0032] · Group index after NC encoding: i (8 bits); 0-255.
[0033] NC Group Index: g (2 bits) - Indicates up to four NC groups (0-3) to support different NC groups in an A-MPDU or across multiple A-MPDUs.
[0034] The enhanced A-Control subfield supports a maximum number of NC coded packets up to 255 and a maximum number of data packets up to 128. The NC code rate ranges from k / n=2 / 255 to 128 / 129, where k is the number of data packets and n is the number of total coded data packets (k+p). Shortening and puncturing are used to support different numbers of data packets and parity packets. Given an NC code type, the AP and STA should also agree on the shortening and puncturing pattern for each combination of (k,n) to make the decoding unique. This can be predefined by the 802.11 standard. Parameters repeated for the same NC group index can be removed from the A-MPDU subframe.
[0035] In one or more embodiments, when the receiver receives the MAC frame, it decodes the A-Control subfield. When the index subfield 'i' is less than or equal to the data packet number subfield 'k', the received packet is the i-th data packet. In an example, the MLD may send A-MPDU 1 on the first link and may send A-MPDU 2 on the second link. A-MPDU 1 may include D1, D2, P1, and P2, and A-MPDU 2 may include D3, D3, P3, and P4 (e.g., where D N is a data packet, and P N is a parity packet as a result of network coding), resulting in 8 coded packets. Each coded packet may include an MPDU delimiter, an MPDU, and padding, and the MPDU may include a MAC header with an A-Control subfield, a frame body (e.g., data for data packets and parity for parity packets), and an FCS. Enhancement may include signaling in the A-Control subfield. If a data packet is not received, the corresponding parity packet from the network coding may be used to recover the data of the lost data packet.
[0036] In the above example, when D2 of A-MDPU 1 contains an A-Control subfield of NC(m,k,p,i)=NC(1,4,4,2), the MAC frame is the second data packet. When the index subfield 'i' is greater than the data packet number subfield 'k', the received packet is the (ik)th parity packet. For example, P1 contains an A-Control subfield of NC(m,k,p,i)=NC(1,4,4,5), and the MAC frame is (ik)=the first parity packet. The A-MPDU subframe containing the parity packet reuses the SN of k data packets. For example, the first parity packet uses the sequence number (SN) of the first data packet, and the second parity packet uses the SN of the second data packet, and so on.
[0037] In one or more embodiments, when a MAC frame is received with errors, the MAC frame is marked as erased and NC decoding is performed with successfully received parity packets to recover the lost data packets. The number of parity packets may be determined based on an estimate of the packet error rate (PER) of the previous frame exchange. The non-AP MLD may request which TID (Traffic Identifier) to use NC encoding.
[0038] The above description is for illustrative purposes and is not meant to be limiting. There may be many other examples, configurations, processes, algorithms, etc., some of which are described in more detail below. Example embodiments will now be described with reference to the accompanying drawings.
[0039] Figure 1A 1 is a network diagram illustrating an example network environment 100 for MLD according to some example embodiments of the present disclosure. The wireless network 100 may include one or more user devices 120 and one or more access points (APs) 102, which may communicate according to the IEEE, 802.11 communication standard. The user device 120 may be a non-stationary (e.g., not having a fixed location) mobile device, or may be a stationary device.
[0040] In some embodiments, the user equipment 120 and the AP 102 may include a Figure 6 Functional diagram of the computer system and / or Figure 7 One or more computer systems of an example machine / system.
[0041] One or more illustrative user devices 120 and / or AP, 102 may be operated by one or more users 110. It should be noted that any addressable unit may be a station (STA). A STA may exhibit a variety of different characteristics, each of which shapes its functionality. For example, a single addressable unit may be a portable STA, a quality of service (QoS) STA, a slave STA, and a hidden STA at the same time. One or more illustrative user devices 120 and AP, 102 may be a STA. One or more illustrative user devices 120 and / or AP, 102 may operate as a personal basic service set (PBSS) control point / access point (PCP / AP). User devices 120 (e.g., 124, 126, or 128) and / or AP, 102 may include any suitable processor-driven device, including but not limited to mobile devices or non-mobile devices (e.g., static devices). For example, the user equipment 120 and / or the AP, 102 may include a user equipment (UE), a station (STA), an access point (AP), a software-enabled AP (SoftAP), a personal computer (PC), a wearable wireless device (e.g., a wristband, a watch, glasses, a ring, etc.), a desktop computer, a mobile computer, a laptop computer, an ultrabook TMcomputer, notebook computer, tablet computer, server computer, handheld computer, handheld device, Internet of Things (IoT) device, sensor device, PDA device, handheld PDA device, on-board device, off-board device, hybrid device (e.g., combining cellular phone functionality with PDA device functionality), consumer device, in-vehicle device, non-in-vehicle device, mobile or portable device, non-mobile or non-portable device, mobile phone, cellular phone, PCS device, PDA device including wireless communication device, mobile or portable GPS device, DVB device, relatively small computing device, non-desktop computer, "travel light, enjoy life" (CSLL) device, ultra mobile device (UMD), ultra mobile PC (UMPC), mobile Internet device (MID), "origami" device Devices or computing devices, devices supporting dynamic combinatorial computing (DCC), context-aware devices, video devices, audio devices, A / V devices, set-top boxes (STBs), Blu-ray disc (BD) players, BD recorders, digital video disc (DVD) players, high-definition (HD) DVD players, DVD recorders, HD, DVD recorders, personal video recorders (PVRs), broadcast HD receivers, video sources, audio sources, video sinks, audio sinks, stereo tuners, broadcast radio receivers, flat panel displays, personal media players (PMPs), digital video cameras (DVCs), digital audio players, speakers, audio receivers, audio amplifiers, gaming devices, data sources, data sinks, digital still cameras (DSCs), media players, smart phones, televisions, music players, etc. Other devices, including smart devices (e.g., lights, climate controls, automotive components, home components, appliances, etc.), may also be included in this list.
[0042] As used herein, the term "Internet of Things (IoT) device" is used to refer to any object (e.g., appliance, sensor, etc.) that has an addressable interface (e.g., Internet Protocol (IP) address, Bluetooth identifier (ID), near field communication (NFC) ID, etc.) and is capable of sending information to one or more other devices via a wired or wireless connection. IoT devices may have a passive communication interface (e.g., a quick response (QR) code, a radio frequency identification (RFID) tag, an NFC tag, etc.), or an active communication interface (e.g., a modem, a transceiver, a transmitter-receiver, etc.). IoT devices may have a set of specific attributes (e.g., device state or condition (e.g., whether the IoT device is on or off, open or closed, idle or active, available for task execution or busy, etc.), cooling or heating function, environmental monitoring or recording function, light emission function, sound emission function, etc.), which may be embedded in and / or controlled / monitored by a central processing unit (CPU), a microprocessor, an ASIC, etc., and configured to connect to an IoT network (e.g., a local ad-hoc network or the Internet). For example, IoT devices may include, but are not limited to, refrigerators, toasters, ovens, microwave ovens, freezers, dishwashers, dishes, hand tools, washers, dryers, furnaces, air conditioners, thermostats, televisions, lamps, vacuum cleaners, sprinklers, electric meters, gas meters, etc., as long as these devices are equipped with an addressable communication interface for communicating with the IoT network. IoT devices may also include cellular phones, desktop computers, laptop computers, tablet computers, personal digital assistants (PDAs), etc. Therefore, an IoT network may be composed of a combination of "legacy" Internet-accessible devices (e.g., laptop or desktop computers, cellular phones, etc.) and devices that typically do not have Internet connectivity (e.g., dishwashers, etc.).
[0043] The user equipment 120 and / or the AP 102 may also include, for example, a mesh station in a mesh network according to one or more IEEE 802.11 standards and / or 3GPP standards.
[0044] Any of the user devices 120 (e.g., user devices 124, 126, 128) and the AP, 102 can be configured to communicate with each other wirelessly or wired via one or more communication networks 130 and / or 135. The user devices 120 can also communicate with each other point-to-point or directly with or without the AP, 102. Any of the communication networks 130 and / or 135 can include, but are not limited to, any of a combination of different types of suitable communication networks, such as a broadcast network, a wired network, a public network (e.g., the Internet), a private network, a wireless network, a cellular network, or any other suitable private and / or public network. In addition, any of the communication networks 130 and / or 135 can have any suitable communication range associated therewith, and can include, for example, a global network (e.g., the Internet), a metropolitan area network (MAN), a wide area network (WAN), a local area network (LAN), or a personal area network (PAN). In addition, any of the communication networks 130 and / or 135 may include any type of medium that can carry network traffic, including but not limited to coaxial cable, twisted pair, optical fiber, hybrid fiber-coaxial (HFC) medium, microwave ground transceiver, radio frequency communication medium, white space communication medium, ultra-high frequency communication medium, satellite communication medium, or any combination thereof.
[0045] Any of the user devices 120 (e.g., user devices 124, 126, 128) and the AP, 102 may include one or more communication antennas. The one or more communication antennas may be any suitable type of antenna corresponding to the communication protocol used by the user devices 120 (e.g., user devices 124, 126, and 128) and the AP, 102. Some non-limiting examples of suitable communication antennas include Wi-Fi antennas, antennas compatible with the Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards, directional antennas, non-directional antennas, dipole antennas, folded dipole antennas, patch antennas, multiple-input multiple-output (MIMO) antennas, omnidirectional antennas, quasi-omnidirectional antennas, and the like. The one or more communication antennas may be communicatively coupled to a radio component to send signals (e.g., communication signals) to and / or receive signals from the user devices 120 and / or the AP, 102.
[0046] Any of the user equipment 120 (e.g., user equipment 124, 126, 128) and AP, 102 can be configured to perform directional transmission and / or directional reception in conjunction with wireless communication in a wireless network. Any of the user equipment 120 (e.g., user equipment 124, 126, 128) and AP 102 can be configured to use a set of multiple antenna arrays (e.g., DMG antenna arrays, etc.) to perform such directional transmission and / or reception. Each of the multiple antenna arrays can be used for transmission and / or reception in a specific corresponding direction or range of directions. Any of the user equipment 120 (e.g., user equipment 124, 126, 128) and AP, 102 can be configured to perform any given directional transmission to one or more defined transmission sectors. Any of the user equipment 120 (e.g., user equipment 124, 126, 128) and AP, 102 can be configured to perform any given directional reception from one or more defined reception sectors.
[0047] MIMO beamforming in a wireless network can be implemented using RF beamforming and / or digital beamforming. In some embodiments, when performing a given MIMO transmission, the user device 120 and / or the AP, 102 can be configured to use all or a subset of its one or more communication antennas to perform MIMO beamforming.
[0048] Any of the user devices 120 (e.g., user devices 124, 126, 128) and the AP, 102 may include any suitable radio and / or transceiver for sending and / or receiving radio frequency (RF) signals in a bandwidth and / or channel corresponding to a communication protocol used by any of the user devices 120 and the AP, 102 to communicate with each other. The radio component may include hardware and / or software for modulating and / or demodulating communication signals according to a pre-established transmission protocol. The radio component may also have hardware and / or software instructions to communicate via one or more Wi-Fi and / or Wi-Fi Direct protocols standardized by the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard. In certain example embodiments, the radio assembly in cooperation with the communication antenna may be configured to communicate via a 2.4 GHz channel (e.g., 802.11b, 802.11g, 802.11n, 802.11ax), a 5 GHz channel (e.g., 802.11n, 802.11ac, 802.11ax), or a 60 GHz channel (e.g., 802.11ad, 802.11ay), an 800 MHz channel (e.g., 802.11ah). The communication antenna may operate at 28 GHz and 40 GHz. It should be understood that this list of communication channels according to certain 802.11 standards is only a partial list, and other 802.11 standards (e.g., next generation Wi-Fi or other standards) may be used. In some embodiments, non-Wi-Fi protocols may be used for communication between devices, such as Bluetooth, dedicated short range communication (DSRC), ultra-high frequency (UHF) (e.g., IEEE, 802.11af, IEEE, 802.22), white band frequencies (e.g., white space), or other packetized radio communications. The radio component may include any known receiver and baseband suitable for communicating via a communication protocol. The radio component may also include a low noise amplifier (LNA), an additional signal amplifier, an analog-to-digital (A / D) converter, one or more buffers, and a digital baseband.
[0049] In one or more embodiments, and with reference to Figure 1A, AP 102 may be viewed as an A MLD 138 logical / virtual entity with multiple AP STAs (e.g., AP1 and AP 2), and the user equipment in user equipment 120 may be viewed as an MLD 140 logical / virtual entity with multiple non-AP STAs (e.g., non-AP STA 1 and non-AP STA 2). A first link 142 may be established between AP 1 and non-AP STA 1, and a second link 144 may be established between AP 2 and non-AP STA 2. Both the first link 142 and the second link 144 may be used simultaneously (e.g., AP 102 and / or user equipment 120 do not need to drop one of the links to use the other link). One or more frames 146 may be sent on the first link 142, and one or more frames 147 may be sent on the second link 144.
[0050] In one or more embodiments, to provide a non-co-sited MLD environment, AP 102 may represent multiple multi-link sets (e.g., Figure 1B and Figure 1C As shown), where the multi-link set communicates with the controller.
[0051] In one embodiment, and with reference to Figure 1A , frames 146 and 147 may be A-MPDUs with data packets and parity packets (e.g., Figure 4 The data packets and parity packets of the A-MPDU may include a new A-Control subfield, which signals the NC value and coding type, the total number of data packets, the total number of parity packets, and the packet index, thereby allowing the receiving device to identify the data packets and parity packets even when one or more packets are lost in transmission.
[0052] In one embodiment, one or more APs 102 may be a multi-link device (A-MLD), and one or more user devices 120 may be a non-AP MLD. Each of the one or more APs 102 may include multiple individual APs (e.g., AP1, AP2, ..., APn, where n is an integer), and each of the one or more user devices 120 may include multiple individual STAs (e.g., STA1, STA2, ..., STAn). The AP MLD and the non-AP MLD may establish one or more links (e.g., Link1, Link2, ..., Linkn) between each of the individual APs and the STA, as described with respect to Figure 1B and Figure 1C As further described.
[0053] Figure 1B Depicted is an illustrative diagram for MLD communication between two logical entities, according to one or more example embodiments of the present disclosure.
[0054] Reference Figure 1B , shows two MLDs communicating with each other. MLD 151 may include multiple STAs (e.g., STA 152, STA 154, STA 156, etc.), and MLD 160 may include multiple STAs (e.g., STA 162, STA 164, STA 166, etc.). The STAs of MLD 151 and the STAs of MLD 160 may establish links with each other (e.g., link 167 for a first frequency band used by STA 152 and STA 162, link 168 for a second frequency band used by STA 154 and STA 164, link 169 for a second frequency band used by STA 156 and STA 166). Figure 1B In this example, the two MLDs may be two separate physical devices, each of which includes multiple virtual or logical devices (eg, STAs).
[0055] Figure 1C An illustrative diagram is depicted for MLD communication 170 between an AP MLD having a logical entity and a non-AP MLD having a logical entity, according to one or more example embodiments of the present disclosure.
[0056] Reference Figure 1C , two MLDs on either side are shown, each MLD including multiple STAs that can establish links with each other. For an infrastructure framework, MLD 172 can be an A-MLD with logical APs (e.g., AP 174, AP 176, and AP 178) on one side, and MLD 180 can be a non-AP MLD on the other side including non-AP logical entities (non-AP STA 182, non-AP STA 184, and non-AP STA 186). Detailed definitions are shown below. It should be noted that the terms MLLE and MLD are interchangeable and refer to the same type of entity. Throughout this disclosure, MLLE may be used, but anywhere the term MLLE is used, it can be replaced by MLD. Multi-link non-AP logical entity (non-AP MLLE, also referred to as non-non-AP MLD): a multi-link logical entity, where each STA within the multi-link logical entity is a non-AP EHT STA. It should be noted that this framework is a natural extension of one link operation between two STAs (which are an AP and a non-AP STA under an infrastructure framework) (eg, when an AP is used as a medium for communication between STAs).
[0057] exist Figure 1C In the example of , MLD 172 and MLD 180 may be two separate physical devices, each of which includes multiple virtual or logical devices. For example, the multi-link AP logical entity may include three APs: AP 174 operating on 2.4 GHz (e.g., link 188), AP 176 operating on 5 GHz (e.g., link 190), and AP 178 operating on 6 GHz (e.g., link 192). In addition, the multi-link non-AP logical entity may include three non-AP STAs: non-AP STA 182 communicating with AP 174 on link 188, non-AP STA 184 communicating with AP 176 on link 190, and non-AP STA 186 communicating with AP 178 on link 192.
[0058] exist Figure 1C In FIG. 1 , MLD 172 is shown as accessing a distribution system (DS), which is a system for interconnecting a group of BSSs to create an extended service set (ESS). Figure 1C In FIG. 1 , MLD 172 is also shown as accessing a distribution system medium (DSM), which is a medium used by DS for BSS interconnection. In simple terms, DS and DSM allow AP to communicate with different BSSs.
[0059] It should be understood that while the example shows three logical entities within MLD 172 and three logical entities within MLD 180, this is for illustration purposes only and other numbers of logical entities per MLD are contemplated.
[0060] It is to be understood that the above description is for the purpose of illustration, and is not intended to be limiting.
[0061] Figure 2 An example network encoding 200 of a plurality of packets is depicted according to one or more example embodiments of the present disclosure.
[0062] Reference Figure 2 , example network coding 200 includes encoding two packets 202: P1 and P2, but other numbers of packets may be encoded in the same manner. Two packets 202 may be encoded (e.g., using NC 0.5) into coded packets 204: R1, R2, R3, and R4. Because of lossy transmission (e.g., packet loss probability "e"), received packets 206 may include coded packets R1 and R3 (e.g., coded packets R2 and R4 may be lost in transmission). Decoding coded packets R1 and R3 may result in output packets that are input packets 202: P1 and P2.
[0063] Figure 3 Graph 300 illustrates network coding performance when using systematic codes according to one or more example embodiments of the present disclosure.
[0064] Reference Figure 3 Graph 300 compares packet error rate vs. spectral efficiency for network coding and repetition, assuming a single packet transmission error occurs with probability 0.1. Network coding provides a better rate-reliability tradeoff than repetition, and this tradeoff improves as the coding group size (k) increases.
[0065] Figure 4 Depicted is an example MLD transmission of an Aggregate Medium Access Control (MAC) Protocol Data Unit (A-MPDU) using network coding in accordance with one or more example embodiments of the present disclosure.
[0066] Reference Figure 4 , A-MPDU 138 and MLD 140 of FIG. 1 may use first link 142 and second link 144 to send A-MPDUs (e.g., A-MPDU 402 and A-MPDU 404) to each other. For example, A-MPDU 402 may include data packets D1 and D2 and parity packets P1 and P2 generated from network coding of D1 and D2. A-MPDU 404 may include data packets D3 and D4 and parity packets P3 and P4 generated from network coding of D3 and D4. Each packet and parity packet may include an MPDU with a MAC header including a new A-Control subfield, as further described herein.
[0067] For example, data packet D3 may include an MPDU delimiter 406, an MPDU 408, and padding 410. MPDU 408 may include a MAC header 412, a frame body 414 (e.g., with data), and an FCS 416. MAC header 412 may include an A-Control subfield 418 for network coding. Similarly, parity packet P4 may include an MPDU delimiter 420, an MPDU 422, and padding 424. MPDU 422 may include a MAC header 426, a frame body 428 (e.g., for parity check), and an FCS 430. MAC header 426 may include an A-Control subfield 432 for network coding. Other data and parity packets may include an MPDU with a corresponding A-Control subfield.
[0068] In one or more embodiments, A-Control subfields 418 and 432 may be formatted as shown in Table 1 below.
[0069] Table 1: A-Control subfield format
[0070] Control ID NC code type (m) k p i g
[0071] The A-Control subfields 418 and 432 may be defined as follows:
[0072] Control ID (4 bits): New value for network coding.
[0073] NC code type: m (2 digits), up to 4 different NC code types (e.g.
[0074] RS(31,x), RS(63,x), RS(127,x), RS(255,x)), where RS(a,b) is a Reed-Solomon code with a maximum number of coding groups of a and a number of data groups of b.
[0075] Total number of data packets: k (7 bits);
[0076] Up to 128 groups.
[0077] Total number of parity check packets: p (7 bits);
[0078] Up to 128 parity check packets.
[0079] · Group index after NC encoding: i (8 bits); 0-255.
[0080] use Figure 4 In the example, the A-Control subfield of D1 may include (m, k, p, i) values of 1, 4, 4, 1; the A-Control subfield of D2 may include (m, k, p, i) values of 1, 4, 4, 2; the A-Control subfield of D3 may include (m, k, p, i) values of 1, 4, 4, 3; the A-Control subfield of D4 may include (m, k, p, i) values of 1, 4, 4, 4; the A-Control subfield of P1 may include (m, k, p, i) values of 1, 4, 4, 5; the A-Control subfield of P2 may include (m, k, p, i) values of 1, 4, 4, 6; the A-Control subfield of P3 may include (m, k, p, i) values of 1, 4, 4, 7; the A-Control subfield of P4 may include (m, k, p, i) values of 1, 4, 4, 8.
[0081] NC Group Index: g (2 bits) of the A-Control subfield indicates up to four NC groups (0-3) to support different NC groups in an A-MPDU or across multiple A-MPDUs.
[0082] The A-Control subfield design shown above in Table 1 supports a maximum number of NC coded packets up to 255 and a maximum number of data packets up to 128. The NC code rate ranges from k / n=2 / 255 to 128 / 129, where k is the number of data packets and n is the number of total coded data packets (k+p). Shortening and puncturing are used to support different numbers of data packets and parity packets. Given an NC code type, the AP and STA should also agree on the shortening and puncturing pattern for each combination of (k,n) to make the decoding unique. This can be predefined by the standard.
[0083] Parameters repeated for the same NC group index may be removed in an A-MPDU subframe.
[0084] When the receiver receives a MAC frame (e.g., the A-MPDU represented by frame 146 or the A-MPDU represented by frame 147), it decodes the A-Control subfield. When the index subfield 'i' is less than or equal to the data packet number subfield 'k', the received packet is the i-th data packet. For example, in the example figure, D2 contains an A-Control subfield of NC(m,k,p,i)=NC(1,4,4,2), and the MAC frame is the second data packet. When the index subfield 'i' is greater than the data packet number subfield 'k', the received packet is the (ik)th parity packet. For example, in the example figure, P1 contains an A-Control subfield of NC(m,k,p,i)=NC(1,4,4,5), and the MAC frame is the (ik)=first parity packet.
[0085] The A-MPDU subframe including the parity packet reuses the SNs of k data packets. For example, the first parity packet uses the SN of the first data packet, and the second parity packet uses the SN of the second data packet, and so on.
[0086] When a MAC frame is received with errors, the MAC frame is marked as erased and NC decoding is performed with the successfully received parity packets to recover the lost data packets.
[0087] The number of parity packets may be determined based on PER estimates from previous frame exchanges.
[0088] The non-AP MLD can request which TID to use for NC encoding.
[0089] Figure 5 An example diagram illustrating a process 500 for network coding using an A-MPDU in accordance with one or more embodiments of the present disclosure.
[0090] At block 502, a device (eg, AP 102 or user equipment 120 of FIG. 1 , Figure 7 The enhanced encoding device 719 of the embodiment can identify the A-MPDU received from the other device. For example, the device and the other device can be MLDs, and the A-MPDU can be exchanged using one or more links (e.g., such as Figure 4 ). Each A-MPDU may include a data packet and a parity packet generated based on the data packet. Both the data packet and the parity packet may include an MPDU. In order to identify the data packet and the parity packet, the device may decode the A-Control subfield of the MPDU, thereby allowing the recovery of data packets not received by the device and identifying redundant data packets and parity packets.
[0091] At block 504, the device may decode the A-Control subfield of the corresponding MPDU of the corresponding A-MPDU. Figure 4 As shown, the MPDU of the data or parity packet in the A-MPDU may include a MAC header with a new A-Control subfield. The A-Control subfield may indicate the network coding scheme used for the MDPU, the total number of data packets in the A-MPDU sequence sent, the total number of parity packets in the A-MPDU sequence sent, a packet index indicating that the corresponding MDPU is the i-th packet in the total number of packets, and an NC group index. The number of parity packets generated based on the data packets in the A-MPDU may be based on the network coding scheme used. The parity packet may include the same information in the MPDU payload so that the device can recover the payload of the data packet that was not received correctly. The device may use the packet index to identify any MPDU as including data or parity packets, and determine when the parity packet corresponds to a received or lost data packet.
[0092] At block 506, the device may determine a network coding type based on the A-Control subfield. At block 508, the device may determine a total number of data packets included in an A-MPDU sent by another device based on the A-Control subfield. At block 510, the device may determine a total number of parity packets included in an A-MPDU sent by another device based on the A-Control subfield. At block 512, the device may determine a corresponding packet index for the decoded corresponding MPDU.
[0093] In box 514, the device can determine whether the decoded corresponding MPDU is a data packet or a parity packet based on the packet index. When the packet index subfield 'i' is less than or equal to the data packet number subfield 'k', the received packet is the i-th data packet. When the packet index subfield is greater than the data packet number subfield, the received packet is a parity packet. If the data packet is not received, the corresponding parity packet from the network coding can be used to recover the data of the lost data packet. When the index subfield 'i' is greater than the data packet number subfield 'k', the received packet is the (ik)th parity packet. For example, when the parity packet P1 contains an A-Control subfield of NC(m,k,p,i)=NC(1,4,4,5), the MAC frame is (ik)=first parity packet. The A-MPDU subframe containing the parity packet reuses the SN of k data packets. For example, the first parity packet uses the sequence number (SN) of the first data packet, and the second parity packet uses the SN of the second data packet, and so on. When a MAC frame is received with errors, the MAC frame is marked as erased and NC decoding is performed with successfully received parity packets to recover the lost data packets. The number of parity packets can be determined based on an estimate of the packet error rate (PER) of previous frame exchanges.
[0094] It is to be understood that the above description is intended for purposes of illustration, and is not intended to be limiting.
[0095] Figure 6 1 shows a functional diagram of an exemplary communication station 600 according to one or more example embodiments of the present disclosure. In one embodiment, Figure 6 102 ( Figure 1A ) or user equipment 120( Figure 1A ) is a functional block diagram of a communication station of the present invention. The communication station 600 may also be suitable for use as a handheld device, a mobile device, a cellular phone, a smart phone, a tablet, a netbook, a wireless terminal, a laptop computer, a wearable computer device, a femtocell, a high data rate (HDR) subscriber station, an access point, an access terminal, or other personal communication system (PCS) device.
[0096] The communication station 600 may include a communication circuit 602 and a transceiver 610 for sending signals to other communication stations and receiving signals from other communication stations using one or more antennas 601. The communication circuit 602 may include circuits that can operate physical layer (PHY) communications and / or medium access control (MAC) communications for controlling access to a wireless medium and / or any other communication layer for sending and receiving signals. The communication station 600 may also include a processing circuit 606 and a memory 608 arranged to perform the operations described herein. In some embodiments, the communication circuit 602 and the processing circuit 606 may be configured to perform the operations detailed in the above figures, diagrams, and processes.
[0097] According to some embodiments, the communication circuit 602 may be arranged to: compete for a wireless medium and configure a frame or packet for transmission over the wireless medium. The communication circuit 602 may be arranged to send and receive signals. The communication circuit 602 may also include circuits for modulation / demodulation, up-conversion / down-conversion, filtering, amplification, etc. In some embodiments, the processing circuit 606 of the communication station 600 may include one or more processors. In other embodiments, two or more antennas 601 may be coupled to the communication circuit 602 arranged to send and receive signals. The memory 608 may store information for configuring the processing circuit 606 to perform the following operations, which are used to configure and send message frames and perform various operations described herein. The memory 608 may include any type of memory (including non-transitory memory) for storing information in a machine (e.g., computer) readable form. For example, the memory 608 may include a computer-readable storage device, a read-only memory (ROM), a random access memory (RAM), a disk storage medium, an optical storage medium, a flash memory device, and other storage devices and media.
[0098] In some embodiments, the communication station 600 can be part of a portable wireless communication device (e.g., a personal digital assistant (PDA), a laptop or portable computer with wireless communication capabilities, a web tablet, a wireless phone, a smart phone, a wireless headset, a pager, an instant messaging device, a digital camera, an access point, a television, a medical device (e.g., a heart rate monitor, a blood pressure monitor, etc.), a wearable computer device, or another device that can wirelessly receive and / or send information).
[0099] In some embodiments, the communication station 600 may include one or more antennas 601. Antenna 601 may include one or more directional or omnidirectional antennas, including, for example, dipole antennas, monopole antennas, patch antennas, loop antennas, microstrip antennas, or other types of antennas suitable for transmitting RF signals. In some embodiments, instead of two or more antennas, a single antenna with multiple apertures may be used. In these embodiments, each aperture may be considered a separate antenna. In some multiple-input multiple-output (MIMO) embodiments, the antennas may be effectively separated for spatial diversity and different channel characteristics that may be generated between each antenna and the antenna of the transmitting station.
[0100] In some embodiments, the communication station 600 may include one or more of a keyboard, a display, a non-volatile memory port, multiple antennas, a graphics processor, an application processor, a speaker, and other mobile device elements. The display may be an LCD screen including a touch screen.
[0101] Although the communication station 600 is shown as having several separate functional elements, two or more of the functional elements may be combined and may be implemented by a combination of software-configured elements (e.g., a processing element including a digital signal processor (DSP)) and / or other hardware elements. For example, some elements may include one or more microprocessors, DSPs, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), radio frequency integrated circuits (RFICs), and combinations of various hardware and logic circuits for performing at least the functions described herein. In some embodiments, the functional elements of the communication station 600 may refer to one or more processes operating on one or more processing elements.
[0102] Certain embodiments may be implemented in one or a combination of hardware, firmware, and software. Other embodiments may also be implemented as instructions stored on a computer-readable storage device, which may be read and executed by at least one processor to perform the operations described herein. A computer-readable storage device may include any non-transient memory mechanism for storing information in a machine (e.g., computer) readable form. For example, a computer-readable storage device may include a read-only memory (ROM), a random access memory (RAM), a disk storage medium, an optical storage medium, a flash memory device, and other storage devices and media. In some embodiments, the communication station 600 may include one or more processors and may be configured with instructions stored on a computer-readable storage device.
[0103] Figure 7A block diagram of an example of a machine 700 or system on which any one or more technologies (e.g., methods) discussed herein can be executed is shown. In other embodiments, the machine 700 can operate as a standalone device, or can be connected (e.g., networked) to other machines. In a networked deployment, the machine 700 can operate as a server machine, a client machine, or both in a server-client network environment. In an example, the machine 700 can act as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. The machine 700 can be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a wearable computer device, a network appliance, a network router, a switch or a bridge, or any machine capable of (sequentially or otherwise) executing instructions specifying the action to be taken by the machine (e.g., a base station). In addition, although only a single machine is shown, the term "machine" should also be deemed to include any collection of machines that execute a set (or multiple sets) of instructions individually or jointly to perform any one or more methods discussed herein, such as cloud computing, software as a service (SaaS) or other computer cluster configurations.
[0104] Examples as described herein may include logic or multiple components, modules or mechanisms, or may operate thereon. A module is a tangible entity (e.g., hardware) that can perform a specified operation when in operation. A module includes hardware. In an example, the hardware may be specifically configured to perform a specific operation (e.g., hardwired). In another example, the hardware may include a configurable execution unit (e.g., a transistor, a circuit, etc.) and a computer-readable medium containing instructions, wherein the instructions configure the execution unit to perform a specific operation when in operation. Configuration may occur under the guidance of an execution unit or a loading mechanism. Therefore, when the device is operating, the execution unit is communicatively coupled to the computer-readable medium. In this example, the execution unit may be a member of more than one module. For example, under operation, the execution unit may be configured by a first set of instructions to implement a first module at a point in time, and reconfigured by a second set of instructions to implement a second module at a second point in time.
[0105] The machine (e.g., computer system) 700 may include a hardware processor 702 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory 704, and a static memory 706, some or all of which may communicate with each other via an interconnect (e.g., a bus) 708. The machine 700 may also include a power management device 732, a graphics display device 710, an alphanumeric input device 712 (e.g., a keyboard), and a user interface (UI) navigation device 714 (e.g., a mouse). In an example, the graphics display device 710, the alphanumeric input device 712, and the UI navigation device 714 may be a touch screen display. The machine 700 may additionally include a storage device (i.e., a drive unit) 716, a signal generating device 718 (e.g., a speaker), an enhanced encoding device 719, a network interface device / transceiver 720 coupled to an antenna 730, and one or more sensors 728 (e.g., a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensor). The machine 700 may include an output controller 734, such as a serial (e.g., universal serial bus (USB)) connection, a parallel connection, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate with or control one or more peripheral devices (e.g., printers, card readers, etc.). Operations according to one or more example embodiments of the present disclosure may be performed by a baseband processor. The baseband processor may be configured to generate corresponding baseband signals. The baseband processor may also include a physical layer (PHY) and a media access control layer (MAC) circuit, and may also interface with the hardware processor 702 to generate and process baseband signals, and control the operation of the main memory 704, the storage device 716, and / or the enhanced coding device 719. The baseband processor may be provided on a single radio card, a single chip, or an integrated circuit (IC).
[0106] The storage device 716 may include a machine-readable medium 722 on which is stored one or more sets of data structures or instructions 724 (e.g., software) embodying or used by any one or more of the techniques or functionality described herein. The instructions 724 may also reside, completely or at least partially, within the main memory 704, within the static memory 706, or within the hardware processor 702 during execution thereof by the machine 700. In an example, one or any combination of the hardware processor 702, the main memory 704, the static memory 706, or the storage device 716 may constitute a machine-readable medium.
[0107] The enhanced encoding device 719 may run or perform any of the operations and processes described and illustrated above (eg, process 500 ).
[0108] It should be understood that the above is only a subset of the actions that the enhanced encoding device 719 can be configured to perform, and other functions included throughout the present disclosure can also be performed by the enhanced encoding device 719.
[0109] Although the machine-readable medium 722 is illustrated as a single medium, the term “machine-readable medium” may include a single medium or multiple media (eg, a centralized or distributed database, and / or associated caches and servers) configured to store one or more instructions 724 .
[0110] Various embodiments may be implemented in whole or in part in software and / or firmware. The software and / or firmware may take the form of instructions contained in or on a non-transitory computer-readable storage medium. Those instructions may then be read and executed by one or more processors to enable the operations described herein to be performed. The instructions may be in any suitable form, such as, but not limited to, source code, compiled code, interpreted code, executable code, static code, dynamic code, etc. Such computer-readable media may include any tangible, non-transitory media for storing information in one or more computer-readable forms, such as, but not limited to, read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory, etc.
[0111] The term "machine-readable medium" may include any medium capable of storing, encoding, or carrying instructions executed by the machine 700 and causing the machine 700 to perform any one or more of the techniques of the present disclosure, or any medium capable of storing, encoding, or carrying data structures used by or associated with such instructions. Non-limiting examples of machine-readable media may include solid-state memory and optical and magnetic media. In an example, a large-capacity machine-readable medium includes a machine-readable medium having a plurality of particles having a rest mass. Specific examples of large-capacity machine-readable media may include non-volatile memory, such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM) or electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
[0112] The instructions 724 may also be sent or received over a communication network 726 using a transmission medium via the network interface device / transceiver 720 using any of a variety of transmission protocols (e.g., frame relay, Internet Protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Example communication networks may include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), a mobile telephone network (e.g., a cellular network), a plain old telephone (POTS) network, a wireless data network (e.g., a wireless network called The Institute of Electrical and Electronics Engineers (IEEE) 802.11 series of standards, known as IEEE, 802.16 standard series), IEEE, 802.15.4 standard series and point-to-point (P2P) network, etc. In an example, the network interface device / transceiver 720 may include one or more physical sockets (e.g., Ethernet sockets, coaxial sockets, or telephone sockets) or one or more antennas to connect to the communication network 726. In an example, the network interface device / transceiver 720 may include multiple antennas to wirelessly communicate using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) technology. The term "transmission medium" should be understood to include any intangible medium that can store, encode, or carry instructions executed by the machine 700, and includes digital or analog communication signals or other intangible media to facilitate the communication of such software.
[0113] The operations and processes described and shown above may be performed or carried out in any suitable order desired in various implementations. In addition, in some implementations, at least a portion of the operations may be performed in parallel. In addition, in some implementations, less than or more than the operations described may be performed.
[0114] Figure 8 is a block diagram of a radio architecture 105A, 105B according to some embodiments, which may be Figure 1A The example AP, 102 and / or example STA, 120 are implemented in any one of them. The radio architecture 105A, 105B may include a radio front end module (FEM) circuit 804a-b, a radio IC circuit 806a-b, and a baseband processing circuit 808a-b. The radio architecture 105A, 105B as shown includes both a wireless local area network (WLAN) function and a Bluetooth (BT) function, but the embodiment is not limited thereto. In the present disclosure, "WLAN" and "Wi-Fi" are used interchangeably.
[0115] The FEM circuits 804a-b may include WLAN or Wi-Fi, FEM circuits 804a and Bluetooth (BT) FEM circuits 804b. The WLAN, FEM circuits 804a may include a receive signal path including circuits configured to operate on WLAN RF signals received from one or more antennas 801, amplify the received signals, and provide an amplified version of the received signals to the WLAN radio IC circuit 806a for further processing. The BT, FEM circuits 804b may include a receive signal path including circuits configured to operate on BT, RF signals received from one or more antennas 801, amplify the received signals, and provide an amplified version of the received signals to the BT radio IC circuit 806b for further processing. The FEM circuits 804a may also include a transmit signal path including circuits configured to amplify WLAN signals provided by the radio IC circuit 806a for wireless transmission via the one or more antennas 801. Additionally, the FEM circuitry 804b may also include a transmit signal path that may include circuitry configured to amplify BT signals provided by the radio IC circuitry 806b for wireless transmission via one or more antennas. Figure 8 In the embodiments, although FEM, 804a and FEM, 804b are shown as being different from each other, the embodiments are not limited thereto and include within their scope: using a FEM (not shown) that includes a transmit path and / or receive path for both WLAN and BT signals, or using one or more FEM circuits, wherein at least some of the FEM circuits share transmit and / or receive signal paths for both WLAN and BT signals.
[0116] The radio IC circuits 806a-b as shown may include a WLAN radio IC circuit 806a and a BT radio IC circuit 806b. The WLAN radio IC circuit 806a may include a receive signal path that may include circuitry for down-converting a WLAN, RF signal received from the FEM circuit 804a and providing a baseband signal to the WLAN baseband processing circuit 808a. The BT radio IC circuit 806b may in turn include a receive signal path that may include circuitry for down-converting a BT, RF signal received from the FEM circuit 804b and providing a baseband signal to the BT baseband processing circuit 808b. The WLAN radio IC circuit 806a may also include a transmit signal path that may include circuitry for up-converting a WLAN baseband signal provided by the WLAN baseband processing circuit 808a and providing a WLAN, RF output signal to the FEM circuit 804a for subsequent wireless transmission via one or more antennas 801. The BT radio IC circuit 806b may also include a transmit signal path that may include circuitry for up-converting a BT baseband signal provided by the BT baseband processing circuit 808b and providing a BT,RF output signal to the FEM circuit 804b for subsequent wireless transmission via one or more antennas 801. Figure 8 In the embodiments, although the radio IC circuits 806a and 806b are shown as being different from each other, the embodiments are not limited thereto and include within their scope: using a radio IC circuit (not shown) that includes a transmit signal path and / or receive signal path for both WLAN and BT signals, or using one or more radio IC circuits, wherein at least some of the radio IC circuits share transmit and / or receive signal paths for both WLAN and BT signals.
[0117] The baseband processing circuits 808a-b may include WLAN baseband processing circuits 808a and BT baseband processing circuits 808b. The WLAN baseband processing circuits 808a may include a memory, such as a set of RAM arrays in a fast Fourier transform or inverse fast Fourier transform block (not shown) of the WLAN baseband processing circuits 808a. Each of the WLAN baseband circuits 808a and the BT baseband circuits 808b may also include one or more processors and control logic to process signals received from the corresponding WLAN or BT receive signal paths of the radio IC circuits 806a-b, and also generate corresponding WLAN or BT baseband signals for the transmit signal paths of the radio IC circuits 806a-b. Each of the baseband processing circuits 808a and 808b may also include physical layer (PHY) and medium access control layer (MAC) circuits, and may also interface with devices for generating and processing baseband signals and controlling the operation of the radio IC circuits 806a-b.
[0118] Still refer to Figure 8 According to the illustrated embodiment, the WLAN-BT coexistence circuit 813 may include logic to provide an interface between the WLAN baseband circuit 808a and the BT baseband circuit 808b to implement use cases requiring WLAN and BT coexistence. In addition, a switch 803 may be provided between the WLAN, FEM circuit 804a and the BT, FEM circuit 804b to allow switching between the WLAN and BT radios as required by the application. In addition, while the antenna 801 is depicted as being connected to the WLAN, FEM circuit 804a and the BT, FEM circuit 804b, respectively, embodiments include within their scope: sharing one or more antennas between the WLAN and BT, FEM, or providing more than one antenna connected to each FEM, 804a or 804b.
[0119] In some embodiments, the front end module circuits 804a-b, the radio IC circuits 806a-b, and the baseband processing circuits 808a-b may be provided on a single radio card (e.g., wireless radio card 802). In some other embodiments, one or more antennas 801, the FEM circuits 804a-b, and the radio IC circuits 806a-b may be provided on a single radio card. In some other embodiments, the radio IC circuits 806a-b and the baseband processing circuits 808a-b may be provided on a single chip or integrated circuit (IC) (e.g., IC, 812).
[0120] In some embodiments, wireless radio card 802 may include a WLAN radio card and may be configured for Wi-Fi communications, but the scope of the embodiments is not limited in this respect. In some of these embodiments, radio architecture 105A, 105B may be configured to receive and transmit orthogonal frequency division multiplexing (OFDM) or orthogonal frequency division multiple access (OFDMA) communication signals over a multi-carrier communication channel. OFDM or OFDMA signals may include multiple orthogonal subcarriers.
[0121] In some of these multi-carrier embodiments, the radio architecture 105A, 105B may be part of a Wi-Fi communication station (STA) (e.g., a wireless access point (AP), a base station, or a mobile device including a Wi-Fi device). In some of these embodiments, the radio architecture 105A, 105B may be configured to send and receive signals according to a specific communication standard and / or protocol (e.g., any of the Institute of Electrical and Electronics Engineers (IEEE) standards, including 802.11n-2009, IEEE, 802.11-2012, IEEE, 802.11-2016, 802.11n-2009, 802.11ac, 802.11ah, 802.11ad, 802.11ay and / or 802.11ax standards, and / or specifications proposed for WLANs), but the scope of the embodiments is not limited in this regard. The radio architecture 105A, 105B may also be adapted to send and / or receive communications according to other technologies and standards.
[0122] In some embodiments, the radio architectures 105A, 105B may be configured for high efficiency Wi-Fi (HEW) communications according to the IEEE, 802.11ax standard and EHT communications according to the IEEE, 802.11be standard. In these embodiments, the radio architectures 105A, 105B may be configured to communicate according to OFDMA technology, but the scope of the embodiments is not limited in this respect.
[0123] In some other embodiments, the radio architectures 105A, 105B may be configured to send signals and receive signals sent using one or more other modulation techniques, such as spread spectrum modulation (e.g., direct sequence code division multiple access (DS-CDMA) and / or frequency hopping code division multiple access (FH-CDMA)), time division multiplexing (TDM) modulation, and / or frequency division multiplexing (FDM) modulation, but the scope of the embodiments is not limited in this respect.
[0124] In some embodiments, Figure 8As further shown, the BT baseband circuit 808 b may comply with a Bluetooth (BT) connection standard, such as Bluetooth, Bluetooth 8.0, or Bluetooth 6.0, or any other generation of the Bluetooth standard.
[0125] In some embodiments, the radio architecture 105A, 105B may include other radio cards, such as a cellular radio card configured for cellular (e.g., 5GPP such as LTE, LTE-Advanced, or 7G communications).
[0126] In some IEEE, 802.11 embodiments, the radio architecture 105A, 105B can be configured to communicate on various channel bandwidths, including bandwidths with center frequencies of about 900 MHz, 2.4 GHz, 5 GHz, 6 GHz, and bandwidths of about 2 MHz, 4 MHz, 5 MHz, 5.5 MHz, 6 MHz, 8 MHz, 10 MHz, 20 MHz, 40 MHz, 80 MHz (with continuous bandwidth) or 80+80 MHz (160 MHz) (with non-continuous bandwidth). In some embodiments, a 920 MHz channel bandwidth can be used. However, the scope of the embodiments is not limited to the above center frequencies.
[0127] Fig. 9 WLAN, FEM circuit 904a is shown according to some embodiments. Fig. 9 The example is described in conjunction with WLAN, FEM circuit 804a, but can be combined with the example BT, FEM circuit 804b ( Figure 8 ) to describe Fig. 9 , although other circuit configurations may also be suitable.
[0128] In some embodiments, FEM circuit 904a may include TX / RX switch 902 to switch between transmit mode and receive mode operation. FEM circuit 804a may include a receive signal path and a transmit signal path. The receive signal path of FEM circuit 804a may include a low noise amplifier (LNA) 906 to amplify received RF signal 903 and provide an amplified received RF signal 907 as an output (e.g., provided to radio IC circuits 806a-b ( Figure 8 )). The transmit signal path of circuit 804a may include: a power amplifier (PA) for amplifying an input RF signal 909 (e.g., provided by radio IC circuits 806a-b); and one or more filters 912, such as bandpass filters (BPFs), lowpass filters (LPFs), or other types of filters, for generating an RF signal 915 for subsequent transmission via an example duplexer 914 (e.g., through one or more antennas 801 ( Figure 8 ))send.
[0129] In some dual-mode embodiments for Wi-Fi communications, the FEM circuit 804a can be configured to operate in the 2.4 GHz spectrum, the 5 GHz spectrum, and / or the 6 GHz spectrum. In these embodiments, the receive signal path of the FEM circuit 804a can include a receive signal path duplexer 904 to separate the signals from each spectrum and provide a separate LNA, 906 for each spectrum, as shown. In these embodiments, the transmit signal path of the FEM circuit 804a can also include a power amplifier 910 and a filter 912 (e.g., a BPF, LPF, or another type of filter) for each spectrum and a transmit signal path duplexer 904 to provide the signal of one of the different spectrums onto a single transmit path for subsequent transmission through one or more antennas 801 ( Figure 8 In some embodiments, BT communications may utilize a 2.4 GHz signal path and may utilize the same FEM circuit 804a as that used for WLAN communications.
[0130] Fig.10 806a according to some embodiments. The radio IC circuit 806a may be suitable for use as a WLAN or BT radio IC circuit 806a / 806b ( Figure 8 ) is an example of a circuit, but other circuit configurations may also be suitable. Alternatively, the example BT radio IC circuit 806b may be described in conjunction with the example BT radio IC circuit 806b. Fig.10 .
[0131] In some embodiments, the radio IC circuit 806a may include a receive signal path and a transmit signal path. The receive signal path of the radio IC circuit 806a may include at least a mixer circuit 1002 (e.g., a down-conversion mixer circuit), an amplifier circuit 1006, and a filter circuit 1008. The transmit signal path of the radio IC circuit 806a may include at least a filter circuit 1012 and a mixer circuit 1014 (e.g., an up-conversion mixer circuit). The radio IC circuit 806a may also include a synthesizer circuit 1004 for synthesizing a frequency 1005 for use by the mixer circuit 1002 and the mixer circuit 1014. According to some embodiments, the mixer circuits 1002 and / or 1014 may each be configured to provide a direct conversion function. The latter type of circuit presents a much simpler architecture than a standard superheterodyne mixer circuit, and any flicker noise introduced therefrom may be mitigated by, for example, using OFDM modulation. Fig.10Only a simplified version of the radio IC circuit is shown, and may include (although not shown) embodiments in which each of the depicted circuits may include more than one component. For example, mixer circuits 1014 may each include one or more mixers, and filter circuits 1008 and / or 1012 may each include one or more filters, such as one or more BPFs and / or LPFs as required by the application. For example, when the mixer circuits are of the direct conversion type, they may each include two or more mixers.
[0132] In some embodiments, the mixer circuit 1002 may be configured to: based on the synthesized frequency 1005 provided by the synthesizer circuit 1004, Figure 8 ) down-converts the received RF signal 907. The amplifier circuit 1006 may be configured to amplify the down-converted signal, and the filter circuit 1008 may include an LPF configured to remove unwanted signals from the down-converted signal to generate an output baseband signal 1007. The output baseband signal 1007 may be provided to the baseband processing circuits 808a-b ( Figure 8 ) for further processing. In some embodiments, output baseband signal 1007 may be a zero frequency baseband signal, but this is not a requirement. In some embodiments, mixer circuit 1002 may include a passive mixer, but the scope of the embodiments is not limited in this respect.
[0133] In some embodiments, mixer circuit 1014 may be configured to up-convert input baseband signal 1011 based on synthesized frequency 1005 provided by synthesizer circuit 1004 to generate RF output signal 909 for FEM circuits 804a-b. Baseband signal 1011 may be provided by baseband processing circuits 808a-b and may be filtered by filter circuit 1012. Filter circuit 1012 may include an LPF or a BPF, although the scope of the embodiments is not limited in this respect.
[0134] In some embodiments, mixer circuit 1002 and mixer circuit 1014 may each include two or more mixers and may be arranged for quadrature down-conversion and / or up-conversion, respectively, with the aid of synthesizer 1004. In some embodiments, mixer circuit 1002 and mixer circuit 1014 may each include two or more mixers, each mixer being configured for image rejection (e.g., Hartley image rejection). In some embodiments, mixer circuit 1002 and mixer circuit 1014 may each be arranged for direct down-conversion and / or direct up-conversion, respectively. In some embodiments, mixer circuit 1002 and mixer circuit 1014 may be configured for superheterodyne operation, but this is not a requirement.
[0135] According to one embodiment, mixer circuit 1002 may include: quadrature passive mixers (eg, for in-phase (I) and quadrature-phase (Q) paths). In such an embodiment, Fig. 9 The RF input signal 907 may be downconverted to provide I and Q baseband output signals to be sent to a baseband processor.
[0136] The quadrature passive mixers may be driven by zero and ninety degree time varying LO switching signals provided by a quadrature circuit, which may be configured to receive the LO frequency (fLO) from a local oscillator or synthesizer, such as synthesizer 1004 ( Fig.10 ) 1005. In some embodiments, the LO frequency can be the carrier frequency, while in other embodiments, the LO frequency can be a fraction of the carrier frequency (e.g., half the carrier frequency, one third the carrier frequency). In some embodiments, the zero-degree and ninety-degree time-varying switching signals can be generated by a synthesizer, but the scope of the embodiments is not limited in this respect.
[0137] In some embodiments, the LO signal can differ in duty cycle (the percentage of a cycle that the LO signal is high) and / or offset (the difference between the start points of the cycle). In some embodiments, the LO signal can have an 85% duty cycle and an 80% offset. In some embodiments, each branch of the mixer circuit (e.g., the in-phase (I) and quadrature-phase (Q) paths) can operate at an 80% duty cycle, which can result in significant reductions in power consumption.
[0138] RF input signal 907 ( Fig. 9 ) may include balanced signals, although the scope of the embodiments is not limited in this respect. The I and Q baseband output signals may be provided to a low noise amplifier (eg, amplifier circuit 1006 ( Fig.10 )) or filter circuit 1008 ( Fig.10 ).
[0139] In some embodiments, output baseband signal 1007 and input baseband signal 1011 may be analog baseband signals, but the scope of the embodiments is not limited in this respect. In some alternative embodiments, output baseband signal 1007 and input baseband signal 1011 may be digital baseband signals. In these alternative embodiments, the radio IC circuit may include analog-to-digital converter (ADC) and digital-to-analog converter (DAC) circuits.
[0140] In some dual-mode embodiments, separate radio IC circuits may be provided to process signals for each spectrum or other spectrums not mentioned herein, although the scope of the embodiments is not limited in this respect.
[0141] In some embodiments, synthesizer circuit 1004 may be a fractional-N synthesizer or a fractional N / N+1 synthesizer, but the scope of the embodiments is not limited in this respect as other types of frequency synthesizers may be suitable. For example, synthesizer circuit 1004 may be a delta-sigma synthesizer, a frequency multiplier, or a synthesizer including a phase-locked loop with a frequency divider. According to some embodiments, synthesizer circuit 1004 may include a digital synthesizer circuit. An advantage of using a digital synthesizer circuit is that, while it may still include some analog components, its footprint may be reduced to a much smaller footprint than that of an analog synthesizer circuit. In some embodiments, the frequency input to synthesizer circuit 1004 may be provided by a voltage controlled oscillator (VCO), but this is not a requirement. Baseband processing circuits 808a-b ( Figure 8 ) may further provide a divider control input depending on the desired output frequency 1005. In some embodiments, the divider control input (e.g., N) may be determined from a lookup table (e.g., within a Wi-Fi card) based on a channel number and a channel center frequency determined or indicated by the example application processor 810. The application processor 810 may include or otherwise be connected to one of the example secure signal converter 101 or the example receive signal converter 103 (e.g., depending on which device the example radio architecture is implemented in).
[0142] In some embodiments, the synthesizer circuit 1004 can be configured to generate a carrier frequency as the output frequency 1005, while in other embodiments, the output frequency 1005 can be a fraction of the carrier frequency (e.g., half the carrier frequency, one third the carrier frequency). In some embodiments, the output frequency 1005 can be the LO frequency (fLO).
[0143] Fig.11 808a according to some embodiments. The baseband processing circuit 808a is a functional block diagram of a baseband processing circuit 808a that can be suitable for use as a baseband processing circuit 808a ( Figure 8 ) is an example of a circuit, but other circuit configurations may also be suitable. Alternatively, Fig.10 Example implementation of Figure 8 An example BT baseband processing circuit 808b.
[0144] Baseband processing circuitry 808a may include circuitry for processing radio IC circuitry 806a-b ( Figure 8 ) and a transmit baseband processor (TX, BBP) 1104 for generating a transmit baseband signal 1111 for use with the radio IC circuits 806a-b. The baseband processing circuit 808a may also include control logic 1106 for coordinating the operation of the baseband processing circuit 808a.
[0145] In some embodiments (e.g., when analog baseband signals are exchanged between baseband processing circuits 808a-b and radio IC circuits 806a-b), baseband processing circuits 808a may include ADCs 1110 to convert analog baseband signals 1109 received from radio IC circuits 806a-b into digital baseband signals for processing by RX, BBP, 1102. In these embodiments, baseband processing circuits 808a may also include DACs 1112 to convert digital baseband signals from TX, BBP, 1104 into analog baseband signals 1111.
[0146] In some embodiments where an OFDM signal or OFDMA signal is passed, for example, by the baseband processor 808a, the transmit baseband processor 1104 may be configured to generate an OFDM or OFDMA signal suitable for transmission by performing an inverse fast Fourier transform (IFFT). The receive baseband processor 1102 may be configured to process the received OFDM signal or OFDMA signal by performing an FFT. In some embodiments, the receive baseband processor 1102 may be configured to detect the presence of an OFDM signal or OFDMA signal by performing an autocorrelation to detect a preamble (e.g., a short preamble) and by performing a cross-correlation to detect a long preamble. The preamble may be part of a predetermined frame structure for Wi-Fi communications.
[0147] Return to reference Figure 8 In some embodiments, antenna 801 ( Figure 8 ) can each include one or more directional or omnidirectional antennas, including, for example, dipole antennas, monopole antennas, patch antennas, loop antennas, microstrip antennas, or other types of antennas suitable for transmitting RF signals. In some multiple-input multiple-output (MIMO) embodiments, the antennas can be effectively separated to take advantage of spatial diversity and different channel characteristics that may result. Antennas 801 can each include a set of phased array antennas, but the embodiments are not limited thereto.
[0148] Although the radio architectures 105A, 105B are shown as having several separate functional elements, one or more of the functional elements may be combined and may be implemented by a combination of software-configured elements (e.g., a processing element including a digital signal processor (DSP)) and / or other hardware elements. For example, some elements may include one or more microprocessors, DSPs, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), radio frequency integrated circuits (RFICs), and combinations of various hardware and logic circuits for performing at least the functions described herein. In some embodiments, a functional element may refer to one or more processes operating on one or more processing elements.
[0149] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or better than other embodiments. The terms "computing device," "user device," "communication station," "station," "handheld device," "mobile device," "wireless device," and "user equipment" (UE) as used herein refer to wireless communication devices such as cellular phones, smart phones, tablets, netbooks, wireless terminals, laptops, femtocells, high data rate (HDR) subscriber stations, access points, printers, point of sale devices, access terminals, or other personal communication system (PCS) devices. The device may be mobile or stationary.
[0150] As used within this document, the term "communication / transfer" is intended to include sending or receiving, or both sending and receiving. This may be particularly useful in claims when describing the organization of data sent by one device and received by another device, but only the functionality of one of these devices is required to infringe the claim. Similarly, a two-way data exchange between two devices (both devices send and receive during the exchange) may be described as "communication / transfer" when only the functionality of one of these devices is claimed. The term "communication / transfer" used herein with respect to wireless communication signals includes sending wireless communication signals and / or receiving wireless communication signals. For example, a wireless communication unit capable of transmitting wireless communication signals may include a wireless transmitter for sending wireless communication signals to at least one other wireless communication unit, and / or a wireless communication receiver for receiving wireless communication signals from at least one other wireless communication unit.
[0151] As used herein, unless otherwise indicated, the use of ordinal adjectives "first," "second," "third," etc. to describe common objects merely indicates that different instances of similar objects are referred to and is not intended to imply that the objects so described must be in a given order temporally, spatially, hierarchically, or in any other manner.
[0152] The term "access point" (AP) used herein may be a fixed station. An access point may also be referred to as an access node, a base station, an evolved Node B (eNodeB), or some other similar terms known in the art. An access terminal may also be referred to as a mobile station, a user equipment (UE), a wireless communication device, or some other similar terms known in the art. Embodiments disclosed herein generally relate to wireless networks. Some embodiments may relate to a wireless network operating according to one of the IEEE, 802.11 standards.
[0153] Some embodiments may be used in conjunction with various devices and systems (e.g., personal computers (PCs), desktop computers, mobile computers, laptop computers, notebook computers, tablet computers, server computers, handheld computers, handheld devices, personal digital assistant (PDA) devices, handheld PDA devices, on-board devices, off-board devices, hybrid devices, vehicle-mounted devices, non-vehicle-mounted devices, mobile or portable devices, consumer devices, non-mobile or non-portable devices, wireless communication stations, wireless communication devices, wireless access points (APs), wired or wireless routers, wired or wireless modems, video devices, audio devices, audio-video (A / V) devices, wired or wireless networks, wireless area networks, wireless video area networks (WVANs), local area networks (LANs), wireless LANs (WLANs), personal area networks (PANs), wireless PANs (WPANs), etc.).
[0154] Some embodiments may be used in conjunction with the following devices: one-way and / or two-way radio communication systems, cellular radio telephone communication systems, mobile phones, cellular phones, wireless phones, personal communication system (PCS) devices, PDA devices including wireless communication devices, mobile or portable global positioning system (GPS) devices, devices including GPS receivers or transceivers or chips, devices including RFID elements or chips, multiple-input multiple-output (MIMO) transceivers or devices, single-input multiple-output (SIMO) transceivers or devices, multiple-input single-output (MISO) transceivers or devices, devices with one or more internal antennas and / or external antennas, digital video broadcasting (DVB) devices or systems, multi-standard radio devices or systems, wired or wireless handheld devices (e.g., smart phones), wireless application protocol (WAP) devices, etc.
[0155] Some embodiments may be coupled to one or more types of wireless communication signals and / or systems conforming to one or more wireless communication protocols (e.g., radio frequency (RF), infrared (IR), frequency division multiplexing (FDM), orthogonal FDM (OFDM), time division multiplexing (TDM), time division multiple access (TDMA), extended TDMA (E-TDMA), general packet radio service (GPRS), extended GPRS, code division multiple access (CDMA), wideband CDMA (WCDMA), CDMA, 2000, single carrier CDMA, multi-carrier CDMA, multi-carrier modulation (MDM), discrete multi-tone (DMT), The present invention can be used in combination with the global positioning system (GPS), Wi-Fi, Wi-Max, ZigBee, ultra-wideband (UWB), global system for mobile communications (GSM), 2G, 2.5G, 3G, 3.5G, 4G, fifth generation (5G) mobile network, 3GPP, long term evolution (LTE), LTE, Advanced, enhanced data rate for GSM evolution (EDGE), etc. Other embodiments can be used in various other devices, systems and / or networks.
[0156] The following examples pertain to further embodiments.
[0157] Embodiments according to the present disclosure are specifically disclosed in the attached claims relating to methods, storage media, devices, and computer program products, wherein any feature mentioned in one claim category (e.g., method) may also be claimed in another claim category (e.g., system). Dependencies or reverse references in the attached claims are selected for formal reasons only. However, any subject matter resulting from intentional reverse reference to any previous claim (especially multiple dependencies) may also be claimed, so that any combination of claims and their features is disclosed and may be claimed regardless of the dependencies selected in the attached claims. The subject matter that may be claimed includes not only the combination of features set forth in the attached claims, but also any other combination of features in the claims, wherein each feature mentioned in the claims may be combined with any other feature or combination of other features in the claims. In addition, any embodiments and features described or depicted herein may be claimed in separate claims, and / or in any combination with any embodiment or feature described or depicted herein or with any feature of the attached claims.
[0158] The above description of one or more implementations provides illustration and description, but is not intended to be exhaustive or to limit the scope of the embodiments to the precise forms disclosed. Modifications and variations are possible in light of the above teachings, or they may be acquired from practice of various embodiments.
[0159] Various examples of the present disclosure are provided below.
[0160] Example 1 may include: a device using network coding for an aggregate medium access control (MAC) protocol data unit (A-MPDU), the device including a processing circuit, the processing circuit coupled to a memory, the processing circuit configured to: identify an A-MPDU received from a second device; decode an A-Control subfield of a MAC header of an MPDU of the A-MPDU; determine a network coding type used to generate the MPDU based on decoding the A-Control subfield; determine a total number of data packets included in the A-MPDU based on decoding the A-Control subfield; determine a total number of parity packets included in the A-MPDU based on decoding the A-Control subfield, the parity packets being based on the data packets; determine a packet index for the MPDU based on decoding the A-Control subfield, the packet index indicating that the MPDU is the i-th packet of the A-MPDU; and determine whether the MPDU is included in a data packet in the total number of data packets or a parity packet in the total number of parity packets based on a comparison of the packet index with the total number of data packets.
[0161] Example 2 may include: a device as described in Example 1 and / or any other example herein, wherein the MPDU is included in a parity packet in the total number of parity packets, and wherein the processing circuit is further configured to: determine that the device has not received a data packet in the total number of data packets; and determine that the frame body of the parity packet includes the content of the frame body of the data packet not received by the device.
[0162] Example 3 may include: a device as described in Example 2 and / or any other example herein, wherein determining that the frame body of the parity packet includes the content of the frame body of the data packet not received by the device includes: based on the comparison, determining that the packet index is greater than the total number of data packets; based on determining that the packet index is greater than the total number of data packets, determining that the MPDU is included in the parity packet; determining the difference between the packet index and the total number of data packets; and based on the difference, determining that the parity packet is based on the data packet not received by the device.
[0163] Example 4 may include: a device as described in Example 1 and / or any other example herein, wherein the MPDU is included in a parity packet in the total number of parity packets, and wherein the processing circuit is further configured to: determine that the device has received a data packet in the total number of data packets; and determine that the frame body of the parity packet includes the content of the frame body of the data packet received by the device.
[0164] Example 5 may include: a device as described in Example 4 and / or any other example herein, wherein determining that the frame body of the parity packet includes the contents of the frame body of the data packet received by the device includes: determining, based on the comparison, that the packet index is greater than the total number of data packets; determining, based on determining that the packet index is greater than the total number of data packets, that the MPDU is included in the parity packet; determining a difference between the packet index and the total number of data packets; and determining, based on the difference, that the parity packet is based on the data packet received by the device.
[0165] Example 6 may include: a device as described in Example 1 and / or any other example herein, wherein the MPDU is included in a data packet in the total number of data packets, and wherein the processing circuit is further configured to: identify a second A-MPDU received from the second device; decode a second A-Control subfield of a second MAC header of a second MPDU of the second A-MPDU; determine a second packet index for the second MPDU based on decoding the second A-Control subfield, the second packet index indicating that the second MPDU is the jth packet of the A-MPDU; and determine, based on a comparison of the second packet index with the total number of data packets, whether the second MPDU is included in a data packet in the total number of data packets or a parity packet in the total number of parity packets.
[0166] Example 7 may include: an apparatus as described in Example 6 and / or any other example herein, wherein the MPDU is included in a first data packet of the total number of data packets, and wherein the second MPDU is included in a second data packet of the total number of data packets.
[0167] Example 8 may include: an apparatus as described in Example 6 and / or any other example herein, wherein the MPDU is included in a data packet in the total number of data packets, and wherein the second MPDU is included in a parity packet in the total number of parity packets.
[0168] Example 9 may include: a device as described in Example 8 and / or any other example herein, wherein the processing circuit is further configured to: determine, based on the comparison, that the second packet index is greater than the total number of data packets; determine, based on determining that the second packet index is greater than the total number of data packets, that the second MPDU is included in the parity packet; determine a difference between the second packet index and the total number of data packets; and determine, based on the difference, that the parity packet is based on a data packet not received by the device.
[0169] Example 10 may include: a device as described in any of Examples 6-9 and / or any other examples herein, wherein the device is a first multi-link device (MLD), wherein the second device is a second MLD, wherein the A-MPDU is received using a first communication link between the first MLD and the second MLD, and wherein the second A-MPDU is received using a second communication link between the first MLD and the second MLD.
[0170] Example 11 may include: a computer-readable storage medium including instructions, which, when executed by a processing circuit of a wireless device, cause the processing circuit to: identify an A-MPDU received from a second wireless device; decode an A-Control subfield of a MAC header of an MPDU of the A-MPDU; determine a network coding type used to generate the MPDU based on decoding the A-Control subfield; determine a total number of data packets included in the A-MPDU based on decoding the A-Control subfield; determine a total number of parity packets included in the A-MPDU based on decoding the A-Control subfield, the parity packets being based on the data packets; determine a packet index for the MPDU based on decoding the A-Control subfield, the packet index indicating that the MPDU is the i-th packet of the A-MPDU; and determine whether the MPDU is included in a data packet in the total number of data packets or a parity packet in the total number of parity packets based on a comparison of the packet index with the total number of data packets.
[0171] Example 12 may include: a computer-readable storage medium as described in Example 11 and / or any other example herein, wherein the MPDU is included in a parity packet in the total number of parity packets, and wherein execution of the processing circuit is further configured to: determine that the wireless device has not received a data packet in the total number of data packets; and determine that a frame body of the parity packet includes content of a frame body of a data packet not received by the wireless device.
[0172] Example 13 may include: a computer-readable storage medium as described in Example 12 and / or any other example herein, wherein determining that the frame body of the parity packet includes the contents of the frame body of the data packet not received by the wireless device includes: determining, based on the comparison, that the packet index is greater than the total number of data packets; determining, based on determining that the packet index is greater than the total number of data packets, that the MPDU is included in the parity packet; determining a difference between the packet index and the total number of data packets; and determining, based on the difference, that the parity packet is based on the data packet not received by the wireless device.
[0173] Example 14 may include: a computer-readable storage medium as described in Example 11 and / or any other example herein, wherein the MPDU is included in a parity packet in the total number of parity packets, and wherein execution of the processing circuit is further configured to: determine that the wireless device has received a data packet in the total number of data packets; and determine that a frame body of the parity packet includes content of a frame body of the data packet received by the wireless device.
[0174] Example 15 may include: a computer-readable storage medium as described in Example 14 and / or any other example herein, wherein determining that the frame body of the parity packet includes the contents of the frame body of the data packet received by the wireless device includes: determining, based on the comparison, that the packet index is greater than the total number of data packets; determining, based on determining that the packet index is greater than the total number of data packets, that the MPDU is included in the parity packet; determining a difference between the packet index and the total number of data packets; and determining, based on the difference, that the parity packet is based on the data packet received by the wireless device.
[0175] Example 16 may include: a computer-readable storage medium as described in Example 11 and / or any other example herein, wherein the MPDU is included in a data packet in the total number of data packets, and wherein execution of the processing circuit is also configured to: identify a second A-MPDU received from the second device; decode a second A-Control subfield of a second MAC header of a second MPDU of the second A-MPDU; determine a second packet index for the second MPDU based on decoding the second A-Control subfield, the second packet index indicating that the second MPDU is the jth packet of the A-MPDU; and determine, based on a comparison of the second packet index with the total number of data packets, whether the second MPDU is included in a data packet in the total number of data packets or a parity packet in the total number of parity packets.
[0176] Example 17 may include: a computer-readable storage medium as described in Example 16 and / or any other example herein, wherein the MPDU is included in a first data packet in the total number of data packets, and wherein the second MPDU is included in a second data packet in the total number of data packets.
[0177] Example 18 may include: a computer-readable storage medium as described in Example 16 and / or any other example herein, wherein the MPDU is included in a data packet in the total number of data packets, and wherein the second MPDU is included in a parity packet in the total number of parity packets.
[0178] Example 19 may include: a computer-readable storage medium as described in Example 18 and / or any other example herein, wherein the execution of the processing circuit is further configured to: determine, based on the comparison, that the second packet index is greater than the total number of data packets; determine, based on determining that the second packet index is greater than the total number of data packets, that the second MPDU is included in the parity packet; determine a difference between the second packet index and the total number of data packets; and determine, based on the difference, that the parity packet is based on a data packet not received by the wireless device.
[0179] Example 20 may include: a computer-readable storage medium as described in any of Examples 16-19 and / or any other examples herein, wherein the wireless device is a first multi-link device (MLD), wherein the second wireless device is a second MLD, wherein the A-MPDU is received using a first communication link between the first MLD and the second MLD, and wherein the second A-MPDU is received using a second communication link between the first MLD and the second MLD.
[0180] Example 21 may include: a method for using network coding for an aggregate medium access control (MAC) protocol data unit (A-MPDU), the method comprising: identifying, by a processing circuit of a first device, an A-MPDU received from a second device; decoding, by the processing circuit, an A-Control subfield of a MAC header of an MPDU of the A-MPDU; determining, by the processing circuit, a network coding type used to generate the MPDU based on decoding the A-Control subfield; determining, by the processing circuit, a total number of data packets included in the A-MPDU based on decoding the A-Control subfield Based on decoding the A-Control subfield, the processing circuit determines the total number of parity packets included in the A-MPDU, the parity packets being based on the data packets; based on decoding the A-Control subfield, the processing circuit determines a packet index for the MPDU, the packet index indicating that the MPDU is the i-th packet of the A-MPDU; and based on a comparison of the packet index with the total number of data packets, the processing circuit determines whether the MPDU is included in a data packet in the total number of data packets or a parity packet in the total number of parity packets.
[0181] Example 22 may include: a method as described in Example 21 and / or any other example herein, wherein the MPDU is included in a parity packet in the total number of parity packets, and the method further includes: determining that the first device has not received a data packet in the total number of data packets; and determining that the frame body of the parity packet includes the content of the frame body of the data packet not received by the first device.
[0182] Example 23 may include: a method as described in Example 22 and / or any other example herein, wherein determining that the frame body of the parity packet includes the content of the frame body of the data packet not received by the first device includes: based on the comparison, determining that the packet index is greater than the total number of data packets; based on determining that the packet index is greater than the total number of data packets, determining that the MPDU is included in the parity packet; determining the difference between the packet index and the total number of data packets; and based on the difference, determining that the parity packet is based on the data packet not received by the first device.
[0183] Example 24 may include: a method as described in Example 21 and / or any other example herein, wherein the MPDU is included in a parity packet in the total number of parity packets, and the method further includes: determining that the first device has received a data packet in the total number of data packets; and determining that the frame body of the parity packet includes the content of the frame body of the data packet received by the first device.
[0184] Example 25 may include: a method as described in Example 24, wherein determining that the frame body of the parity packet includes the content of the frame body of the data packet received by the first device includes: based on the comparison, determining that the packet index is greater than the total number of data packets; based on determining that the packet index is greater than the total number of data packets, determining that the MPDU is included in the parity packet; determining the difference between the packet index and the total number of data packets; and based on the difference, determining that the parity packet is based on the data packet received by the first device.
[0185] Example 26 may include: an apparatus comprising a component for: identifying an A-MPDU received from a second device; decoding an A-Control subfield of a MAC header of an MPDU of the A-MPDU; determining a network coding type used to generate the MPDU based on decoding the A-Control subfield; determining a total number of data packets included in the A-MPDU based on decoding the A-Control subfield; determining a total number of parity packets included in the A-MPDU based on decoding the A-Control subfield, the parity packets being based on the data packets; determining a packet index for the MPDU based on decoding the A-Control subfield, the packet index indicating that the MPDU is the i-th packet of the A-MPDU; and determining whether the MPDU is included in a data packet in the total number of data packets or a parity packet in the total number of parity packets based on a comparison of the packet index with the total number of data packets.
[0186] Example 27 may include: one or more non-transitory computer-readable media, comprising instructions, which, when executed by one or more processors of an electronic device, cause the electronic device to perform a method as described or related to any of Examples 1-26, or one or more elements of any other method or process described herein.
[0187] Example 28 may include: an apparatus comprising logic, modules, and / or circuits for performing one or more elements of a method as described or related to any of Examples 1-26, or any other method or process described herein.
[0188] Example 29 may include: a method, technique, or process as described in or related to any one of Examples 1-26 or a portion or part thereof.
[0189] Example 30 may include: an apparatus comprising: one or more processors; and one or more computer-readable media, the computer-readable media comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform methods, techniques, or processes as described in or related to any one of Examples 1-26 or portions thereof.
[0190] Example 31 may include: A method of communicating in a wireless network as shown and described herein.
[0191] Example 32 may include: A system for providing wireless communications as shown and described herein.
[0192] Example 33 may include: An apparatus for providing wireless communications as shown and described herein.
[0193] Certain aspects of the present disclosure are described above with reference to block diagrams and flow charts of systems, methods, devices, and / or computer program products according to various implementations. It should be understood that one or more blocks in the block diagrams and flow charts and combinations of blocks in the block diagrams and flow charts, respectively, may be implemented by computer executable program instructions. Likewise, according to some implementations, some blocks in the block diagrams and flow charts may not necessarily need to be executed in the order presented, or may not need to be executed at all.
[0194] These computer executable program instructions can be loaded onto a special purpose computer or other specific machine, processor or other programmable data processing device to produce a specific machine, so that the instructions executed on the computer, processor or other programmable data processing device create a component for implementing one or more functions specified in one or more flowchart boxes. These computer program instructions can also be stored in a computer-readable storage medium or memory, which can guide a computer or other programmable data processing device to operate in a specific manner so that the instructions stored in the computer-readable storage medium produce a manufactured product, which includes an instruction component that implements one or more functions specified in one or more flowchart boxes. As an example, some implementations can provide a computer program product, which includes a computer-readable storage medium in which a computer-readable program code or program instruction is implemented, and the computer-readable program code is suitable for being executed to implement one or more functions specified in one or more flowchart boxes. Computer program instructions can also be loaded onto a computer or other programmable data processing device to generate a computer-implemented process by executing a series of operating elements or steps on a computer or other programmable device, so that the instructions executed on a computer or other programmable device provide elements or steps for implementing the functions specified in one or more flowchart boxes.
[0195] Therefore, the blocks of these block diagrams and flow charts support combinations of components for performing specified functions, combinations of elements or steps for performing specified functions, and program instruction components for performing specified functions. It should also be understood that each block of these block diagrams and flow charts and the combination of blocks in these block diagrams and flow charts can be implemented by a special hardware-based computer system or a combination of special hardware and computer instructions that performs the specified functions, elements or steps.
[0196] Conditional language, such as "can," "may," "might," or "may," unless otherwise specifically stated or otherwise understood within the context of use, is generally intended to convey that certain implementations may include certain features, elements, and / or operations while other implementations do not. Thus, such conditional language is generally not intended to imply that one or more implementations require features, elements, and / or operations in any way, or that one or more implementations must include logic for deciding (with or without user input or prompting) whether such features, elements, and / or operations are included or to be performed in any particular implementation.
[0197] Many modifications and other implementations of the disclosure set forth herein will be apparent with the benefit of the foregoing description and the teachings presented in the associated drawings. Therefore, it should be understood that the disclosure is not limited to the specific implementations disclosed, and modifications and other implementations are intended to be included within the scope of the appended claims. Although specific terms are used herein, they are used only in a general and descriptive sense and not for limiting purposes.
Claims
1. An apparatus for using network coding for an aggregate medium access control (MAC) protocol data unit (A-MPDU), the apparatus comprising a processing circuit coupled to a memory, the processing circuit being configured to: identifying an A-MPDU received from a second device; Decoding an A-Control subfield of a MAC header of an MPDU of the A-MPDU; Determining a network coding type used to generate the MPDU based on decoding the A-Control subfield; Determining a total number of data packets included in the A-MPDU based on decoding the A-Control subfield; Determining a total number of parity packets included in the A-MPDU based on decoding the A-Control subfield, the parity packets being based on the data packets; determining a group index for the MPDU based on decoding the A-Control subfield, the group index indicating that the MPDU is an i-th group of the A-MPDU; and Based on a comparison of the packet index and a total number of data packets, it is determined whether the MPDU is included in a data packet among the total number of data packets or a parity packet among the total number of parity packets.
2. The device according to claim 1, wherein: The MPDU is included in a parity packet in the total number of parity packets, and Wherein, the processing circuit is further configured to: determining that no data packet from the total number of data packets has been received by the device; and It is determined that the frame body of the parity packet includes content of a frame body of a data packet not received by the device.
3. The device of claim 2, wherein: Determining that the frame body of the parity check packet includes content of the frame body of the data packet not received by the device comprises: Based on the comparison, determining that the group index is greater than a total number of data groups; determining that the MPDU is included in the parity packet based on determining that the packet index is greater than a total number of data packets; determining a difference between the packet index and a total number of data packets; and Based on the difference, it is determined that the parity packet is based on a data packet not received by the device.
4. The device of claim 1, wherein: The MPDU is included in a parity packet in the total number of parity packets, and Wherein, the processing circuit is further configured to: determining that the device receives a data packet from the total number of data packets; and It is determined that the frame body of the parity packet includes content of the frame body of the data packet received by the device.
5. The device of claim 4, wherein: Determining that the frame body of the parity check packet includes content of the frame body of the data packet received by the device includes: Based on the comparison, determining that the group index is greater than a total number of data groups; determining that the MPDU is included in the parity packet based on determining that the packet index is greater than a total number of data packets; determining a difference between the packet index and a total number of data packets; and Based on the difference, determining that the parity packet is based on a data packet received by the device.
6. The device of claim 1, wherein: The MPDU is included in a data packet of the total number of data packets, and Wherein, the processing circuit is further configured to: identifying a second A-MPDU received from the second device; decoding a second A-Control subfield of a second MAC header of a second MPDU of the second A-MPDU; determining, based on decoding the second A-Control subfield, a second packet index for the second MPDU, the second packet index indicating that the second MPDU is a j-th packet of the A-MPDU; and Based on a comparison between the second packet index and a total number of data packets, it is determined whether the second MPDU is included in a data packet among the total number of data packets or a parity packet among the total number of parity packets.
7. The device of claim 6, wherein: The MPDU is included in a first data packet of the total number of data packets, and The second MPDU is included in the second data packet in the total number of data packets.
8. The device of claim 6, wherein: The MPDU is included in a data packet of the total number of data packets, and The second MPDU is included in the parity packets in the total number of parity packets.
9. The device of claim 8, wherein: The processing circuit is further configured to: Based on the comparison, determining that the second packet index is greater than a total number of data packets; determining that the second MPDU is included in the parity packet based on determining that the second packet index is greater than a total number of data packets; determining a difference between the second packet index and a total number of data packets; as well as Based on the difference, it is determined that the parity packet is based on a data packet not received by the device.
10. The device according to any one of claims 6 to 9, wherein: The device is a first multi-link device (MLD), The second device is a second MLD, wherein the A-MPDU is received using a first communication link between the first MLD and the second MLD, and The second A-MPDU is received using a second communication link between the first MLD and the second MLD.
11. The apparatus of claim 1, further comprising a transceiver configured to transmit and receive wireless signals including the A-MPDU.
12. The apparatus of claim 11, further comprising an antenna coupled to the transceiver to receive the A-MPDU.
13. A computer-readable storage medium comprising instructions which, when executed by a processing circuit of a wireless device, cause the processing circuit to: identifying an A-MPDU received from a second wireless device; Decoding an A-Control subfield of a MAC header of an MPDU of the A-MPDU; Determining a network coding type used to generate the MPDU based on decoding the A-Control subfield; Determining a total number of data packets included in the A-MPDU based on decoding the A-Control subfield; Determining a total number of parity packets included in the A-MPDU based on decoding the A-Control subfield, the parity packets being based on the data packets; determining a group index for the MPDU based on decoding the A-Control subfield, the group index indicating that the MPDU is an i-th group of the A-MPDU; and Based on a comparison of the packet index and a total number of data packets, it is determined whether the MPDU is included in a data packet among the total number of data packets or a parity packet among the total number of parity packets.
14. The computer-readable storage medium of claim 13, wherein: The MPDU is included in a parity packet in the total number of parity packets, and The processing circuit is further configured to: determining that no data packet from the total number of data packets was received by the wireless device; and It is determined that the frame body of the parity packet includes content of a frame body of a data packet not received by the wireless device.
15. The computer-readable storage medium of claim 14, wherein: Determining that the frame body of the parity check packet includes content of the frame body of the data packet not received by the wireless device comprises: Based on the comparison, determining that the group index is greater than a total number of data groups; determining that the MPDU is included in the parity packet based on determining that the packet index is greater than a total number of data packets; determining a difference between the packet index and a total number of data packets; and Based on the difference, it is determined that the parity packet is based on a data packet not received by the wireless device.
16. The computer-readable storage medium of claim 13, wherein: The MPDU is included in a parity packet in the total number of parity packets, and The processing circuit is further configured to: determining that the wireless device received a data packet from the total number of data packets; and Determining that the frame body of the parity packet includes content of a frame body of a data packet received by the wireless device.
17. The computer-readable storage medium of claim 16, wherein: Determining that the frame body of the parity check packet includes content of the frame body of the data packet received by the wireless device includes: Based on the comparison, determining that the group index is greater than a total number of data groups; determining that the MPDU is included in the parity packet based on determining that the packet index is greater than a total number of data packets; determining a difference between the packet index and a total number of data packets; and Based on the difference, determining that the parity packet is based on a data packet received by the wireless device.
18. The computer-readable storage medium of claim 13, wherein: The MPDU is included in a data packet of the total number of data packets, and The processing circuit is further configured to: identifying a second A-MPDU received from the second device; decoding a second A-Control subfield of a second MAC header of a second MPDU of the second A-MPDU; determining, based on decoding the second A-Control subfield, a second packet index for the second MPDU, the second packet index indicating that the second MPDU is a j-th packet of the A-MPDU; and Based on a comparison between the second packet index and a total number of data packets, it is determined whether the second MPDU is included in a data packet among the total number of data packets or a parity packet among the total number of parity packets.
19. The computer-readable storage medium of claim 18, wherein: The MPDU is included in a first data packet of the total number of data packets, and The second MPDU is included in the second data packet in the total number of data packets.
20. The computer-readable storage medium of claim 18, wherein: The MPDU is included in a data packet of the total number of data packets, and The second MPDU is included in the parity packets in the total number of parity packets.
21. The computer-readable storage medium of claim 20, wherein: The processing circuit is further configured to: Based on the comparison, determining that the second packet index is greater than a total number of data packets; determining that the second MPDU is included in the parity packet based on determining that the second packet index is greater than a total number of data packets; determining a difference between the second packet index and a total number of data packets; as well as Based on the difference, it is determined that the parity packet is based on a data packet not received by the wireless device.
22. The computer-readable storage medium of any one of claims 18 to 21, wherein: The wireless device is a first multi-link device (MLD), The second wireless device is a second MLD, wherein the A-MPDU is received using a first communication link between the first MLD and the second MLD, and The second A-MPDU is received using a second communication link between the first MLD and the second MLD.
23. A method for using network coding for an aggregate medium access control (MAC) protocol data unit (A-MPDU), the method comprising: identifying, by processing circuitry of the first device, an A-MPDU received from the second device; Decoding, by the processing circuit, an A-Control subfield of a MAC header of an MPDU of the A-MPDU; Determining, by the processing circuit, a network coding type used to generate the MPDU based on decoding the A-Control subfield; determining, by the processing circuit, a total number of data packets included in the A-MPDU based on decoding the A-Control subfield; determining, by the processing circuitry, a total number of parity packets included in the A-MPDU based on decoding the A-Control subfield, the parity packets being based on the data packets; determining, by the processing circuit, a packet index for the MPDU based on decoding the A-Control subfield, the packet index indicating that the MPDU is an i-th packet of the A-MPDU; and Based on a comparison of the packet index and a total number of data packets, the processing circuit determines whether the MPDU is included in a data packet in the total number of data packets or a parity packet in the total number of parity packets.
24. The method of claim 23, wherein: The MPDU is included in a parity packet in the total number of parity packets, and the method further comprises: determining that no data packet from the total number of data packets has been received by the first device; and It is determined that the frame body of the parity packet includes content of a frame body of a data packet not received by the first device.
25. The method of claim 24, wherein: Determining that the frame body of the parity check packet includes content of the frame body of the data packet not received by the first device includes: Based on the comparison, determining that the group index is greater than a total number of data groups; determining that the MPDU is included in the parity packet based on determining that the packet index is greater than a total number of data packets; determining a difference between the packet index and a total number of data packets; and Based on the difference, it is determined that the parity packet is based on a data packet not received by the first device.