Forward error correction with adaptive interleaving and flexible packet allocation
Adaptive FEC with flexible packet allocation and interleaving addresses signal reliability and latency issues in wireless communication systems by dynamically adjusting interleaving based on TBS, ensuring effective recovery of lost packets.
Patent Information
- Application Number
- PCT/CN2024/071499
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-10
- Publication Date
- 2025-07-17
AI Technical Summary
Wireless communication systems face challenges in maintaining signal integrity and reliability due to complex and dynamic environments, leading to issues such as signal attenuation and loss, which affect data transmission efficiency and latency, particularly in applications requiring consistent performance.
Implementing adaptive forward error correction (FEC) with flexible packet allocation and interleaving, where the interleaving length is dynamically determined based on the transport block size (TBS) to ensure that data packets corresponding to the same FEC repair packet are transmitted in different transport blocks, enhancing the recovery of lost packets.
This approach improves the reliability and efficiency of data transmission by reducing the impact of burst errors and latency, ensuring that lost packets can be recovered even in cases of TB loss, thereby enhancing the overall performance of wireless communication systems.
Smart Images

Figure CN2024071499_17072025_PF_FP_ABST
Abstract
Description
FORWARD ERROR CORRECTION WITH ADAPTIVE INTERLEAVING AND FLEXIBLE PACKET ALLOCATION
[0001] Field of the Disclosure
[0002] Aspects of the present disclosure relate to wireless communications, and more particularly, to techniques for forward error correction (FEC) .
[0003] Description of Related Art
[0004] Wireless communications systems are widely deployed to provide various telecommunication services such as telephony, video, data, messaging, broadcasts, or other similar types of services. These wireless communications systems may employ multiple-access technologies capable of supporting communications with multiple users by sharing available wireless communications system resources with those users.
[0005] Although wireless communications systems have made great technological advancements over many years, challenges still exist. For example, complex and dynamic environments can still attenuate or block signals between wireless transmitters and wireless receivers. Accordingly, there is a continuous desire to improve the technical performance of wireless communications systems, including, for example: improving speed and data carrying capacity of communications, improving efficiency of the use of shared communications mediums, reducing power used by transmitters and receivers while performing communications, improving reliability of wireless communications, avoiding redundant transmissions and / or receptions and related processing, improving the coverage area of wireless communications, increasing the number and types of devices that can access wireless communications systems, increasing the ability for different types of devices to intercommunicate, increasing the number and type of wireless communications mediums available for use, and the like. Consequently, there exists a need for further improvements in wireless communications systems to overcome the aforementioned technical challenges and others.SUMMARY
[0006] One aspect provides a method for wireless communication by a transmitting device. The method includes generating a plurality of data packets; determining an interleaving length for forward error correction (FEC) , wherein the determining is based on a transport block size (TBS) ; interleaving the plurality of data packets based on the interleaving length, wherein each set of data packets, of the plurality of data packets, occurring at the interleaving length correspond to a repair packet; and transmitting the plurality of data packets.
[0007] Other aspects provide: an apparatus operable, configured, or otherwise adapted to perform any one or more of the aforementioned methods and / or those described elsewhere herein; a non-transitory, computer-readable media comprising instructions that, when executed (e.g., directly, indirectly, after pre-processing, without pre-processing) by one or more processors of an apparatus, cause the apparatus to perform the aforementioned methods as well as those described elsewhere herein; a computer program product embodied on a computer-readable storage medium comprising code for performing the aforementioned methods as well as those described elsewhere herein; and / or an apparatus comprising means for performing the aforementioned methods as well as those described elsewhere herein. By way of example, an apparatus may comprise a processing system, a device with a processing system, or processing systems cooperating over one or more networks.
[0008] The following description and the appended figures set forth certain features for purposes of illustration.BRIEF DESCRIPTION OF DRAWINGS
[0009] The appended figures depict certain features of the various aspects described herein and are not to be considered limiting of the scope of this disclosure.
[0010] FIG. 1 depicts an example wireless communications network.
[0011] FIG. 2 depicts an example disaggregated base station architecture.
[0012] FIG. 3 depicts aspects of an example base station and an example user equipment.
[0013] FIGS. 4A, 4B, 4C, and 4D depict various example aspects of data structures for a wireless communications network.
[0014] FIG. 5 depicts example FEC.
[0015] FIG. 6 depicts example packet encapsulation.
[0016] FIG. 7 depicts example packet loss for FEC with an interleaver length smaller than the transport block size (TBS) .
[0017] FIG. 8 depicts an example of no packet for FEC with an interleaver length equal to the TBS.
[0018] FIG. 9 depicts a call flow for adaptive FEC and flexible packet allocation.
[0019] FIG. 10 depicts a method for wireless communications by a transmitting device.
[0020] FIG. 11 depicts aspects of an example communications device.DETAILED DESCRIPTION
[0021] Aspects of the present disclosure provide apparatuses, methods, processing systems, and computer-readable mediums for forward error correction (FEC) with adaptive interleaving and flexible packet allocation in transport blocks (TBs) .
[0022] As described herein with respect to FIG. 5, FEC may be used to add redundancy to transmitted data in order to recover lost packets at the receiver side. As described herein with respect to FIG. 6, one or multiple source data packets (e.g., Internet Protocol (IP) packets) may encapsulated in a Medium Access Control (MAC) TB, where the number of source data packets encapsulated in a TB depends on the transport block size (TBS) and the packet size.
[0023] As described herein with respect to FIG. 7, application level FEC may perform interleaving of source data packets (e.g., Internet Protocol (IP) packets) , where the interleaving length defines which source data packets correspond to which FEC repair packets. The receiving device may be able to recover lost source data packets, based on the corresponding FEC repair packet when at most one of the source data packets corresponding the FEC repair packet is lost. However, where the interleaving length is smaller than the number of source data packets encapsulated in a TB, then multiple source data packets corresponding to the FEC repair packet may be lost. In this case, the lost source data packets cannot be recovered at the receiving device.
[0024] As described herein with respect to FIG. 8, in order to avoid loss of data, it is desirable that source data packets corresponding to the same FEC repair packet are transmitted in different TBs. As described herein with respect to FIGs. 9-11, according to aspects of the present disclosure, techniques are provided for application-level FEC with adaptive interleaving and / or flexible packet allocation in TBs. According to certain aspects, the FEC interleaving length is dynamically determined (e.g., or adapted) based on the TBS and the packet size. According to certain aspects, the application layer flexibly instructs the MAC layer of the transmitting device which source data packets and FEC repair packets to allocate to different TBs. Accordingly, FEC encoding and decoding may be improved, ensuring that lost packets can be recovered at the receiving device.
[0025] Introduction to Wireless Communications Networks
[0026] The techniques and methods described herein may be used for various wireless communications networks. While aspects may be described herein using terminology commonly associated with 3G, 4G, and / or 5G wireless technologies, aspects of the present disclosure may likewise be applicable to other communications systems and standards not explicitly mentioned herein.
[0027] FIG. 1 depicts an example of a wireless communications network 100, in which aspects described herein may be implemented.
[0028] Generally, wireless communications network 100 includes various network entities (alternatively, network elements or network nodes) . A network entity is generally a communications device and / or a communications function performed by a communications device (e.g., a user equipment (UE) , a base station (BS) , a component of a BS, a server, etc. ) . For example, various functions of a network as well as various devices associated with and interacting with a network may be considered network entities. Further, wireless communications network 100 includes terrestrial aspects, such as ground-based network entities (e.g., BSs 102) , and non-terrestrial aspects, such as satellite 140 and aircraft 145, which may include network entities on-board (e.g., one or more BSs) capable of communicating with other network elements (e.g., terrestrial BSs) and user equipments.
[0029] In the depicted example, wireless communications network 100 includes BSs 102, UEs 104, and one or more core networks, such as an Evolved Packet Core (EPC) 160 and 5G Core (5GC) network 190, which interoperate to provide communications services over various communications links, including wired and wireless links.
[0030] FIG. 1 depicts various example UEs 104, which may more generally include: a cellular phone, smart phone, session initiation protocol (SIP) phone, laptop, personal digital assistant (PDA) , satellite radio, global positioning system, multimedia device, video device, digital audio player, camera, game console, tablet, smart device, wearable device, vehicle, electric meter, gas pump, large or small kitchen appliance, healthcare device, implant, sensor / actuator, display, internet of things (IoT) devices, always on (AON) devices, edge processing devices, or other similar devices. UEs 104 may also be referred to more generally as a mobile device, a wireless device, a wireless communications device, a station, a mobile station, a subscriber station, a mobile subscriber station, a mobile unit, a subscriber unit, a wireless unit, a remote unit, a remote device, an access terminal, a mobile terminal, a wireless terminal, a remote terminal, a handset, and others.
[0031] BSs 102 wirelessly communicate with (e.g., transmit signals to or receive signals from) UEs 104 via communications links 120. The communications links 120 between BSs 102 and UEs 104 may include uplink (UL) (also referred to as reverse link) transmissions from a UE 104 to a BS 102 and / or downlink (DL) (also referred to as forward link) transmissions from a BS 102 to a UE 104. The communications links 120 may use multiple-input and multiple-output (MIMO) antenna technology, including spatial multiplexing, beamforming, and / or transmit diversity in various aspects.
[0032] BSs 102 may generally include: a NodeB, enhanced NodeB (eNB) , next generation enhanced NodeB (ng-eNB) , next generation NodeB (gNB or gNodeB) , access point, base transceiver station, radio base station, radio transceiver, transceiver function, transmission reception point, and / or others. Each of BSs 102 may provide communications coverage for a respective geographic coverage area 110, which may sometimes be referred to as a cell, and which may overlap in some cases (e.g., small cell 102’ may have a coverage area 110’ that overlaps the coverage area 110 of a macro cell) . A BS may, for example, provide communications coverage for a macro cell (covering relatively large geographic area) , a pico cell (covering relatively smaller geographic area, such as a sports stadium) , a femto cell (relatively smaller geographic area (e.g., a home) ) , and / or other types of cells.
[0033] While BSs 102 are depicted in various aspects as unitary communications devices, BSs 102 may be implemented in various configurations. For example, one or more components of a base station may be disaggregated, including a central unit (CU) , one or more distributed units (DUs) , one or more radio units (RUs) , a Near-Real Time (Near-RT) RAN Intelligent Controller (RIC) , or a Non-Real Time (Non-RT) RIC, to name a few examples. In another example, various aspects of a base station may be virtualized. More generally, a base station (e.g., BS 102) may include components that are located at a single physical location or components located at various physical locations. In examples in which a base station includes components that are located at various physical locations, the various components may each perform functions such that, collectively, the various components achieve functionality that is similar to a base station that is located at a single physical location. In some aspects, a base station including components that are located at various physical locations may be referred to as a disaggregated radio access network architecture, such as an Open RAN (O-RAN) or Virtualized RAN (VRAN) architecture. FIG. 2 depicts and describes an example disaggregated base station architecture.
[0034] Different BSs 102 within wireless communications network 100 may also be configured to support different radio access technologies, such as 3G, 4G, and / or 5G. For example, BSs 102 configured for 4G LTE (collectively referred to as Evolved Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRAN) ) may interface with the EPC 160 through first backhaul links 132 (e.g., an S1 interface) . BSs 102 configured for 5G (e.g., 5G NR or Next Generation RAN (NG-RAN) ) may interface with 5GC 190 through second backhaul links 184. BSs 102 may communicate directly or indirectly (e.g., through the EPC 160 or 5GC 190) with each other over third backhaul links 134 (e.g., X2 interface) , which may be wired or wireless.
[0035] Wireless communications network 100 may subdivide the electromagnetic spectrum into various classes, bands, channels, or other features. In some aspects, the subdivision is provided based on wavelength and frequency, where frequency may also be referred to as a carrier, a subcarrier, a frequency channel, a tone, or a subband. For example, 3GPP currently defines Frequency Range 1 (FR1) as including 410 MHz –7125 MHz, which is often referred to (interchangeably) as “Sub-6 GHz” . Similarly, 3GPP currently defines Frequency Range 2 (FR2) as including 24,250 MHz –71,000 MHz, which is sometimes referred to (interchangeably) as a “millimeter wave” ( “mmW” or “mmWave” ) . In some cases, FR2 may be further defined in terms of sub-ranges, such as a first sub-range FR2-1 including 24,250 MHz –52,600 MHz and a second sub-range FR2-2 including 52,600 MHz –71,000 MHz. A base station configured to communicate using mmWave / near mmWave radio frequency bands (e.g., a mmWave base station such as BS 180) may utilize beamforming (e.g., 182) with a UE (e.g., 104) to improve path loss and range.
[0036] The communications links 120 between BSs 102 and, for example, UEs 104, may be through one or more carriers, which may have different bandwidths (e.g., 5, 10, 15, 20, 100, 400, and / or other MHz) , and which may be aggregated in various aspects. Carriers may or may not be adjacent to each other. Allocation of carriers may be asymmetric with respect to DL and UL (e.g., more or fewer carriers may be allocated for DL than for UL) .
[0037] Communications using higher frequency bands may have higher path loss and a shorter range compared to lower frequency communications. Accordingly, certain base stations (e.g., 180 in FIG. 1) may utilize beamforming 182 with a UE 104 to improve path loss and range. For example, BS 180 and the UE 104 may each include a plurality of antennas, such as antenna elements, antenna panels, and / or antenna arrays to facilitate the beamforming. In some cases, BS 180 may transmit a beamformed signal to UE 104 in one or more transmit directions 182’ . UE 104 may receive the beamformed signal from the BS 180 in one or more receive directions 182” . UE 104 may also transmit a beamformed signal to the BS 180 in one or more transmit directions 182” . BS 180 may also receive the beamformed signal from UE 104 in one or more receive directions 182’ . BS 180 and UE 104 may then perform beam training to determine the best receive and transmit directions for each of BS 180 and UE 104. Notably, the transmit and receive directions for BS 180 may or may not be the same. Similarly, the transmit and receive directions for UE 104 may or may not be the same.
[0038] Wireless communications network 100 further includes a Wi-Fi AP 150 in communication with Wi-Fi stations (STAs) 152 via communications links 154 in, for example, a 2.4 GHz and / or 5 GHz unlicensed frequency spectrum.
[0039] Certain UEs 104 may communicate with each other using device-to-device (D2D) communications link 158. D2D communications link 158 may use one or more sidelink channels, such as a physical sidelink broadcast channel (PSBCH) , a physical sidelink discovery channel (PSDCH) , a physical sidelink shared channel (PSSCH) , a physical sidelink control channel (PSCCH) , and / or a physical sidelink feedback channel (PSFCH) .
[0040] EPC 160 may include various functional components, including: a Mobility Management Entity (MME) 162, other MMEs 164, a Serving Gateway 166, a Multimedia Broadcast Multicast Service (MBMS) Gateway 168, a Broadcast Multicast Service Center (BM-SC) 170, and / or a Packet Data Network (PDN) Gateway 172, such as in the depicted example. MME 162 may be in communication with a Home Subscriber Server (HSS) 174. MME 162 is the control node that processes the signaling between the UEs 104 and the EPC 160. Generally, MME 162 provides bearer and connection management.
[0041] Generally, user Internet protocol (IP) packets are transferred through Serving Gateway 166, which itself is connected to PDN Gateway 172. PDN Gateway 172 provides UE IP address allocation as well as other functions. PDN Gateway 172 and the BM-SC 170 are connected to IP Services 176, which may include, for example, the Internet, an intranet, an IP Multimedia Subsystem (IMS) , a Packet Switched (PS) streaming service, and / or other IP services.
[0042] BM-SC 170 may provide functions for MBMS user service provisioning and delivery. BM-SC 170 may serve as an entry point for content provider MBMS transmission, may be used to authorize and initiate MBMS Bearer Services within a public land mobile network (PLMN) , and / or may be used to schedule MBMS transmissions. MBMS Gateway 168 may be used to distribute MBMS traffic to the BSs 102 belonging to a Multicast Broadcast Single Frequency Network (MBSFN) area broadcasting a particular service, and / or may be responsible for session management (start / stop) and for collecting eMBMS related charging information.
[0043] 5GC 190 may include various functional components, including: an Access and Mobility Management Function (AMF) 192, other AMFs 193, a Session Management Function (SMF) 194, and a User Plane Function (UPF) 195. AMF 192 may be in communication with Unified Data Management (UDM) 196.
[0044] AMF 192 is a control node that processes signaling between UEs 104 and 5GC 190. AMF 192 provides, for example, quality of service (QoS) flow and session management.
[0045] Internet protocol (IP) packets are transferred through UPF 195, which is connected to the IP Services 197, and which provides UE IP address allocation as well as other functions for 5GC 190. IP Services 197 may include, for example, the Internet, an intranet, an IMS, a PS streaming service, and / or other IP services.
[0046] In various aspects, a network entity or network node can be implemented as an aggregated base station, as a disaggregated base station, a component of a base station, an integrated access and backhaul (IAB) node, a relay node, a sidelink node, to name a few examples.
[0047] FIG. 2 depicts an example disaggregated base station 200 architecture. The disaggregated base station 200 architecture may include one or more central units (CUs) 210 that can communicate directly with a core network 220 via a backhaul link, or indirectly with the core network 220 through one or more disaggregated base station units (such as a Near-Real Time (Near-RT) RAN Intelligent Controller (RIC) 225 via an E2 link, or a Non-Real Time (Non-RT) RIC 215 associated with a Service Management and Orchestration (SMO) Framework 205, or both) . A CU 210 may communicate with one or more distributed units (DUs) 230 via respective midhaul links, such as an F1 interface. The DUs 230 may communicate with one or more radio units (RUs) 240 via respective fronthaul links. The RUs 240 may communicate with respective UEs 104 via one or more radio frequency (RF) access links. In some implementations, the UE 104 may be simultaneously served by multiple RUs 240.
[0048] Each of the units, e.g., the CUs 210, the DUs 230, the RUs 240, as well as the Near-RT RICs 225, the Non-RT RICs 215 and the SMO Framework 205, may include one or more interfaces or be coupled to one or more interfaces configured to receive or transmit signals, data, or information (collectively, signals) via a wired or wireless transmission medium. Each of the units, or an associated processor or controller providing instructions to the communications interfaces of the units, can be configured to communicate with one or more of the other units via the transmission medium. For example, the units can include a wired interface configured to receive or transmit signals over a wired transmission medium to one or more of the other units. Additionally or alternatively, the units can include a wireless interface, which may include a receiver, a transmitter or transceiver (such as a radio frequency (RF) transceiver) , configured to receive or transmit signals, or both, over a wireless transmission medium to one or more of the other units.
[0049] In some aspects, the CU 210 may host one or more higher layer control functions. Such control functions can include radio resource control (RRC) , packet data convergence protocol (PDCP) , service data adaptation protocol (SDAP) , or the like. Each control function can be implemented with an interface configured to communicate signals with other control functions hosted by the CU 210. The CU 210 may be configured to handle user plane functionality (e.g., Central Unit –User Plane (CU-UP) ) , control plane functionality (e.g., Central Unit –Control Plane (CU-CP) ) , or a combination thereof. In some implementations, the CU 210 can be logically split into one or more CU-UP units and one or more CU-CP units. The CU-UP unit can communicate bidirectionally with the CU-CP unit via an interface, such as the E1 interface when implemented in an O-RAN configuration. The CU 210 can be implemented to communicate with the DU 230, as necessary, for network control and signaling.
[0050] The DU 230 may correspond to a logical unit that includes one or more base station functions to control the operation of one or more RUs 240. In some aspects, the DU 230 may host one or more of a radio link control (RLC) layer, a medium access control (MAC) layer, and one or more high physical (PHY) layers (such as modules for forward error correction (FEC) encoding and decoding, scrambling, modulation and demodulation, or the like) depending, at least in part, on a functional split, such as those defined by the 3rd Generation Partnership Project (3GPP) . In some aspects, the DU 230 may further host one or more low PHY layers. Each layer (or module) can be implemented with an interface configured to communicate signals with other layers (and modules) hosted by the DU 230, or with the control functions hosted by the CU 210.
[0051] Lower-layer functionality can be implemented by one or more RUs 240. In some deployments, an RU 240, controlled by a DU 230, may correspond to a logical node that hosts RF processing functions, or low-PHY layer functions (such as performing fast Fourier transform (FFT) , inverse FFT (iFFT) , digital beamforming, physical random access channel (PRACH) extraction and filtering, or the like) , or both, based at least in part on the functional split, such as a lower layer functional split. In such an architecture, the RU (s) 240 can be implemented to handle over the air (OTA) communications with one or more UEs 104. In some implementations, real-time and non-real-time aspects of control and user plane communications with the RU (s) 240 can be controlled by the corresponding DU 230. In some scenarios, this configuration can enable the DU (s) 230 and the CU 210 to be implemented in a cloud-based RAN architecture, such as a vRAN architecture.
[0052] The SMO Framework 205 may be configured to support RAN deployment and provisioning of non-virtualized and virtualized network elements. For non-virtualized network elements, the SMO Framework 205 may be configured to support the deployment of dedicated physical resources for RAN coverage requirements which may be managed via an operations and maintenance interface (such as an O1 interface) . For virtualized network elements, the SMO Framework 205 may be configured to interact with a cloud computing platform (such as an open cloud (O-Cloud) 290) to perform network element life cycle management (such as to instantiate virtualized network elements) via a cloud computing platform interface (such as an O2 interface) . Such virtualized network elements can include, but are not limited to, CUs 210, DUs 230, RUs 240 and Near-RT RICs 225. In some implementations, the SMO Framework 205 can communicate with a hardware aspect of a 4G RAN, such as an open eNB (O-eNB) 211, via an O1 interface. Additionally, in some implementations, the SMO Framework 205 can communicate directly with one or more RUs 240 via an O1 interface. The SMO Framework 205 also may include a Non-RT RIC 215 configured to support functionality of the SMO Framework 205.
[0053] The Non-RT RIC 215 may be configured to include a logical function that enables non-real-time control and optimization of RAN elements and resources, Artificial Intelligence / Machine Learning (AI / ML) workflows including model training and updates, or policy-based guidance of applications / features in the Near-RT RIC 225. The Non-RT RIC 215 may be coupled to or communicate with (such as via an A1 interface) the Near-RT RIC 225. The Near-RT RIC 225 may be configured to include a logical function that enables near-real-time control and optimization of RAN elements and resources via data collection and actions over an interface (such as via an E2 interface) connecting one or more CUs 210, one or more DUs 230, or both, as well as an O-eNB, with the Near-RT RIC 225.
[0054] In some implementations, to generate AI / ML models to be deployed in the Near-RT RIC 225, the Non-RT RIC 215 may receive parameters or external enrichment information from external servers. Such information may be utilized by the Near-RT RIC 225 and may be received at the SMO Framework 205 or the Non-RT RIC 215 from non-network data sources or from network functions. In some examples, the Non-RT RIC 215 or the Near-RT RIC 225 may be configured to tune RAN behavior or performance. For example, the Non-RT RIC 215 may monitor long-term trends and patterns for performance and employ AI / ML models to perform corrective actions through the SMO Framework 205 (such as reconfiguration via O1) or via creation of RAN management policies (such as A1 policies) .
[0055] FIG. 3 depicts aspects of an example BS 102 and a UE 104.
[0056] Generally, BS 102 includes various processors (e.g., 320, 330, 338, and 340) , antennas 334a-t (collectively 334) , transceivers 332a-t (collectively 332) , which include modulators and demodulators, and other aspects, which enable wireless transmission of data (e.g., data source 312) and wireless reception of data (e.g., data sink 339) . For example, BS 102 may send and receive data between BS 102 and UE 104. BS 102 includes controller / processor 340, which may be configured to implement various functions described herein related to wireless communications.
[0057] Generally, UE 104 includes various processors (e.g., 358, 364, 366, and 380) , antennas 352a-r (collectively 352) , transceivers 354a-r (collectively 354) , which include modulators and demodulators, and other aspects, which enable wireless transmission of data (e.g., retrieved from data source 362) and wireless reception of data (e.g., provided to data sink 360) . UE 104 includes controller / processor 380, which may be configured to implement various functions described herein related to wireless communications.
[0058] In regards to an example downlink transmission, BS 102 includes a transmit processor 320 that may receive data from a data source 312 and control information from a controller / processor 340. The control information may be for the physical broadcast channel (PBCH) , physical control format indicator channel (PCFICH) , physical hybrid automatic repeat request (HARQ) indicator channel (PHICH) , physical downlink control channel (PDCCH) , group common PDCCH (GC PDCCH) , and / or others. The data may be for the physical downlink shared channel (PDSCH) , in some examples.
[0059] Transmit processor 320 may process (e.g., encode and symbol map) the data and control information to obtain data symbols and control symbols, respectively. Transmit processor 320 may also generate reference symbols, such as for the primary synchronization signal (PSS) , secondary synchronization signal (SSS) , PBCH demodulation reference signal (DMRS) , and channel state information reference signal (CSI-RS) .
[0060] Transmit (TX) multiple-input multiple-output (MIMO) processor 330 may perform spatial processing (e.g., precoding) on the data symbols, the control symbols, and / or the reference symbols, if applicable, and may provide output symbol streams to the modulators (MODs) in transceivers 332a-332t. Each modulator in transceivers 332a-332t may process a respective output symbol stream to obtain an output sample stream. Each modulator may further process (e.g., convert to analog, amplify, filter, and upconvert) the output sample stream to obtain a downlink signal. Downlink signals from the modulators in transceivers 332a-332t may be transmitted via the antennas 334a-334t, respectively.
[0061] In order to receive the downlink transmission, UE 104 includes antennas 352a-352r that may receive the downlink signals from the BS 102 and may provide received signals to the demodulators (DEMODs) in transceivers 354a-354r, respectively. Each demodulator in transceivers 354a-354r may condition (e.g., filter, amplify, downconvert, and digitize) a respective received signal to obtain input samples. Each demodulator may further process the input samples to obtain received symbols.
[0062] MIMO detector 356 may obtain received symbols from all the demodulators in transceivers 354a-354r, perform MIMO detection on the received symbols if applicable, and provide detected symbols. Receive processor 358 may process (e.g., demodulate, deinterleave, and decode) the detected symbols, provide decoded data for the UE 104 to a data sink 360, and provide decoded control information to a controller / processor 380.
[0063] In regards to an example uplink transmission, UE 104 further includes a transmit processor 364 that may receive and process data (e.g., for the PUSCH) from a data source 362 and control information (e.g., for the physical uplink control channel (PUCCH) ) from the controller / processor 380. Transmit processor 364 may also generate reference symbols for a reference signal (e.g., for the sounding reference signal (SRS) ) . The symbols from the transmit processor 364 may be precoded by a TX MIMO processor 366 if applicable, further processed by the modulators in transceivers 354a-354r (e.g., for SC-FDM) , and transmitted to BS 102.
[0064] At BS 102, the uplink signals from UE 104 may be received by antennas 334a-t, processed by the demodulators in transceivers 332a-332t, detected by a MIMO detector 336 if applicable, and further processed by a receive processor 338 to obtain decoded data and control information sent by UE 104. Receive processor 338 may provide the decoded data to a data sink 339 and the decoded control information to the controller / processor 340.
[0065] Memories 342 and 382 may store data and program codes for BS 102 and UE 104, respectively.
[0066] Scheduler 344 may schedule UEs for data transmission on the downlink and / or uplink.
[0067] In various aspects, BS 102 may be described as transmitting and receiving various types of data associated with the methods described herein. In these contexts, “transmitting” may refer to various mechanisms of outputting data, such as outputting data from data source 312, scheduler 344, memory 342, transmit processor 320, controller / processor 340, TX MIMO processor 330, transceivers 332a-t, antenna 334a-t, and / or other aspects described herein. Similarly, “receiving” may refer to various mechanisms of obtaining data, such as obtaining data from antennas 334a-t, transceivers 332a-t, RX MIMO detector 336, controller / processor 340, receive processor 338, scheduler 344, memory 342, and / or other aspects described herein.
[0068] In various aspects, UE 104 may likewise be described as transmitting and receiving various types of data associated with the methods described herein. In these contexts, “transmitting” may refer to various mechanisms of outputting data, such as outputting data from data source 362, memory 382, transmit processor 364, controller / processor 380, TX MIMO processor 366, transceivers 354a-t, antenna 352a-t, and / or other aspects described herein. Similarly, “receiving” may refer to various mechanisms of obtaining data, such as obtaining data from antennas 352a-t, transceivers 354a-t, RX MIMO detector 356, controller / processor 380, receive processor 358, memory 382, and / or other aspects described herein.
[0069] In some aspects, one or more processors may be configured to perform various operations, such as those associated with the methods described herein, and transmit (output) to or receive (obtain) data from another interface that is configured to transmit or receive, respectively, the data.
[0070] FIGS. 4A, 4B, 4C, and 4D depict aspects of data structures for a wireless communications network, such as wireless communications network 100 of FIG. 1.
[0071] In particular, FIG. 4A is a diagram 400 illustrating an example of a first subframe within a 5G (e.g., 5G NR) frame structure, FIG. 4B is a diagram 430 illustrating an example of DL channels within a 5G subframe, FIG. 4C is a diagram 450 illustrating an example of a second subframe within a 5G frame structure, and FIG. 4D is a diagram 480 illustrating an example of UL channels within a 5G subframe.
[0072] Wireless communications systems may utilize orthogonal frequency division multiplexing (OFDM) with a cyclic prefix (CP) on the uplink and downlink. Such systems may also support half-duplex operation using time division duplexing (TDD) . OFDM and single-carrier frequency division multiplexing (SC-FDM) partition the system bandwidth (e.g., as depicted in FIGS. 4B and 4D) into multiple orthogonal subcarriers. Each subcarrier may be modulated with data. Modulation symbols may be sent in the frequency domain with OFDM and / or in the time domain with SC-FDM.
[0073] A wireless communications frame structure may be frequency division duplex (FDD) , in which, for a particular set of subcarriers, subframes within the set of subcarriers are dedicated for either DL or UL. Wireless communications frame structures may also be time division duplex (TDD) , in which, for a particular set of subcarriers, subframes within the set of subcarriers are dedicated for both DL and UL.
[0074] In FIG. 4A and 4C, the wireless communications frame structure is TDD where D is DL, U is UL, and X is flexible for use between DL / UL. UEs may be configured with a slot format through a received slot format indicator (SFI) (dynamically through DL control information (DCI) , or semi-statically / statically through radio resource control (RRC) signaling) . In the depicted examples, a 10 ms frame is divided into 10 equally sized 1 ms subframes. Each subframe may include one or more time slots. In some examples, each slot may include 7 or 14 symbols, depending on the slot format. Subframes may also include mini-slots, which generally have fewer symbols than an entire slot. Other wireless communications technologies may have a different frame structure and / or different channels.
[0075] In certain aspects, the number of slots within a subframe is based on a slot configuration and a numerology. For example, for slot configuration 0, different numerologies (μ) 0 to 6 allow for 1, 2, 4, 8, 16, 32, and 64 slots, respectively, per subframe. For slot configuration 1, different numerologies 0 to 2 allow for 2, 4, and 8 slots, respectively, per subframe. Accordingly, for slot configuration 0 and numerology μ, there are 14 symbols / slot and 2μ slots / subframe. The subcarrier spacing and symbol length / duration are a function of the numerology. The subcarrier spacing may be equal to 2μ×15 kHz, where μ is the numerology 0 to 6. As such, the numerology μ=0 has a subcarrier spacing of 15 kHz and the numerology μ=6 has a subcarrier spacing of 960 kHz. The symbol length / duration is inversely related to the subcarrier spacing. FIGS. 4A, 4B, 4C, and 4D provide an example of slot configuration 0 with 14 symbols per slot and numerology μ=2 with 4 slots per subframe. The slot duration is 0.25 ms, the subcarrier spacing is 60 kHz, and the symbol duration is approximately 16.67 μs.
[0076] As depicted in FIGS. 4A, 4B, 4C, and 4D, a resource grid may be used to represent the frame structure. Each time slot includes a resource block (RB) (also referred to as physical RBs (PRBs) ) that extends, for example, 12 consecutive subcarriers. The resource grid is divided into multiple resource elements (REs) . The number of bits carried by each RE depends on the modulation scheme.
[0077] As illustrated in FIG. 4A, some of the REs carry reference (pilot) signals (RS) for a UE (e.g., UE 104 of FIGS. 1 and 3) . The RS may include demodulation RS (DMRS) and / or channel state information reference signals (CSI-RS) for channel estimation at the UE.The RS may also include beam measurement RS (BRS) , beam refinement RS (BRRS) , and / or phase tracking RS (PT-RS) .
[0078] FIG. 4B illustrates an example of various DL channels within a subframe of a frame. The physical downlink control channel (PDCCH) carries DCI within one or more control channel elements (CCEs) , each CCE including, for example, nine RE groups (REGs) , each REG including, for example, four consecutive REs in an OFDM symbol.
[0079] A primary synchronization signal (PSS) may be within symbol 2 of particular subframes of a frame. The PSS is used by a UE (e.g., 104 of FIGS. 1 and 3) to determine subframe / symbol timing and a physical layer identity.
[0080] A secondary synchronization signal (SSS) may be within symbol 4 of particular subframes of a frame. The SSS is used by a UE to determine a physical layer cell identity group number and radio frame timing.
[0081] Based on the physical layer identity and the physical layer cell identity group number, the UE can determine a physical cell identifier (PCI) . Based on the PCI, the UE can determine the locations of the aforementioned DMRS. The physical broadcast channel (PBCH) , which carries a master information block (MIB) , may be logically grouped with the PSS and SSS to form a synchronization signal (SS) / PBCH block. The MIB provides a number of RBs in the system bandwidth and a system frame number (SFN) . The physical downlink shared channel (PDSCH) carries user data, broadcast system information not transmitted through the PBCH such as system information blocks (SIBs) , and / or paging messages.
[0082] As illustrated in FIG. 4C, some of the REs carry DMRS (indicated as R for one particular configuration, but other DMRS configurations are possible) for channel estimation at the base station. The UE may transmit DMRS for the PUCCH and DMRS for the PUSCH. The PUSCH DMRS may be transmitted, for example, in the first one or two symbols of the PUSCH. The PUCCH DMRS may be transmitted in different configurations depending on whether short or long PUCCHs are transmitted and depending on the particular PUCCH format used. UE 104 may transmit sounding reference signals (SRS) . The SRS may be transmitted, for example, in the last symbol of a subframe. The SRS may have a comb structure, and a UE may transmit SRS on one of the combs. The SRS may be used by a base station for channel quality estimation to enable frequency-dependent scheduling on the UL.
[0083] FIG. 4D illustrates an example of various UL channels within a subframe of a frame. The PUCCH may be located as indicated in one configuration. The PUCCH carries uplink control information (UCI) , such as scheduling requests, a channel quality indicator (CQI) , a precoding matrix indicator (PMI) , a rank indicator (RI) , and HARQ ACK / NACK feedback. The PUSCH carries data, and may additionally be used to carry a buffer status report (BSR) , a power headroom report (PHR) , and / or UCI.
[0084] Aspects Related to Forward Error Correction with Adaptive Packet Interleaving and Flexible Packet Allocation
[0085] In wireless communication systems (e.g., such a wireless communication network 100) , signal quality can vary due to various factors, such as distance, interference, and environmental conditions.
[0086] Tail latency is an important metric in wireless communication systems, such as 5G NR systems. Tail latency refers to the maximum or worst-case latency observed in the system. In other words, tail latency is concerned with the performance of a system under extreme or uncommon conditions, rather than the average or typical behavior. Tail latency is crucial in systems where consistent and predictable performance is important, such as for services such as extended reality (XR) , multi-media streaming, cloud computing, cloud gaming, and others, for which minimizing tail latency is key for providing a reliable and responsive user experience.
[0087] Some system rely on retransmission of lost packets (e.g., using a hybrid automatic repeat request (HARQ) technique) to improve reliability and recover the lost data. Retransmission, however, may negatively impact tail latency. Forward Error Correction (FEC) is a technique used in communication systems to improve the reliability of data transmission. FEC can reduce reliance on retransmission. FEC improves reliability by adding redundant information to the transmitted data to mitigate the impact of errors that may occur during wireless transmission. This redundant information allows the receiver to detect and correct errors that may occur during transmission. Raptor and Reed-Solomon codes are examples of application-level error-correcting code used in 5G NR networks.
[0088] FIG. 5 depicts example FEC at the transmitter / encoding side 500 and at the receiver / decoding side 550. As shown, at the transmitter / encoding side 500, source data is transmitted in multiple data packets along with one or more repair packets. Each repair packet may include redundant information corresponding to a set of the source data packets and can be used to recover information of lost data packets. As shown, at the receiver / decoding side 550, the receiver may miss one or more of the transmitted data packets, such as data packet 502 and data packet 504 in the illustrated example. Using the received repair packet (s) , the receiver can still recover the source data.
[0089] Application-level FEC refers to the use of FEC at the application layer of a communication protocol stack.
[0090] Application-layer FEC may use interleaving of data packets for out-of-order packet delivery. Interleaving is a technique used in data communication and digital signal processing to enhance the robustness of data transmission by reordering or rearranging data elements before they are transmitted or stored. The interleaving may be enabled via a cross-layer application programming interface (API) . An API is a set of protocols, routines, tools, and definitions that serves as an intermediary to allow different software applications to interact and communicate with each other seamlessly.
[0091] Web Real-Time Communication (WebRTC) is an open-source standard for providing real-time communication capabilities via application programming interfaces (APIs) . WebRTC APIs integrate techniques for FEC, such as Flexible FEC (FlexFEC) and Parity FEC making FlexFEC accessible to developer building real-time communication applications using WebRTC. FlexFEC allows application developers to adjust the level of redundancy based on the specific application, the nature of the data being transmitted (e.g., such as video streaming) , network conditions (e.g., such as network stability and packet loss rates) , and desired level of error correction.
[0092] At the transmitter / encoding side 500, the source data may be packets, for example, to Internet Protocol (IP) packets 1-N. The number of IP packets, N, may depend on the packet size and the amount of source data. The IP packets may then be encapsulated according to various protocols. FIG. 6 depicts example packet encapsulation in an example protocol stack 600. IP packet 602 (#n) may be encapsulated in a Service Data Adaptation Protocol (SDAP) Service Data Unit (SDU) 604 with an SDAP header 606. The SDAP SDU 604 and SDAP header 606 may then be encapsulated in a Packet Data Convergence Protocol (PDCP) SDU 608 with a PDCP header 610. The PDCP SDU 608 and PDCP header 610 may then be encapsulated in a Radio Link Control (RLC) SDU 612 with an RLC header 614. At the Medium Access Control (MAC) layer, the RLC SDU 612 ad RLC header 614 may then be encapsulated in a MAC SDU 616 with a MAC header 618.
[0093] The MAC SDU 616 and MAC header 618 are then included in a MAC Protocol Data Unit (PDU) TB 620. Depending on the transport block size (TBS) , the MAC SDUs (and MAC headers) of multiple encapsulated IP packets can be carried in a single TB. For example, IP packet 622 (#n+1) may be encapsulated in SDAP SDU 624 with SDAP header 626. SDAP SDU 624 and SDAP header 626 may then be encapsulated in PDCP SDU 628 with PDCP header 630. In the example shown in FIG. 6, the TBS may allow only a portion of the PDCP SDU 628 to fit in the MAC PDU TB 620. As shown, PDCP header 630 and a first portion of PDCP SDU 628 may be encapsulated in RLC SDU 632 with RLC header 634, encapsulated in MAC SDU 636 with MAC header 638, and included in the MAC PDU TB 620. The remainder of PDCP SDU 628 may be encapsulated in another RLC SDU 640 with RLC header 642 and then RLC SDU 640 with RLC header 642 may be encapsulated in another MAC SDU 644 with MAC header 646 and included in another MAC PDU TB 648,
[0094] Even using FEC, burst errors may be problematic when the burst size is larger than the interleaving length (L) . A receiving device (e.g., receiver / decoding side 550) may be able to recover at most one source data of a set of source data packets corresponding to a repair packet. In this case, when a TB (e.g., such as MAC PDU TB 620) contains multiple source data packets (e.g., IP packet 602 and IP packet 622) corresponding to the same repair packet, if the TB is lost, then the receiving device cannot recover any of the source data packets of the set of source data packets corresponding to the repair packet.
[0095] FIG. 7 depicts example packet loss for FEC with an interleaver length smaller than the transport block size. In example illustrated in FIG. 7, the interleaver length is three (L=3) , the source data includes twelve source data packets (N=12) , and each TB encapsulates four data packets (e.g., based on the TBS and the packet size) . With the interleaver length of three, every third packet may correspond to respective repair packet. As shown, packets 1, 4, 7, and 10 correspond to FEC repair packet C1; packets 2, 5, 8, and 11 correspond to FEC repair packet C2; and packets 3, 6, 9, and 12 correspond to FEC repair packet C3. Thus, with the interleaver size of three and the TBS encapsulating four data packets, each TB includes two data packets corresponding to the same FEC repair packet. For example, as shown, a TB encapsulates data packets 1, 2, 3, and 4, where the data packets 1 and 4 both correspond to FEC repair packet C1. In this case, as shown, if the TB is lost, then at the receiving / decoding side the data packets 2 and 3 can be recovered (where the system can recover at most a one data packet loss corresponding to repair packet) ; however, the data packets 1 and 4 cannot be recovered.
[0096] To avoid decoding failure in case of a TB loss, interleaved data packets corresponding to the same FEC repair packets should be allocated in different TBs. FIG. 8 depicts an example of no packet for FEC with an interleaver length equal to the TBS.
[0097] In example illustrated in FIG. 8, the interleaver length is four (L=4) , the source data includes twelve source data packets (N=12) , and each TB encapsulates four data packets. With the interleaver length of four, every fourth packet may correspond to respective repair packet. As shown, packets 1, 5, and 9 correspond to FEC repair packet C1; packets 2, 6, and 10 correspond to FEC repair packet C2; packets 3, 7, and 11 correspond to FEC repair packet C3; and packets 4, 8, and 12 correspond to FED repair packet C4. Thus, with the interleaver size of four and the TBS encapsulating four data packets, each TB includes only a single data packet corresponding to a particular FEC repair packet. For example, as shown, a TB encapsulates data packets 1, 2, 3, and 4. In this case, as shown, if the TB is lost, then at the receiving / decoding side the data packets 1, 2, 3, 4 can each be recovered (where the system can recover at most a one data packet loss corresponding to repair packet) .
[0098] FIG. 9 depicts a process flow 900 for communications in a network between a network entity 902, a UE 904, and an application server 906 for adaptive FEC and flexible packet allocation. In some aspects, the network entity 902 may be an example of the BS 102 depicted and described with respect to FIG. 1 and 3 or a disaggregated base station depicted and described with respect to FIG. 2. Similarly, the UE 904 may be an example of UE 104 depicted and described with respect to FIG. 1 and 3. However, in other aspects, UE 904 may be another type of wireless communications device and network entity 902 may be another type of network entity or network node, such as those described herein.
[0099] Application server 906 may be a network entity that provides specified services (e.g., multimedia services) or applications to mobile users within a communications network (e.g., wireless communication network 100) . Some examples of application servers include a IP multimedia subsystem (IMS) application server, a cell session control function (CSCF) , a streaming application server (SAS) , a short message service (SMS) server, a media resource function (MRF) , and a multimedia telephony application server (MTAS) .
[0100] As shown, the UE 904 may include an application client that interacts with the application server 906. In some aspects, the application client relies on the application server 906 for certain functions, such as processing, data storage, or access to resources. The application server 906 may perform requested operation and may return results to the application client. Some examples of application clients include applications such as multimedia application clients, web browsers, email clients, instant messaging applications, and online games.
[0101] As shown, the UE 904 may include an application processor (AP) and / or a modem processor (MP) . In some cases, these processors may be integrated into a single system-on-chip (SoC) , where both the AP and MP functions are hosted on the same chip. The MP, also known as the baseband processor, is responsible for managing the communication between the UE 904 and the mobile network. The MP may handle processing of radio signals, modulation and demodulation, encoding and decoding of data, and other tasks related to the radio interface. The AP is responsible for running the applications and may manage the operating system, user interface, applications, and other non-radio related functions. The AP may execute the applications that provide various services to the UE 904, such as web browsing, multimedia playback, and running third-party applications.
[0102] At operation 908, the MP or AP of the UE 904 may provide the TBS to the application client of the UE 904. In some aspects, the MP / AP provides the TBS via a cross-layer API. In some aspects, the TBS is provided in units kilobytes (kB) . In some aspects, the TBS includes an average TBS and a margin. Providing the average plus margin TBS may account for variations in the TBS over time.
[0103] At operation 910, the application client of the UE 904 adapts the interleaving length, L, for the FEC encoding, based on the indicated TBS. In some aspects, the application client adjust the interleaving length such that no two interleaved packets are encapsulated in the same TB. For example, the interleaving length may be equal to or larger than the number of packets encapsulated in a TB based on the TBS and the packet size. In some aspects, the interleaving length is adjusted to larger than the floor (TBS / packet size) . To account for burst error, where N TBs may be lost, the interleaving length may be adjusted to larger than the burst size N times the floor (TBS / packet size) .
[0104] At operation 912, the UE 904 provides the TBS, or recommends the determined interleaving length to the application server 906. For example, the application client of the UE 904 may directly recommend the adapted interleaving length to the application server 906 (e.g., if the application server 906 has information about the average source block size) . The application client of the UE 904 may forward the TBS to the application server 906 where the application server 906 determines the interleaving length based on the indicated TBS. In some aspects, the TBS or interleaving length are used for FEC encoding for downlink data, as described in more detail herein with respect to operations 922-930.
[0105] For uplink data with FEC, the UE 904 may perform the operations 914-920 described in more detail herein.
[0106] At operation 914, the application client of the UE 904 performs FEC encoding of uplink source data packets according to the adapted interleaving length. In some aspects, the FEC encoding includes interleaving the source data packets and generating repair packets corresponding to the source data packets (e.g., as described herein with respect to FIG. 8) .
[0107] At operation 916, the application client of the UE 904 may instruct the MAC layer of the UE 904 regarding how to allocate the source data packets in TBs, based on the FEC encoding. In some aspects, the application client instructs the MAC layer of the UE 904 via a cross-layer API. In some aspects, the application client provides lists of packets to be allocated in different TBs from each other.
[0108] Referring back to the example illustrated in FIG. 8, the application client may instruct the MAC layer to allocate the packets 1, 5, and 9 and FEC repair packet C1 in separate TBs from each other and similarly instruct to allocate the packets 2, 6, and 10 and FEC repair packet C2 in separate TBs, packets 3, 7, and 11 and FEC repair packet C3 in separate TBs, and the packets 4, 8, and 12 and FEC repair packet C4 in separate TBs.
[0109] In some aspects, the application client of the UE 904 may flexibly instruct the MAC layer of the UE 904 regarding how to allocate the source data packets in TBs, in order to ensure source data packets corresponding to a same FEC repair packet are encapsulated in different TBs to allow packet recovery even in cases where the interleaving length is not adapted. Referring back to the example illustrated in FIG. 7, the application client may instruct the MAC layer to allocate the packets 1, 4, 7, and 10 and FEC repair packet C1 in separate TBs from each other and similarly instruct to allocate the packets 2, 5, 8, and 11 and FEC repair packet C2 in separate TBs, and packets 3, 6, 9, and 12 and FEC repair packet C3 in separate TBs.
[0110] At operation 918, the MAC layer generates MAC TBs. In some aspects, the source data IP packets are encapsulated as shown in FIG. 6 and the MAC PDU TBs are generated with the MAC SDUs encapsulating the source IP data packets according to the FEC interleaving and / or packet allocation instructions.
[0111] At operation 920, the UE 904 transmits the generated MAC TBs to the network entity 902.
[0112] Turning to downlink data with FEC, the network (e.g., the applications server 906 and the network entity 902) may perform the operations 922-930 described in more detail herein. Although the uplink operations 914-920 and the downlink operations 922-930 are shown in a particular in the call flow 900, it should be understood that downlink data operations may occur before uplink operations, after uplink operations, in parallel with uplink operations, or not at all.
[0113] At operation 922, the application server 906 may select the recommended adapted interleaving length provided at operation 912 from the UE 904 or the application server 906 may determine the adapted interleaving length based on the TBS provided at operation 912 from the UE 904.
[0114] At operation 924, the application server 906 performs FEC encoding of downlink source data packets according to the adapted interleaving length. At operation 926, the application server 906 may instruct the MAC layer of the network entity 902 regarding how to allocate the source data packets in TBs, based on the FEC encoding. In some aspects, the application server 906 instructs the MAC layer of the network entity 902 regarding how to allocated the source data packets in TBs via application data unit (ADU) metadata. At operation 928, the MAC layer at the network entity 902 generates MAC TBs. At operation 930, the network entity 902 transmits the generated MAC TBs to the UE 904.
[0115] Example Operations
[0116] FIG. 10 shows an example of a method 1000 of wireless communication by a transmitting device. In some examples, the transmitting device is a user equipment, such as a UE 104 of FIGS. 1 and 3. In some examples, the transmitting device is a network entity, such as a BS 102 of FIGS. 1 and 3, or a disaggregated base station as discussed with respect to FIG. 2.
[0117] Method 1000 begins at step 1005 with generating a plurality of data packets. In some cases, the operations of this step refer to, or may be performed by, circuitry for generating and / or code for generating as described with reference to FIG. 11.
[0118] Method 1000 then proceeds to step 1010 with determining an interleaving length for forward error correction (FEC) , wherein the determining is based on a transport block size (TBS) . In some cases, the operations of this step refer to, or may be performed by, circuitry for determining and / or code for determining as described with reference to FIG. 11.
[0119] Method 1000 then proceeds to step 1015 with interleaving the plurality of data packets based on the interleaving length, wherein each set of data packets, of the plurality of data packets, occurring at the interleaving length corresponds to a repair packet. In some cases, the operations of this step refer to, or may be performed by, circuitry for interleaving and / or code for interleaving as described with reference to FIG. 11.
[0120] Method 1000 then proceeds to step 1020 with transmitting the plurality of data packets. In some cases, the operations of this step refer to, or may be performed by, circuitry for transmitting and / or code for transmitting as described with reference to FIG. 11.
[0121] In some aspects, determining the interleaving length based on the TBS comprises: receiving the TBS, at an application client from a modem or applications processor of the transmitting device; and determining the interleaving length at the application client.
[0122] In some aspects, receiving the TBS comprises receiving the TBS at the application client from the modem or applications processor via a cross-layer application programming interface (API) .
[0123] In some aspects, determining the interleaving length based on the TBS comprises determining the interleaving length such that each interleaved data packet of the set data packets corresponding to a particular repair packet are carried in a different TB.
[0124] In some aspects, determining the interleaving length based on the TBS comprises selecting an interleaving length larger than a floor of a quotient of the TBS and a packet size.
[0125] In some aspects, the TBS is a sum of an average TBS and a margin value.
[0126] In some aspects, determining the interleaving length based on the TBS comprises: forwarding the TBS to an application server; and receiving an indication of the interleaving length from the application server.
[0127] In some aspects, the method 1000 further includes dynamically adapting the interleaving length to a different interleaving length when the TBS or a packet size changes. In some cases, the operations of this step refer to, or may be performed by, circuitry for dynamically adapting and / or code for dynamically adapting as described with reference to FIG. 11.
[0128] In some aspects, the method 1000 further includes indicating the interleaving length to an application server. In some cases, the operations of this step refer to, or may be performed by, circuitry for indicating and / or code for indicating as described with reference to FIG. 11.
[0129] In some aspects, the method 1000 further includes receiving one or more transport blocks (TBs) , wherein each of the TBs includes a number of data packets equal to or smaller than the interleaving length. In some cases, the operations of this step refer to, or may be performed by, circuitry for receiving and / or code for receiving as described with reference to FIG. 11.
[0130] In some aspects, the method 1000 further includes indicating the TBS to an application server. In some cases, the operations of this step refer to, or may be performed by, circuitry for indicating and / or code for indicating as described with reference to FIG. 11.
[0131] In some aspects, the method 1000 further includes receiving one or more transport blocks (TBs) , wherein each of the TBs includes a number of data packets equal to or smaller than the interleaving length. In some cases, the operations of this step refer to, or may be performed by, circuitry for receiving and / or code for receiving as described with reference to FIG. 11.
[0132] In some aspects, the method 1000 further includes indicating, from an application client to a medium access control (MAC) layer, an indication of which data packets of the plurality of data packets to include in a same transport block (TB) . In some cases, the operations of this step refer to, or may be performed by, circuitry for indicating and / or code for indicating as described with reference to FIG. 11.
[0133] In some aspects, the method 1000 further includes generating one or more MAC layer TBs, wherein the generating comprises allocating the plurality of packets based on the indication. In some cases, the operations of this step refer to, or may be performed by, circuitry for generating and / or code for generating as described with reference to FIG. 11.
[0134] In some aspects, the indication comprises an indication of Internet protocol (IP) data packets to include in a same MAC TB.
[0135] In some aspects, the plurality of data packets comprise uplink data packets, and wherein the transmitting device is a user equipment (UE) .
[0136] In some aspects, the method 1000 further includes receiving, from an application server, an indication of which data packets of the plurality of data packets to include in a same transport block (TB) . In some cases, the operations of this step refer to, or may be performed by, circuitry for receiving and / or code for receiving as described with reference to FIG. 11.
[0137] In some aspects, the method 1000 further includes generating one or more MAC layer TBs, wherein the generating comprises allocating the plurality of packets based on the indication. In some cases, the operations of this step refer to, or may be performed by, circuitry for generating and / or code for generating as described with reference to FIG. 11.
[0138] In some aspects, for downlink data, the indication of which data packets to include the same TB is received via application data unit (ADU) metadata.
[0139] In some aspects, the indication comprises an indication of Internet protocol (IP) data packets to include in a same MAC TB.
[0140] In some aspects, the plurality of data packets comprise downlink data packets, and wherein the transmitting device is a network entity.
[0141] In one aspect, method 1000, or any aspect related to it, may be performed by an apparatus, such as communications device 1100 of FIG. 11, which includes various components operable, configured, or adapted to perform the method 1000. Communications device 1100 is described below in further detail.
[0142] Note that FIG. 10 is just one example of a method, and other methods including fewer, additional, or alternative steps are possible consistent with this disclosure.
[0143] Example Communications Device
[0144] FIG. 11 depicts aspects of an example communications device 1100. In some aspects, communications device 1100 is a user equipment, such as UE 104 described above with respect to FIGS. 1 and 3. In some aspects, communications device 1100 is a network entity, such as BS 102 of FIGS. 1 and 3, or a disaggregated base station as discussed with respect to FIG. 2.
[0145] The communications device 1100 includes a processing system 1102 coupled to the transceiver 1138 (e.g., a transmitter and / or a receiver) . In some aspects (e.g., when communications device 1100 is a network entity) , processing system 1102 may be coupled to a network interface 1142 that is configured to obtain and send signals for the communications device 1100 via communication link (s) , such as a backhaul link, midhaul link, and / or fronthaul link as described herein, such as with respect to FIG. 2. The transceiver 1138 is configured to transmit and receive signals for the communications device 1100 via the antenna 1140, such as the various signals as described herein. The processing system 1102 may be configured to perform processing functions for the communications device 1100, including processing signals received and / or to be transmitted by the communications device 1100.
[0146] The processing system 1102 includes one or more processors 1104. In various aspects, the one or more processors 1104 may be representative of one or more of receive processor 358, transmit processor 364, TX MIMO processor 366, and / or controller / processor 380, as described with respect to FIG. 3. In various aspects, one or more processors 1104 may be representative of one or more of receive processor 338, transmit processor 320, TX MIMO processor 330, and / or controller / processor 340, as described with respect to FIG. 3. The one or more processors 1104 are coupled to a computer-readable medium / memory 1120 via a bus 1136. In certain aspects, the computer-readable medium / memory 1120 is configured to store instructions (e.g., computer-executable code) that when executed by the one or more processors 1104, cause the one or more processors 1104 to perform the method 1000 described with respect to FIG. 10, or any aspect related to it. Note that reference to a processor performing a function of communications device 1100 may include one or more processors 1104 performing that function of communications device 1100.
[0147] In the depicted example, computer-readable medium / memory 1120 stores code (e.g., executable instructions) , such as code for generating 1122, code for determining 1124, code for interleaving 1126, code for transmitting 1128, code for dynamically adapting 1130, code for indicating 1132, and code for receiving 1134. Processing of the code for generating 1122, code for determining 1124, code for interleaving 1126, code for transmitting 1128, code for dynamically adapting 1130, code for indicating 1132, and code for receiving 1134 may cause the communications device 1100 to perform the method 1000 described with respect to FIG. 10, or any aspect related to it.
[0148] The one or more processors 1104 include circuitry configured to implement (e.g., execute) the code stored in the computer-readable medium / memory 1120, including circuitry for generating 1106, circuitry for determining 1108, circuitry for interleaving 1110, circuitry for transmitting 1112, circuitry for dynamically adapting 1114, circuitry for indicating 1116, and circuitry for receiving 1118. Processing with circuitry for generating 1106, circuitry for determining 1108, circuitry for interleaving 1110, circuitry for transmitting 1112, circuitry for dynamically adapting 1114, circuitry for indicating 1116, and circuitry for receiving 1118 may cause the communications device 1100 to perform the method 1000 described with respect to FIG. 10, or any aspect related to it.
[0149] Various components of the communications device 1100 may provide means for performing the method 1000 described with respect to FIG. 10, or any aspect related to it. For example, means for transmitting, sending or outputting for transmission may include transceivers 354 and / or antenna (s) 352 of the UE 104 illustrated in FIG. 3, transceivers 332 and / or antenna (s) 334 of the BS 102 illustrated in FIG. 3, and / or the transceiver 1138 and the antenna 1140 of the communications device 1100 in FIG. 11. Means for receiving or obtaining may include transceivers 354 and / or antenna (s) 352 of the UE 104 illustrated in FIG. 3, transceivers 332 and / or antenna (s) 334 of the BS 102 illustrated in FIG. 3, and / or the transceiver 1138 and the antenna 1140 of the communications device 1100 in FIG. 11.
[0150] Example Clauses
[0151] Implementation examples are described in the following numbered clauses:
[0152] Clause 1: A method for wireless communication by a transmitting device, comprising: generating a plurality of data packets; determining an interleaving length for forward error correction (FEC) , wherein the determining is based on a transport block size (TBS) ; interleaving the plurality of data packets based on the interleaving length, wherein each set of data packets, of the plurality of data packets, occurring at the interleaving length corresponds to a repair packet; and transmitting the plurality of data packets.
[0153] Clause 2: The method of Clause 1, wherein determining the interleaving length based on the TBS comprises: receiving the TBS, at an application client from a modem or applications processor of the transmitting device; and determining the interleaving length at the application client.
[0154] Clause 3: The method of Clause 2, wherein receiving the TBS comprises receiving the TBS at the application client from the modem or applications processor via a cross-layer application programming interface (API) .
[0155] Clause 4: The method of any combination of Clauses 1-3, wherein determining the interleaving length based on the TBS comprises determining the interleaving length such that each interleaved data packet of the set data packets corresponding to a particular repair packet are carried in a different TB.
[0156] Clause 5: The method of any combination of Clauses 1-4, wherein determining the interleaving length based on the TBS comprises selecting an interleaving length larger than a floor of a quotient of the TBS and a packet size.
[0157] Clause 6: The method of Clause 5, wherein the TBS is a sum of an average TBS and a margin value.
[0158] Clause 7: The method of any combination of Clauses 1-6, wherein determining the interleaving length based on the TBS comprises: forwarding the TBS to an application server; and receiving an indication of the interleaving length from the application server.
[0159] Clause 8: The method of any combination of Clauses 1-7, further comprising dynamically adapting the interleaving length to a different interleaving length when the TBS or a packet size changes.
[0160] Clause 9: The method of any combination of Clauses 1-8, further comprising: indicating the interleaving length to an application server; and receiving one or more transport blocks (TBs) , wherein each of the TBs includes a number of data packets equal to or smaller than the interleaving length.
[0161] Clause 10: The method of any combination of Clauses 1-9, further comprising: indicating the TBS to an application server; and receiving one or more transport blocks (TBs) , wherein each of the TBs includes a number of data packets equal to or smaller than the interleaving length.
[0162] Clause 11: The method of any combination of Clauses 1-10, further comprising indicating, from an application client to a medium access control (MAC) layer, an indication of which data packets of the plurality of data packets to include in a same transport block (TB) .
[0163] Clause 12: The method of Clause 11, further comprising generating one or more MAC layer TBs, wherein the generating comprises allocating the plurality of packets based on the indication.
[0164] Clause 13: The method of any combination of Clauses 11-12, wherein the indication comprises an indication of Internet protocol (IP) data packets to include in a same MAC TB.
[0165] Clause 14: The method of any combination of Clause 11s-13, wherein the plurality of data packets comprise uplink data packets, and wherein the transmitting device is a user equipment (UE) .
[0166] Clause 15: The method of any combination of Clauses 1-14, further comprising receiving, from an application server, an indication of which data packets of the plurality of data packets to include in a same transport block (TB) .
[0167] Clause 16: The method of Clause 15, further comprising generating one or more MAC layer TBs, wherein the generating comprises allocating the plurality of packets based on the indication.
[0168] Clause 17: The method of any combination of Clauses 15-16, wherein the indication of which data packets to include the same TB is received via application data unit (ADU) metadata.
[0169] Clause 18: The method of any combination of Clauses 15-17, wherein the indication comprises an indication of Internet protocol (IP) data packets to include in a same MAC TB.
[0170] Clause 19: The method of any combination of Clauses 15-18, wherein the plurality of data packets comprise downlink data packets, and wherein the transmitting device is a network entity.
[0171] Clause 20: An apparatus, comprising: at least one memory comprising executable instructions; and at least one processor configured to execute the executable instructions and cause the apparatus to perform a method in accordance with any one of Clauses 1-19.
[0172] Clause 21: An apparatus, comprising means for performing a method in accordance with any one of Clauses 1-19.
[0173] Clause 22: A non-transitory computer-readable medium comprising executable instructions that, when executed by at least one processor of an apparatus, cause the apparatus to perform a method in accordance with any one of Clauses 1-19.
[0174] Clause 23: A computer program product embodied on a computer-readable storage medium comprising code for performing a method in accordance with any one of Clauses 1-19.
[0175] Additional Considerations
[0176] The preceding description is provided to enable any person skilled in the art to practice the various aspects described herein. The examples discussed herein are not limiting of the scope, applicability, or aspects set forth in the claims. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. For example, changes may be made in the function and arrangement of elements discussed without departing from the scope of the disclosure. Various examples may omit, substitute, or add various procedures or components as appropriate. For instance, the methods described may be performed in an order different from that described, and various actions may be added, omitted, or combined. Also, features described with respect to some examples may be combined in some other examples. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, the scope of the disclosure is intended to cover such an apparatus or method that is practiced using other structure, functionality, or structure and functionality in addition to, or other than, the various aspects of the disclosure set forth herein. It should be understood that any aspect of the disclosure disclosed herein may be embodied by one or more elements of a claim.
[0177] The various illustrative logical blocks, modules and circuits described in connection with the present disclosure may be implemented or performed with a general purpose processor, a graphics processing unit (GPU) , a neural processing unit (NPU) , a digital signal processor (DSP) , an ASIC, a field programmable gate array (FPGA) or other programmable logic device (PLD) , discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any commercially available processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, a system on a chip (SoC) , or any other such configuration.
[0178] As used herein, “a processor, ” “at least one processor” or “one or more processors” generally refers to a single processor configured to perform one or multiple operations or multiple processors configured to collectively perform one or more operations. In the case of multiple processors, performance of the one or more operations could be divided amongst different processors, though one processor may perform multiple operations, and multiple processors could collectively perform a single operation. Similarly, “a memory, ” “at least one memory” or “one or more memories” generally refers to a single memory configured to store data and / or instructions, multiple memories configured to collectively store data and / or instructions.
[0179] Means for generating, means for determining, means for interleaving, means for transmitting, means for dynamically adapting, means for indicating, and means for receiving may comprise one or more processors, such as one or more of the processors described above with reference to FIG. 11.
[0180] As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover a, b, c, a-b, a-c, b-c, and a-b-c, as well as any combination with multiples of the same element (e.g., a-a, a-a-a, a-a-b, a-a-c, a-b-b, a-c-c, b-b, b-b-b, b-b-c, c-c, and c-c-c or any other ordering of a, b, and c) .
[0181] As used herein, the term “determining” encompasses a wide variety of actions. For example, “determining” may include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure) , ascertaining and the like. Also, “determining” may include receiving (e.g., receiving information) , accessing (e.g., accessing data in a memory) and the like. Also, “determining” may include resolving, selecting, choosing, establishing and the like.
[0182] The methods disclosed herein comprise one or more actions for achieving the methods. The method actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of actions is specified, the order and / or use of specific actions may be modified without departing from the scope of the claims. Further, the various operations of methods described above may be performed by any suitable means capable of performing the corresponding functions. The means may include various hardware and / or software component (s) and / or module (s) , including, but not limited to a circuit, an application specific integrated circuit (ASIC) , or processor. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, or functions, whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
[0183] The following claims are not intended to be limited to the aspects shown herein, but are to be accorded the full scope consistent with the language of the claims. Within a claim, reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more. ” Unless specifically stated otherwise, the term “some” refers to one or more. No claim element is to be construed under the provisions of 35 U.S.C. §112 (f) unless the element is expressly recited using the phrase “means for” . All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims.
Claims
1.An apparatus comprising:one or more processors configured to, individually or collectively, execute computer executable code and cause the apparatus to:generate a plurality of data packets;determine an interleaving length for forward error correction (FEC) , wherein the determination is based on a transport block size (TBS) ;interleave the plurality of data packets based on the interleaving length, wherein each set of data packets, of the plurality of data packets, occurring at the interleaving length corresponds to a repair packet; andtransmit the plurality of data packets.2.The apparatus of claim 1, wherein the one or more processors are configured to cause the apparatus to:receive the TBS, at an application client from a modem or applications processor of the apparatus; anddetermine the interleaving length at the application client.3.The apparatus of claim 2, wherein the one or more processors are configured to cause the apparatus to receive the TBS at the application client from the modem or applications processor via a cross-layer application programming interface (API) .4.The apparatus of claim 1, wherein the one or more processors are configured to cause the apparatus to determine the interleaving length such that each interleaved data packet of the set data packets corresponding to a particular repair packet are carried in a different transport block (TB) .5.The apparatus of claim 1, wherein the one or more processors are configured to cause the apparatus to select an interleaving length larger than a floor of a quotient of the TBS and a packet size.6.The apparatus of claim 5, wherein the TBS is a sum of an average TBS and a margin value.7.The apparatus of claim 1, wherein the one or more processors are configured to cause the apparatus to:forward the TBS to an application server; andreceive an indication of the interleaving length from the application server.8.The apparatus of claim 1, wherein the one or more processors are further configured to cause the apparatus to dynamically adapt the interleaving length to a different interleaving length when the TBS or a packet size changes.9.The apparatus of claim 1, wherein the one or more processors are configured to cause the apparatus to:indicate the interleaving length to an application server; andreceive one or more transport blocks (TBs) , wherein each of the TBs includes a number of data packets equal to or smaller than the interleaving length.10.The apparatus of claim 1, wherein the one or more processors are further configured to cause the apparatus to:indicate the TBS to an application server; andreceive one or more transport blocks (TBs) , wherein each of the TBs includes a number of data packets equal to or smaller than the interleaving length.11.The apparatus of claim 1, wherein the one or more processors are further configured to cause the apparatus to indicate, from an application client to a medium access control (MAC) layer, which data packets of the plurality of data packets to include in a same transport block (TB) .12.The apparatus of claim 11, wherein the one or more processors are further configured to cause the apparatus to generate one or more MAC layer TBs, wherein the generating comprises allocating the plurality of packets based on the indication.13.The apparatus of claim 11, wherein the indication comprises an indication of Internet protocol (IP) data packets to include in a same MAC TB.14.The apparatus of claim 11, wherein the plurality of data packets comprise uplink data packets, and wherein the apparatus is a user equipment (UE) .15.The apparatus of claim 1, wherein the one or more processors are further configured to cause the apparatus to receive, from an application server, an indication of which data packets of the plurality of data packets to include in a same transport block (TB) .16.The apparatus of claim 15, wherein the one or more processors are configured to cause the apparatus to generate one or more MAC layer TBs, wherein the generating comprises allocating the plurality of packets based on the indication.17.The apparatus of claim 15, wherein the indication of which data packets to include the same TB is received via application data unit (ADU) metadata.18.The apparatus of claim 15, wherein the plurality of data packets comprise downlink data packets, and wherein the apparatus is a network entity.19.A method for wireless communication by a transmitting device, the method comprising:generating a plurality of data packets;determining an interleaving length for forward error correction (FEC) , wherein the determining is based on a transport block size (TBS) ;interleaving the plurality of data packets based on the interleaving length, wherein each set of data packets, of the plurality of data packets, occurring at the interleaving length corresponds to a repair packet; andtransmitting the plurality of data packets.20.A computer readable medium storing computer executable code thereon comprising:code for generating a plurality of data packets;code for determining an interleaving length for forward error correction (FEC) , wherein the determining is based on a transport block size (TBS) ;code for interleaving the plurality of data packets based on the interleaving length, wherein each set of data packets, of the plurality of data packets, occurring at the interleaving length corresponds to a repair packet; andcode for transmitting the plurality of data packets.
Citation Information
Patent Citations
Data transmission processing method and device
CN107046712A
Seamless change of depth of a general convolutional interleaver during transmission without loss of data
US20060107174A1
Interleaving for layer-aware forward error correction
US20140250344A1
Wireless communication device, wireless communication method, and program
WO2016047246A1