Robust Header Compression in LTE
By Ehtesham Azmi
NPO-RAN
Confidential | DD.MM.YY | version #
ROHC BASICS
What is ROHC?
Compresses the header of various IP Packets such as IPv4, IPv6, UDP, RTP, TCP etc.
Why & Where it is used?
Ideally ROHC reduces the size of the header from 40 bytes/60 bytes into 2 to 3 bytes.
Used for applications like VoIP, short messages, gaming etc.
Confidential | DD.MM.YY | version #
ROHC-Header Fields
20
12
Confidential | DD.MM.YY | version #
Classification of Header Fields
Confidential | DD.MM.YY | version #
Data Path
ROHC compressor & decompressor is implemented in PDCP layer.
ROHC can be characterized as an interaction between two state machines
Compressor machine
Decompressor machine
Confidential | DD.MM.YY | version #
Compression & Decompression States
COMPRESSOR STATE
DECOMPRESSOR STATE
Sends uncompressed headers
Sends only those information that are diff.
from initial transaction, i.e few static fields
that needs to be updated
Perform real compression which is
completely predictable, changing fields like
RTP sequence number..
IR : Initialization & Refresh
State
FO: First Order State
SO: Second Order state
Confidential | DD.MM.YY | version #
ROHC modes of Operation:
ROHC modes of Operation
U Mode- Unidirectional Mode
O Mode- Bidirectional Optimistic Mode
R Mode- Bidirectional Reliable Mode
Confidential | DD.MM.YY | version #
ROHC Profiles:
ROHC LOG IN
SEQUENCE
As per RFC 3095
Confidential | DD.MM.YY | version #
ROHC Compressor & Decompressor Logs:
Confidential | DD.MM.YY | version #
Calculation of VoLTE Packet Size vs Scheduling Block:
VoLTE packet size:For AMR-WB-12.65 kbps codec (12.65 coder generates 253 bits of coded speech every 20 ms)
VoLTE Packet size for 20 ms frame = 12.65 kbps * 1000 bits * 0.02 ms = 253 bits
Header size for IPv4/UDP/RTP packet = 40 bytes = 320 bits [ROHC=Disabled]
Compressed header size for IPv4/UDP/RTP packet= 3 bytes = 24 bits [ROHC=Enabled]
RLC & MAC Layer header = >2 bytes = >16 bits
Total VoLTE packet size for 20 ms = 253+320+16= 589 bits means 600 bits(approx.)
[ROHC=Disabled]
Total VoLTE packet size for 20 ms = 253+24+16= 293 bits means 300 bits(approx.)
[ROHC=Enabled]
Confidential | DD.MM.YY | version #
Calculation of VoLTE Packet Size vs Scheduling Block :
VoLTE vs PRB:No of REs in 1 Scheduling Block (1 ms) = 12 subcarrier * 14 symbols = 168 Resource
element
25% of REs are utilized as overhead i.e PDCCH, RS, PBCH etc , so usable REs = 120
(approx.)
So for CQI= 1 Modulation scheme= QPSK,
Coding rate for CQI=1, 78/1024 = 0.076
Each RE can hold = 2 (Bits as per QPSK) * 0.076 = 0.152 bit per RE on an average
1 Scheduling Block can carry = 120 (Usable REs) * 0.152 (Bit per RE) = 18.24 bits
Since the size of 1 VoLTE packet = 300 bits [when ROHC enabled]
= 600 bits [when ROHC disabled]
So 16 Scheduling Blocks are required when ROHC enabled (300/18.24)
& 33 Scheduling Blocks are required when ROHC disabled (600/18.24)
Confidential | DD.MM.YY | version #
Thank You