Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Networked-Signal Processing in OAI
• Address the trend to split/slice/distribute the radio and protocolstack between network entities1. spatial signal-processing (distributed MIMO)2. network function virtualization3. data-center processing
• current implementation and what’s coming• some notes on EURECOM deployment• some generic information from OAI community
Raymond KnoppOpen5G Lab, EURECOMSophia Antipolis, FRANCE
04.02.2017, FOSDEM(Brussels)
NGFI Harmonization in OAI
• New descriptions for OAI RAN infrastructure Node Functions
– NGFI RCC : Radio Cloud Center– NGFI RAU : Radio Aggregation Unit– NGFI RRU : Remote Radio Unit– 3GPP BBU : Baseband Unit– 3GPP eNodeB : Complete eNodeB
Source: China Mobile - http://www.windriver.com.cn/windforum/download/wf2015 networking03.pdf
• Current OAI implementation(RRU/RCC) supports either– IF5 time-domain
fronthaul (¿ 1 GbErequired)
– IF4.5 split (FFTs) (280Mbit/s/antenna portfronthaul 20 MHzcarrier) per carrier/sector
– Soon IF2 (NFAPI) IF1for super-PDCP soon
NGFI split points
Functional Splits
MACTX
PDCPTX
RLCTX
MACRX
PDCPRX
RLCRX
RRC
GTP-C GTP-U
PHYTX
PHYRX
rf device
MACTX
PDCPTX
RLCTX
MACRX
PDCPRX
RLCRX
RRC
GTP-C GTP-U
PHYTX
PHYRX
if device
3GPP eNodeB 3GPP BBUto MME to S-PGw to MME to S-PGw
USB3 or
PCIeNFGI IF5 /
ethernet
MACTX
PDCPTX
RLCTX
MACRX
PDCPRX
RLCRX
RRC
GTP-C GTP-U
upper-PHYRX
if device
NGFI RCC (IF4.5)to MME to S-PGw
NFGI IF4p5
/ ethernet
upper-PHYTX
to NGFI RRUto NGFI RRUor RRH gw
to RF Device
MACTX
PDCPTX
RLCTX
MACRX
PDCPRX
RLCRX
RRC
GTP-C GTP-U
upper-PHYRX
if device
NGFI RCC (IF4p5/IF1”)to MME to S-PGw
NFGI IF4 IF1pp
/ ethernet
MACTX
PDCPTX
RLCTX
MACRX
PDCPRX
RLCRX
RRC
GTP-C GTP-U
if device
NGFI RCC (IF1”)to MME to S-PGw
NFGI IF1pp /ethernet
PDCPTX
PDCPRX
RRC
GTP-C GTP-U
if device
NGFI RCC (IF1’)to MME to S-PGw
NFGI IF1p /ethernet
to NGFI RRU
to NGFI RAU
to NGFI RAU
Functional Splits
upper-PHYRX
if device
NGFI RAU(IF1”)
NFGI IF4p5
/ ethernet
upper-PHYTX
if device
NFGI IF1pp
/ ethernet
to NGFI RCC
to NGFI RRU
upper-PHYRX
if device
NGFI RAU(IF1’/IF4p5)
NFGI IF4p5
/ ethernet
upper-PHYTX
if device
NFGI IF1p /
ethernet
to NGFI RCC
to NGFI RRU
MACTX
RLCTX
MACRX
RLCRX
upper-PHYRX
if device
NFGI IF4p5
/ ethernet
if device
NFGI IF1p /
ethernet
to NGFI RCC
to NGFI RRU
MACTX
RLCTX
MACRX
RLCRX
NGFI RAU(IF1’/IF4p5/IF1”)
Functional Splits
if device
NGFI RRU (IF5)
NFGI IF5/
ethernet
rf device
NGFI RRU (IF4.5)
to NGFI RCC,NGFI RAU,3GPP BBU
to RF Device
USB3,
PCIe,
CPRI
if device
NFGI IF4p5/
ethernet
rf device
to NGFI RCC,NGFI RAU
to RF Device
USB3,
PCIe,
CPRI
lower-PHYRX
lower-PHYTX
if device
upper-PHYTX
if device
NFGI IF1pp 4P5
/ ethernet
to NGFI RCC, NGFI RAU
USB3,
PCIe,
CPRI
to RF Device
Functional Splits
NGFI RRU(IF1”/IF4p5)
lower-PHYRX
lower-PHYTX
Some Notes on usage of splits
OAI RAN Software Architecture
PHY Instance 0
PHY Instance 1
MAC/RLC/PDCP Instance 0DL/UL
Scheduler
MACRX
PDCPRX
MACTX
PDCPTX
1ms TICK
DCI0 , Transport Blocks
DCI1 DCI 2
RLCRX
RLCTX
PHY RX neNB0
PHY RX neNB1
PHY RX neNB2
PHY TX n + 4eNB0
PHY TX n + 4eNB1
PHY TX n + 4eNB2
Transport Blocks
Transport Blocks
CQI/SR/ACK/NAK/PHRTransport Blocks
CQI/SR/ACK/NAK/PHRTransport Blocks
CQI/SR/ACK/NAK/PHRTransport Blocks
1ms TICK
DCI0 , Transport Blocks
MAC/RLC/PDCP Instance 1
MACTX
PDCPTX
RLCTX
MACTX
PDCPTX
RLCTX
MACRX
PDCPRX
RLCRX
MACRX
PDCPRX
RLCRX
PHY RXeNB0
PHY TXeNB0
CQI/SR/ACK/NAK/PHRTransport Blocks
DL/ULScheduler
MACRX
PDCPRX
MACTX
PDCPTX
RLCRX
RLCTX
RU/eNodeB Instances and Component Carriers
RU3
RU0
RU1
RU2
RU4
RU5
RU6
• Radio Unit (RU) is
– an entity managing a set of physical antennas. It can have a local RFunit or remote RF unit
– performs precoding of multiple eNB TX streams and OFDM modulation(TX) and demodulation (RX) (part of 36.211)
• eNB Instance (indexed by Mod id, or enb mod id) is a separate set ofthreads and contexts for a full eNodeB, or at least the MAC/RLC entities,in the same Linux process. There is one MAC/RLC entity associated to allcomponent carriers of a single eNB instance.
• eNB Component Carrier (indexed by CC id) is
– a software entity managing the L1 procedures (36.213,36.212,36.211)and can act on∗ sectored antenna component∗ Rel10+ component carrier∗ virtual cell for DAS or Massive-MIMO array
– each eNB is managed by one or two threads which operate on asubframe (TX and RX) and can have a local RU or remote RU
– if a remote radio unit the eNB performs the 36.213 specifications only(HARQ, etc.) and connects to the remainder via the IF2 xhaul interface.
RU/eNodeB Instances and Component Carriers
RU/eNodeB Instances and Component Carriers
• RU may have both an if device for fronthaul and an rf device forinterconnection with a local RF unit
• if the rf device is absent, it must have a southbound fronthaul interface(either IF5 or IF4p5) depending on the local processing of the remote RU
• if the if device is absent, it must have a southbound RF interface andrf device.
• three types of L1 processing are performed by the RU
– subset of common L1 procedures from 36.211 specifications– fronthaul compression/decompression– framing
• on TX
– A-law compression for (NGFI RAU IF4p5, NGFI RAU IF5)– A-law decompression (for NGFI RRU IF4p5 and NGFI RRU IF5)– OFDM modulation and cyclic prefix insertion (for
NGFI RRU IF4p5,NGFI RAU IF5,3GPP eNodeB BBU,3GPP eNodeB)– Precoding (for NGFI RAU IF5,
NGFI RAU IF4p5,3GPP eNodeB BBU,3GPP eNodeB)
RU/eNodeB Instances and Component Carriers
• on RX
– A-law compression for (NGFI RRU IF4p5, NGFI RRU IF5)– A-law decompression (for NGFI RAU IF4p5 and 3GPP eNodeB BBU)– cyclic prefix removal, frequency-shifting, OFDM demodulation, PRACH
DFT (for NGFI RRU IF4p5, NGFI RAU IF5, 3GPP eNodeB BBU,3GPP eNodeB)
• IF5 transports packets of size equal to a subframe and corresponding to a 1ms chunk of signal in thetime-domain. This is done via the functions send if5 and recv if5, in the layer1 transport procedures(openair1/PHY/LTE TRANSPORT/if5 tools.c). A timestamp is given along with the samples, corresponding tothe time (in samples) of the first sample of the packet.
• each block can be compressed with A-law compression, yielding a compression rate of .5.
RU Fronthaul interfaces (NGFI IF5)
PHY RX neNB2 (211,212)
PHY TX n + 4eNB2 (211,212)
RU0
PHY RX neNB1 (211,212)
PHY RX neNB0 (211,212)
PHY TX n + 4eNB1 (211,212)
PHY TX n + 4eNB0 (211,212)
RU->ru time.rxdata[0]
RU->ru time.rxdata[R-1]slot fep ul
36.211
eNB->common vars.rxdataF[0]
eNB->common vars.rxdataF[R-1]
Ala
w−
1()
from IF5 if device
PRECODING
RU->ru time.txdata[0]
doofdmmodrt()
36.211
openair1/SCHED/ru-procedures.c
Ala
w()
to IF5 if device
RU->ru time.txdata[T-1]
recv IF5()
send IF5()
ru fep full()
IF5 RU eNB end
7.5
kHz()
ru thread()
ru thread asynch rxtx()
• IF4p5 transports packets of size equal to an OFDM symbol (for DLRE and ULRE) indexed by the symbol,subframe and frame number. This is done via the functions send if4p5 and recv if4p5, in the layer1 transportprocedures (openair1/PHY/LTE TRANSPORT/if4 tools.c).
• each block are compressed with A-law compression, yielding a compression rate of .5.
RU Fronthaul interfaces (NGFI IF4p5)
PHY RX neNB2 (211,212)
PHY TX n + 4eNB2 (211,212)
RU0
PHY RX neNB1 (211,212)
PHY RX neNB0 (211,212)
PHY TX n + 4eNB1 (211,212)
PHY TX n + 4eNB0 (211,212)
Ala
w−
1()
from IF4p5 if device
PRECODING
openair1/SCHED/ru-procedures.c
Ala
w()
to IF4p5 if device
recv IF4p5()
send IF4p5()
IF4p5 RU eNB end
eNB->common vars.rxdataF[0]
eNB->common vars.rxdataF[R-1]
eNB->prach vars.prachF[0· · · R-1]
ru thread()
RU Fronthaul interfaces (NGFI IF4p5)
RU0
RU->ru time.rxdata[0]
RU->ru time.rxdata[R-1]slot fep ul
36.211
from rf device
RU->ru time.txdata[0]
doofdmmodrt()
36.211
openair1/SCHED/ru-procedures.c
to rf device
RU->ru time.txdata[T-1]
ru fep full()
IF4p5 RU remote-end
Ala
w−
1()
Ala
w()
7.5
kHz()
recv IF4p5()
send IF4p5()
to if device
from if device
ru prach procedures36.211
ru prach procedures()
rx prachl36.211
ru thread prach()
ru thread()
ru thread asynch rxtx()
to if device
TX Precoding
• Spatio-temporal filtering for muli-cell (vCell) and multi-usertransmission. Input and output are frequency-domain signals.
• can be applied to Rel-10/11/12/13 physical channels and Rel-8common channels
– UE-specific precoding (TM7-10)– vCell-specific precoding (PDCCH + TM1-6) for groups of UEs– PMCH vCells
• Precoding applicable to
1. indoor DAS2. outdoor co-localized arrays (e,g, Massive-MIMO)3. outdoor CoMP
UE
vCell
vCell
TX Precoding
TX Precoding (to RF device)
eNB[0]
eNB[1]
eNB[CC max]
rf device[0]
rf device[1]
rf device[N-1]
common signal precoding(vCell)
PBCH,PSS/SSS,PCFICH/PHICH/PDCCH
PDSCH - TM1-6
UE-specific signal
precoding(vCell)
UE-RS,PDSCH - TM7-10
PMCH precoding
ph
yva
rseN
B.t
xda
taF
ph
yva
rseN
B.t
xda
ta
doofdmmodrt()
36.211
TX Precoding (to IF device, NGFI IFv4p5)
eNB[0]
eNB[1]
eNB[CC max]
if device[0]
if device[1]
if device[N-1]
common signal precoding(vCell)
PBCH,PSS/SSS,PCFICH/PHICH/PDCCH
PDSCH - TM1-6
UE-specific signal
precoding(vCell)
UE-RS,PDSCH - TM7-10
PMCH precoding
NGFI IFv4p5
NGFI IFv4p5
NGFI IFv4p5
• On TX path– eNB instances/component carriers operate on a set of logical
antenna ports (0-3 for TM1-6, 4 for eMBMS, 5 for TM7, 6 forpositioning, 7-8 for TM8, etc.)
– each eNB has a list of RUs and the logical antenna ports aremapped to the physical antennas attached to the RUs via theprecoding function
– if the eNB has a remote RU then it is connected by an xhaulinterface (IF2) to the eNB instance/component carrier in anotherunit which contains the RU. Here the eNB processing is split.
• on RX the eNB instance/component carrier has access to all RUsignals for processing
RU/eNodeB Instances and Component Carriers
PHY RX neNB0 (211,212)
PHY TX n + 4eNB0 (211,212)RU0
RUN−1PHY RX neNB0 (213)
PHY TX n + 4eNB0 (213)
IF2 (TX)
IF2 (RX)
IF1” (TX)
IF1” (RX)
logical antennas (TX)
N physical antennas (RX)
openair2 MAC(36.321)
RCCelement
RAUelement
if device
NFGI IF4p5 / ethernet
upper-PHY TX(212,213)
if device
NFGI IF1pp
/ ethernet
if device
TX PRECODINGRX COMBINING
if device if device if device
• Example: RAU with NGFI IF1pp xhaul (MAC/PHY split) northbound,NGFI IF4p5 fronthaul southbound, 2 vCell logical interfaces (2 L1/L2instances, or 1 L2 instance and 2 CCs), 4 RRUs with NGFI IF4p5
upper-PHY RX(212,213)
upper-PHY RX(212,213)
upper-PHY TX(212,213)
RU0 RU1 RU2 RU3
eNB0 eNB1
RAU Example (DAS)
PHYRX0
if device
NGFI IF4p5 / ethernet
PHYTX0
if device
NGFI IF1p / ethernet
TX PRECODINGRX COMBINING
• Example: massive-MIMO RAU with NGFI IF1p fronthaul northbound, 8 L1component carriers,1 L2 instances, many local RRUs with NGFI IF4p5
southbound
if device if device if device
PHYRX1
PHYTX1
PHYRX7
PHYTX7
RLC
MAC
eNB0
eNB1
eNB7
RU0···15 RU16···31 RU32···47 RU48···63
RAU Example (Massive-MIMO)
OAI IF2 Interface
• OAI IF2 is the interface between the 36.213 Physical Layer Procedures (HARQ, SR, CSI, etc.) and thetransport/physical channel processing
• it can be networked, although this is not used as an xhaul interface at the moment. Considerations for usingFAPI/NFAPI P7 are underway.
phy procedures lte eNB TX phy procedures lte eNB RX36.213
PHY transport and physical channel procedures36.211/212
commonsignalprocedures()
pmchprocedures()
generatedlschparametersfromdci()
generateulschparametersfromdci()
phyconfigdedicatedstep2()
generatedcitop()
generatephichtop()
pdschprocedures()
pucchprocedures()
processMsg3()
rxulsch()
ulschdecoding()
extractcqi()
getMsg3allocret()
lteesttimingadvancepusch()
lteeNBI0measurements()
processHARQinfo()
generate dci top()
MAC
DCI PDU
dlsch coding()36.212
DLSCH PDU 0
DLSCH PDU 1 0
DLSCH PDU 1 1
generate pcfich()36.212,36.211
generate dci0()36.212
pdcch scrambling()pdcch modulationpdcch interleaving
36.211
dlsch coding()36.212
dlsch coding()36.212
dlsch encoding()36.212
dlsch scrambling()dlsch modulation()
36.211
dlsch encoding()36.212 dlsch scrambling()
dlsch modulation()[2-4 layers]
36.211dlsch encoding()
36.212
openair1/SCHED/phy procedures lte eNb.c:pdsch procedures()
openair1/SCHED/phy procedures lte eNb.c:pdsch procedures()
openair1/PHY/LTE TRANSPORT/dci.c
dlsch coding()36.212
MCH PDUdlsch encoding()
36.212
dlsch scrambling()mch modulation()
36.211
openair1/SCHED/phy procedures lte eNb.c:pmch procedures()
ULCNTL
36.213generate phich top() generate phich()
36.212,36.211
openair1/PHY/LTE TRANSPORT/phich.c
PHICH REs
PCFICH REs
PDCCH REs
PDSCH REs
PMCH REs
generate pilots slot()generate pss/sss/pbch()
36.211openair1/SCHED/phy procedures lte eNb.c:common signal procedures()
CS-RS/PSS/SSS/PBCH REs
openair1/SCHED/phy procedures lte eNb.c:phy procedures eNB TX()
eNB TX Procedures
eNodeB 3GPP orNGFI RCC IF4p5
IF1’’ split points
openair1/SCHED/phy procedures lte eNb.c:phy procedures eNB RX()
MAC
RACHPreamble
ULSCH SDU(UE id)
eNB common vars.rxdataF[0]
eNB common vars.rxdataF[R-1]
rx ulsch(UE id)36.211
LTE TRANSPORT/prach.c
openair1/PHY/LTE TRANSPORT/ulsch demodulation.c
lte eNB I0 measurements()
ulschextractrbssingle()
36.211
lteulchannelestimation()
36.211
ulschdetectionmrc()
36.211
frequencyequalization()
36.211
lteidft()
36.211
ulschXXXllr()
36.211
ulschdecoding()
36.212
ulschchannelcompensation()
36.211
ulsch decoding.c
ACK/NAK,RI,CQI
pucch procedures(UE id)36.211
rx pucchl36.211
ACK/NAK
SR
TRANSPORT/pucch.c
prach procedures36.211
openair1/SCHED/phy procedures lte eNb.c:prach procedures()
rx prachl36.211
E PRACH>Lmin36.211
LTE ESTIMATION/lte eNB I0 measurements.c
eNB PHY RX Procedures
eNB->prach vars.prachF[0· · · R-1]
rx ulsch(UE id)36.211
Rr,l = DFTNfft(rr,l � F7.5), r = 0, 1, · · · , R − 1, l = 0, 1, · · · , Nsymb − 1 (eNB common vars→rxdataF[][])
slot fep ul36.211
rr,lRr,l
Rext,r,l
Rext,r,l(n) = Rr,l(12firstPRB + n), n = 0, 1, · · · , 12NPRB − 1 (eNB pusch vars→ulsch rxdataF ext[][])
Hr,l
Hr,l = Rext,r,l �DRS∗l (cyclicShift, nDMRS(2) , nPRS), (eNB pusch vars→drs ch estimates[])
Rcomp,r,l
Rcomp,0,l
Rcomp,0,l = 1R
∑R−1r=0 Rcomp,r,l
Rcomp,0,l
rcomp,0,l
Rcomp,0,l(n) = Rcomp,0,l(n)Q8
(1
|H(n)|2+I0
), H(n) =
∑R−1r=0 Hr(n)
Rcomp,r,l = Hr �Rext,r,l2− log2 |Hmax|, Hr = 1
2(Hr,3 + Hr,10)
(eNB pusch vars→ulsch rxdataF comp)
λl
QPSK : λl(2n) = Re(rcomp,0,l(n)), λl(2n + 1) = Im(rcomp,0,l(n)) (eNB pusch vars→ulsch llr)
rcomp,0,l = IDFT12NPRB(Rcomp,0,l)
16QAM : λl(4n) = Re(rcomp,0,l(n)), λl(4n + 2) = Im(rcomp,0,l(n))
λl(4n + 1) = |Re(rcomp,0,l(n))| − 2|h(n)|, λl(4n + 3) = |Im(rcomp,0,l(n))| − 2|h(n)|
ulschextractrbssingle()
36.211
lteulchannelestimation()
36.211
ulschchannelcompensation()
36.211
ulschdetectionmrc()
36.211
frequencyequalization()
36.211
lteidft()
36.211
ulschXXXllr()
36.211
eNB ULSCH Demodulation
eNB PRACH Detection
Rr = DFTNPRACH(rr), r = 0, 1, · · · , R − 1 (lte eNB prach vars→rxsigF[])
Rcomp,r = Rr �X∗u[i], r = 0, 1, · · · , R − 1 (lte eNB prach vars→prachF[])
r839,r = IDFT1024(Rcomp,r
), r = 0, 1, · · · , R − 1 (lte eNB prach vars→prach ifft[])
rr
DFT
Rr
�
X∗u(0)
X∗u(1)
R ×IDFT1024
R ×IDFT1024
∑r | · |
2
∑r | · |
2
max peak in sizeNCS2 window,keep delay
max peak in sizeNCS2 window,keep delay
preamble energy list[]
preamble delay list[]
r839,r
• PRACH detection is a quasi-optimal non-coherent receiver for vectorobservations (multiple antennas)
• correlation is done in the frequency-domain, number of correlations (inthe example above 2) depends on zeroCorrelationConfig configurationparameter
• peak-detection (for delay estimation) is performed in each NCStime-window
�
∑r,l,i | · |
2<>σ2[dB]
eNB PUCCH Detection
rx pucch()36.211
slot fep ul36.211
rr,lRr,l
Z∗l e−j2πf/16,−3 ≤ f ≤ 2
�
�
Z∗l
H
� sgn(Re(·))sgn(Im(·))
PUCCH1 (Scheduling Request)
PUCCH1a/1b (ACK/NAK)
• PUCCH1 detection is a quasi-optimal non-coherent receiver (energydetector) for vector observations (multiple antennas) for schedulingrequest. Care is taken to handle residual frequency-offset.
• PUCCH1A/1B detection is quasi-coherent based on a rough channelestimate obtained on the 3 symbols without data modulation.
• In both cases, correlation is done in the frequency-domain
OAI IF1” Interface
• OAI IF1” is the interface between the 36.321 Medium-Access (MAC) Layer Procedures and the 36.213 PhysicalLayer Procedures
• it cannot be networked today, Considerations for allowing an xhaul networking of this interface are underway.
Random-Access Events36.321
PHY procedures36.213
initiateraproc()
terminateraproc()
cancelraproc()
fillrar()
phyconfigdedicated()
phyconfigsib1()
phyconfigsib2()
phyconfigsib13()
eNBdlschulschscheduler()
getdciisdu()
getdlschsdu()
rxsdu()
getmchsdu()
getueactiveharqpid()
lteesttimingadvancepusch()
lteeNBI0measurements()
SRindication()
PHY Config Scheduling Meas
• Threads (all in targets/RT/USER/lte-ru.c)
– ru thread: Thread per RU which sequentially performs∗ read from south interface (RF or IF fronthaul)∗ RX processing for subframe n (if necessary).∗ wakeup eNBs that are waiting for signal (if necessary)∗ wait for eNB task completion (if necessary)∗ do TX processing for subframe n+ 4 (if necessary). Note that this
can spawn multiple worker threads for very high order spatialprocessing (e.g. massive-MIMO or DAS for UDN)
∗ do outgoing fronthaul (RF or IF fronthaul)– ru thread prach: Thread for PRACH processing in remote RU (DFT
on RX, IF4p5 RRU)– ru thread asynch: Thread for asynchronous reception from fronthaul
interface (TX direction in RRU). Allows for some jitter so as not toblock the RRU real-time processing.
• Synchronization on fronthaul interface
– synch to ext device : synchronizes to incoming samples from RF orFronthaul interface using blocking read
– synch to other : synchronizes via POSIX mechanism to other source(other CC, timer) which maintains real-time.
RU Threads
• Threads (all in targets/RT/USER/lte-enb.c)
– multi RX/TX thread mode (optional)∗ eNB thread rxtx: 2 threads per CC/Instance which do both RX
procedures for subframe n and TX procedures for subframe n+ 4.One operates on even subframes, one on odd. This allows 1mssubframe processing to use multiple-cores.
– single RX/TX thread mode (default)∗ eNB thread single: Thread per CC/Instance which sequentially
· blocks on signal from RU· RX/TX processing for subframe n and n+ 4· signals completion to RU
– eNB prach: Thread per CC id/Instance for PRACH processing
eNB Threads
eNB Timing (multi-thread mode)
SF n + 1 SF n + 2 SF n + 3
n
n + 4
SF n + 4
• The current processing requires approximately 1ms peak in each direction (basically 1 core RX, 1core TX).The current architecture will work on a single core if the sum of RX and TX procedures is limited to 1ms.It can fit on 2 cores if the sum of RX,TX and PRACH is less than 2ms.
• three threads, RX-TX even, RX-TX odd and PRACH. RX-TX blocks until woken by the RU thread with anew RX subframe n that is linked to this eNB process. The RX-TX thread performs ue-specific processingfor subframe n and then TX common and ue-specific processing for subframe n + 4 (frequency-domaingeneration only). This insures the data dependency between TX n + 4 and RX n is respected. Theduration of this thread should be less than 2ms which can compensate some jitter on the RX processing.
SF n
LTE HARQ periodicity (FDD, TDD can be longer)
PRACH n n + 1
n
n + 5n+1
n − 1
n + 3n−1
n + 2 n + 6n + 2
RU thread
RX-TX thread (even)
RX-TX thread (odd)
PRACH
eNB Timing
RX processing subframe n (eNB thread rx)
• trx read(1 ms)
• slot fep for slots 2n and 2n + 1[phy procedures eNB common rx()]
• launch PRACH RX thread (subframe n)– prach procedures
• phy procedures eNB rx() (subframe n)
TX processing subframe n + 4(eNB thread tx)
• phy procedures eNB tx
• ofdm mod
• trx write(1 ms)