ni.com
Prototyping LTE-WiFi Interworking on a Single SDR Platform
Walter Nitzold, Clemens Felber, Vincent Kotzsch
National Instruments, Dresden, Germany
• Demand for higher throughput and/or lower latency
• Flexibility within radio access technology (RAT) such as LTE and WiFi
• Transparent End-to-End view involves interworking/coordination
between different RATs
→ How to study/research these interworking technologies?
Future Wireless Communication System (aka 5G and beyond)
eNB
AP
UE + STA
Open Source Protocol Stacks (Layer 2 and above)
IP Networks LTE UE 802.11 LTE EPC
OpenLTELinux 802mac
LTE eNB
5G NR UE
5G NR gNB
Network Simulator NS-3
✓ Open source (GNU GPLv2) discrete-event network simulator in C++
✓ Allows for simulating IP networks including routing algorithms
✓ Provides various wireless/IP simulation models including LTE, Wi-Fi, ...
Only simulation → Integrate SDRs, but how?
NAS
RRC
PDCP
RLC
PHY
MAC
RF + Antenna
Control PlaneUser Plane
Layer 2
(Data Link Layer)
Layer 1
(Physical Layer)
Layer 3
(Network Layer)
Layer 4
(Transport Layer)
Air transmission through EM waves
Channel mux, adaptive resource scheduling (incl
Beamforming), HARQ, access procedure,
carrier aggregation
Coding, modulation, resource mapping, MIMO
Segmentation, reassembly, ARQ
Integrity, ciphering, duplicate detect, SN,
reordering, dual connectivity
SDR Integration
IP
??? ???L1-L2 API L1-L2 API
OSI Model 3GPP LTE/5G Protocol Stack
L1-L2 API
RF HW
802.11
MAC low + PHY
802.11 MAC high
functionality
3rd party
802.11
protocol
stack
WiFi
Aligned on
concepts,
mechanisms,
general structure,
…
Cellular
L1-L2 API
RF HW
LTE PHY/L1
< 6GHz
5G/NR PHY/L1
> 6GHz
RF HW
LabVIEW based
MAC/L2
L2-L3 API
3rd party L3
3rd party L2
3rd party
protocol
stack
(e.g. ns-3)
MAC-PHY API Concept
Potential of a general L1-L2 API
▪ Offers the same ease of use and mechanisms for different physical layer
implementations.
▪ Enables very flexible configuration and E2E user data transmission.
▪ Enables faster adoption, extension, migration and integration of
physical layer prototyping systems towards protocol and network level
research & applications.
▪ Increases the level of system abstraction, because of no need to understand
all details of the underlying physical layer.
▪ Offers a high level of re-use and increases the transparency of a complex
wireless system.
ni.com
How does the L1-L2 API work?
L1-L2 API – General principles
Communication based on a common set of 3 message types
PHY MAC
REQ → (Service) Request
IND → Indication
(status, data, error, …)
CNF → Confirm
w/ option to be disabled
PAYLOAD
CONTROL
Example: TX REQ for data channel
MCS, RB allocation,
TB size, …
Transport block
bits/bytes
L1-L2 API in action - Message Sequence Chart
PHY_UL_TX_CONFIG_REQ(SFN, slot index n+2, ULSCH_TX_CONFIG(PRB alloc, MCS, RNTI, PDU Idx)
PHY_UL_TX_PAYLOAD_REQ(SFN, slot index n+2,ULSCH_TX_MAC_PDU, PDU Idx)
LTE UE L1 LTE UE L2
PHY_TIMING_IND(SFN, slot index n+1, …)
PHY_ULSCH_ASSIGNMENT_IND([SFN, slot index n+1,]TB size, HARQ PID, NDI, [MCS, PRB alloc] …)
LTE eNB L1(Timing Master)
LTE eNB L2
PHY_TIMING_IND(SFN, slot index n, …)
PHY_DL_TX_CONFIG_REQ(SFN, slot index n+1, DCI_TX_CONFIG(DL_Grant, UL_grant)
DLSCH_TX_CONFIG(PRB alloc, MCS, RNTI, PDU Idx))
PHY_DL_TX_PAYLOAD_REQ(SFN, slot index n+1,DLSCH_TX_MAC_PDU(PDU Idx, MAC PDU))
PDSCH/PDCCH & PUSCH/PUCCH (slot index n)
PHY_DLSCH_RX_IND(SFN, slot index n+1,DLSCH_RTX_MAC_PDU)
PHY_UL_RX_CONFIG_REQ(SFN, slot index n+1,ULSCH_RX_CONFIG [0])
1ms
PHY_TIMING_IND(SFN, slot index n+1, …) PDSCH/PDCCH & PUSCH/PUCCH (slot index n+1)
PDSCH/PDCCH & PUSCH/PUCCH (slot index n+2)
PHY_TIMING_IND(SFN, slot index n+2, …)
PHY_DL_TX_CONFIG_REQ(SFN, slot index n+2, DLSCH_TX_CONFIG(PRB alloc, MCS, RNTI, PDU Idx)
DCI_TX_CONFIG(DL_Grant, UL_grant)
PHY_DL_TX_PAYLOAD_REQ(SFN, slot index n+2,DLSCH_TX_MAC_PDU, PDU Idx)
PHY_UL_RX_CONFIG_REQ(SFN, slot index n+2,ULSCH_RX_CONFIG [0])
PHY_ULSCH_RX_IND(SFN, slot index n,ULSCH_TX_MAC_PDU)
PHY_ULSCH_RX_IND(SFN, slot index n+1,ULSCH_TX_MAC_PDU)
PHY_TIMING_IND(SFN, slot index n+2, …)
PHY_TIMING_IND(SFN, slot index n, …)
PHY_UL_TX_CONFIG_REQ(SFN, slot index n+1, ULSCH_TX_CONFIG(PRB alloc, MCS, RNTI, PDU Idx)
PHY_UL_TX_PAYLOAD_REQ(SFN, slot index n+1,ULSCH_TX_MAC_PDU, PDU Idx)
PHY_ULSCH_ASSIGNMENT_IND(SFN, slot index n,PRB alloc, MCS, RNTI)
PHY_DLSCH_RX_IND(SFN, slot index n,DLSCH_RTX_MAC_PDU)
PHY Timing IND
Transport
medium
btw.
L1-L2
L1-L2 API – Interfaces and Modules
L2
INDs
REQs
L1 implementation
specific interface
PHY mode control
CNFs
Msg
GenMsg
Handler
Msg
Handler
L1
Con
tro
l
L1
L2 implementation
specific interface
Implementation specific, e.g.
- P2P FIFOs
- H2T/T2H FIFOs
- Memory pointers
- C-API
- UDP via Ethernet
- …
„write“
„read“
„read“
„write“Msg
Gen
Can be realized by standard
platform components
REQs
PHY Timing IND
INDs
CNFs
Common message interface
To be provided by L1
compliant with common API
To be provided by L2
compliant with common API
RRC
LTE-WiFi Prototyping Setup with USRP-2974
LV RT LTE API
Handler
LV
RT
WiF
i AP
I
Han
dle
r
LV FPGA LTE AFW
DAC/ADC & RF
PCIe Expansion
USRP 2953
USRP 2974
Inte
l i7
CP
UX
ilin
xK
7
FP
GA
LV FPGA 802.11 AFW
DAC/ADC & RF
Xili
nx
K7
FP
GA
DMA DMA
Pipes
UD
P
Ns-3 simulation:
• Internal client /
serv or TapBridge
• Internet
• LTE UE or eNB
• WiFi AP or STA
eNB
AP
UE + STA
Measurement of End-to-End Throughput
eNB
AP
UE + STA
• Close to capacity limit of LTE PHY layer
• Throughput Increase compared to pure software-based PHY
Conclusions and Outlook
▪ Generalized API specification to connect PHY and MAC of different RATs
▪ Interworking research is possible with ns-3 and attached real-time SDR
▪ Implementation is used in EU-funded research project ORCA (https://www.orca-project.eu)
▪ Enhanced ns-3 with L1-L2 API implementation available under https://github.com/ni/NI-ns3-ApplicationExample
Next steps:
▪ Maintain and further extend based on community/research needs
▪ Investigation and application to other higher layer stacks like Open Air Interface
▪ Investigation and application to other physical layers like 5G GFDM PHY by TUD
ni.com
Thanks!