36
Overview of OAI L1 OAI RAN (openairinterface5g) Software Architecture Functional entities Focus today on L1 procedures for eNodeB Real-time-scheduling (c) Eurecom 2018

OAI RAN (openairinterface5g) Software Architecture · wakeup_prach_ru / wakeup_prach_br Inline function to wakeup RU component of prach procedures – Uses condition variable ru -

  • Upload
    others

  • View
    11

  • Download
    1

Embed Size (px)

Citation preview

Overview of OAI L1

OAI RAN (openairinterface5g) Software Architecture – Functional entities Focus today on L1 procedures for eNodeB

– Real-time-scheduling

(c) Eurecom 2018

RAN ARCHITECTURE

(c) Eurecom 2018

Current vRAN Roadmap in OAI

(c) Eurecom 2018

NFAPI

NFAPI

Current Functional Entities

(c) Eurecom 2018

RRU/RAU

OAI current lower-layer functional split – a network of radio

units (L1-low) – a precoding

function and switching function

– Regular (virtualized) eNB functions

(c) Eurecom 2018

(c) Eurecom 2018

OAI RAN (CU-DU) Architecture

RU and L1 Instances

(c) Eurecom 2018

RU and L1 Instances

(c) Eurecom 2018

RU and L1 Instances

(c) Eurecom 2018

RADIO SEGMENT (RU)

(c) Eurecom 2018

RU Procedures (monolithic eNB/gNB)

(c) Eurecom 2018

(c) Eurecom 2018

(c) Eurecom 2018

TX Precoding (monolithic eNB/gNB)

LAYER 1 HIGH SEGMENT (ENB/GNB)

(c) Eurecom 2018

Layer 1 TX per eNB instance

(c) Eurecom 2018

Layer 1 RX per eNB instance

(c) Eurecom 2018

RU/eNodeB OAI PUSCH Procedures

(c) Eurecom 2018

in RU

RU/eNodeB PRACH procedures

(c) Eurecom 2018

in RU

eNodeB PUCCH (1/1A/1B) Procedures

(c) Eurecom 2018

PHY/MAC INTERFACE

(c) Eurecom 2018

OAI IF1’’ – MAC/PHY Interface

(c) Eurecom 2018

OAI IF1’’ – MAC/PHY

(c) Eurecom 2018

OAI IF1’’ – MAC/PHY

(c) Eurecom 2018

RU AND LAYER 1 PROCESS SCHEDULING

(c) Eurecom 2018

RU Process Scheduling

(c) Eurecom 2018

L1 Process Scheduling

(c) Eurecom 2018

Timing (1-4 cores, single RU/L1 entity)

(c) Eurecom 2018

Timing (≥8 cores, 2 RU, 1 L1)

(c) Eurecom 2018

Multi-threading lower-layer operations

Front-end Processing (RU) – Parallelizing even/odd slots in Fourier Transforms (TX and RX in

RU)

Back-end Processing (L1) – Parallelizing Segments in Turbo-encoder / Rate-Matching – Parallelizing Segments in Rate-Matching Inversion / Turbo-

Decoder

Run worker threads in parallel to main thread in “single-thread” mode

(c) Eurecom 2018

RU/L1 I/O and Processing Flow Piece of r u_t hr ead:

/ / Thi s i s a f or ever whi l e l oop, i t l oops over subf r ames whi ch ar e schedul ed by i ncomi ng sampl es f r om HW devi ces

whi l e ( ! oai _exi t ) {

/ / synchr oni zat i on on i nput FH i nt er f ace, acqui r e si gnal s/ dat a and bl ock

i f ( r u- >f h_sout h_i n) r u- >f h_sout h_i n( r u, &f r ame, &subf r ame) ;

el se Asser t Fat al ( 1==0, "No f r ont haul i nt er f ace at sout h por t " ) ;

i f ( ( r u- >do_pr ach>0) && ( i s_pr ach_subf r ame( f p, pr oc- >f r ame_r x, pr oc->subf r ame_r x) ==1) ) {

wakeup_pr ach_r u( r u) ;

}

el se i f ( ( r u- >do_pr ach>0) && ( i s_pr ach_subf r ame( f p, pr oc- >f r ame_r x, pr oc->subf r ame_r x) >1) ) {

wakeup_pr ach_r u_br ( r u) ;

}

(c) Eurecom 2018

/ / do RX f r ont - end pr ocessi ng ( f r equency- shi f t , df t ) i f needed

i f ( r u- >f epr x) r u- >f epr x( r u) ;

/ / At t hi s poi nt , al l i nf or mat i on f or subf r ame has been r ecei ved on FH i nt er f ace

/ / wakeup al l eNB pr ocesses wai t i ng f or t hi s RU

i f ( r u- >num_eNB>0) wakeup_eNBs( r u) ;

i f ( get _npr ocs( ) <= 4 | | r u- >num_eNB==0) {

/ / do TX f r ont - end pr ocessi ng i f needed ( pr ecodi ng and/ or I DFTs)

i f ( r u- >f ept x_pr ec) r u- >f ept x_pr ec( r u) ;

/ / do OFDM i f needed

i f ( ( r u- >f h_nor t h_asynch_i n == NULL) && ( r u- >f ept x_of dm) )

r u- >f ept x_of dm( r u) ;

i f ( ! emul at e_r f ) {

/ / do out goi ng f r ont haul ( sout h) i f needed

i f ( ( r u- >f h_nor t h_asynch_i n == NULL) && ( r u- >f h_sout h_out ) )

r u- >f h_sout h_out ( r u) ;

i f ( r u- >f h_nor t h_out ) r u- >f h_nor t h_out ( r u) ;

}

(c) Eurecom 2018

f h_sout h_i n

Function to acquire samples – From RF - r xr f Either to HW or emulated for timing analysis of RU/L1

procedures – From fronthaul receive function f h_i f 5_sout h_i n (time-domain interface) f h_i f 4p5_sout h_i n (frequency-domain interface)

(c) Eurecom 2018

wakeup_pr ach_r u/ wakeup_pr ach_br

Inline function to wakeup RU component of prach procedures – Uses condition variable r u- >pr oc. cond_pr ach – Thread code located in r u_t hr ead_pr ach Invokes frequency-domain translation only if RRU

(r x_pr ach) Invokes complete PRACH procedures if RAU

_br is for LTE-M PRACH processing (up to 4 threads)

(c) Eurecom 2018

r u- >f epr x

Top-level for RX front-end processing – 7.5 kHz frequency-translation – FFTs – Processing is located in (single-thread)

openai r 1/ SCHED/ r u_pr ocedur es. c f ep_f ul l ( ) : single-thread for processing of 1 subframe r u_f ep_f ul l _2t hr ead( ) : 2 threads, one for each slot

in the subframe

(c) Eurecom 2018

wakeup_eNBs

Function to invoke the L1 entity procedures for subframe n (RX) and n+4 (TX)

If # cores ≤ 4 – Call function eNB_t op ( t ar get s/ RT/ USER/ l t e- enb. c)

If # cores > 4 – Wakeup eNB_thread_rx (r u- >wakeup_r xt x) – The is the function in t ar get s/ RT/ USER/ l t e-

enb. c: wakeup_r xt x( ) Called by each RU that is attached to the L1 instance When all RUs have called this function for a particular

subframe, the L1 entity is woken up

(c) Eurecom 2018

eNB_top / eNB_thread_rxtx

Both initially call a function rxtx() – Invokes full PRACH/PRACH_BR procedures (if RAU) () – phy_pr ocedur es_eNB_uespec_RX

UE-specific processing of subframe (UCI,SRS,ULSCH) – If # cores >4 (in eNB_thread_rxtx)

Synchronization: wait for TX thread from previous subframe to complete (avoids race conditions)

– Run L2 procedures Call UL_i ndi cat i on to send RX data up to L2

– if # cores <=4 (in eNB_top) Run TX procedures for n+4 Wakeup TX FH thread to transmit to RF/fronthaul

If in eNB_thread_rxtx – Wakeup eNB_thread_tx (wakeup_t x) – wakeup_t x schedules t x_t hr ead( ) – t x_t hr ead( ) does

TX procedures for n+4 Unlocks potentially waiting RX for n+1 Wakeup TX FH thread to transmit to RF/fronthaul

(c) Eurecom 2018