3.7. O-RAN IP Fragmentation
eAxC | SeqID | E | Sub-SeqID |
---|---|---|---|
Ω | 0 | 1 | 0 |
Ω | 1 | 1 | 0 |
Ω | 2 | 1 | 0 |
Ω | 3 | 1 | 0 |
Ω | 4 | 1 | 0 |
Ω | 5 | 1 | 0 |
Ω | 6 | 1 | 0 |
Ω | 7 | 1 | 0 |
Ω | 8 | 1 | 0 |
For the IP to perform U-plane fragmentation, ensure that tx_u_numprb is larger than packet fragment size. After fragmentation, the IP adjusts tx_u_numprb to reflect the number of PRB in the fragmented data section. For the IP to perform C-plane fragmentation, ensure that section extension packet size is larger than packet fragmentation size. After fragmentation, the IP adjusts extLen field in extension packet to reflect the size of the fragmented data section.
U-plane fragmentation supports:
- Single sectionID, multiIQ samples
- Multiple sectionID, multi-IQ samples
U-plane fragmentation and U-plane mapper only support single section in one packet when numbprbu =0.
C-plane fragmentation supports:
- Single section, single section extension
- Single section extension (ext_len) > programmable size
- Single section extension (ext_len) < programmable size
U-plane Fragmentation Example 1
The examples show the U-plane fragmented packets after processing by the application layer.
When a U-plane section payload is fragmented because of a large number of PRBs, the IP divides it into multiple groups of PRBs. Each group (including the application headers) can fit to the MTU requirements. Each group of PRBs have respective control fields including the same section ID from the C-plane and startPrbu and numPrbu to identify its contents.
This example assumes the raw U-plane packet with 2 sections with 500 PRBs per section and U-plane packet fragmentation size is 100 PRB.
Incoming Data | Seq_id | |
---|---|---|
Section 0 | 500 PRB | 88 |
Section 1 | 500 PRB | 88 |
Fragmented Data | Seq_id | ||
---|---|---|---|
Fragment 0 | Section ID 0 | 100 PRB | 0 |
Fragment 1 | Section ID 0 | 100 PRB | 1 |
Fragment 2 | Section ID 0 | 100 PRB | 2 |
Fragment 3 | Section ID 0 | 100 PRB | 3 |
Fragment 4 | Section ID 0 | 100 PRB | 4 |
Fragment 5 | Section ID 1 | 100 PRB | 0 |
Fragment 6 | Section ID 1 | 100 PRB | 1 |
Fragment 7 | Section ID 1 | 100 PRB | 2 |
Fragment 8 | Section ID 1 | 100 PRB | 3 |
Fragment 9 | Section ID 1 | 100 PRB | 4 |
U-plane Fragmentation Example 2
The example assumes you send raw U-plane packet with 2 sections with 40 PRBs per section. The packet fragmentation size is 50 PRB.
Incoming Data | Seq_id | |
---|---|---|
Section 0 | 40 PRB | 88 |
Section 1 | 40 PRB | 88 |
Fragmented Data | Seq_id | ||
---|---|---|---|
Fragment 0 | Section ID 0 | 40 PRB | 88 |
Fragment 1 | Section ID 1 | 40 PRB | 88 |
No fragmentation occurs because the raw packet is smaller than the configured fragmentation size.
The IP cannot combine two sections in the same packets after fragmentation. This example now combines packet 1, section 0 and section 1 into single packet but requires seq_id 1 and 0 respectively in the packet.
Incoming Data | Fragment Size = 30PRB | ||||
---|---|---|---|---|---|
Section 0 | 40 PRB | ||||
Section 1 | 40 PRB | Illegal | |||
Fragmented packet | seq_id | ||||
Packet 0 | Section 0 | 30 PRB | 0 | ||
Packet 1 (Illegal) | Section 0 | 10 PRB | 1 | ||
Packet 1 (Illegal) | Section 1 | 20 PRB | 0 | ||
Packet 2 | Section 1 | 20 PRB | 1 |
Fragmented Packet | Seq_id | ||
---|---|---|---|
Packet 0 | Section 0 | 30 PRB | 0 |
Packet 1 | Section 0 | 10 PRB | 1 |
Packet 2 | Section 1 | 30 PRB | 0 |
Packet 3 | Section 1 | 10 PRB | 1 |
Apply application layer fragmentation so that the design can use the maximum size standard IEEE 802.3 Ethernet frames. (Jumbo frames increase the maximum MTU size). Calculate the packet fragmentation size from the equation to not exceed the MTU.
Application layer maximum transmission unit size is standard IEEE 802.3 Ethernet frame payload size (1500 bytes) – transport overhead (8 bytes) – application header overhead (4 bytes) – (N * section header overhead (8 bytes)) – udCompParam overhead (2 bytes per PRB if present) = 1488 – (8 * N) bytes (or 9000 bytes for jumbo frames)
Assuming IQ width of 16 bits, 2 section headers in the U-plane packet and no udCompParam field, application layer maximum transmission unit size = 1500 – 8 – 4 – (2 * 8) = 1472 bytes. Single PRB size with 16 bits IQ width is 48 bytes. The packet fragmentation size should be less than 1472 / 48 = 30.67, which is 30.
C-plane Fragmentation Example
C-plane fragmentation occurs on O-DU to O-RU DL direction only and it only supports single section with single section extension. The following example shows the C-plane fragmented packets after processing by the C-plane application layer.
The example assumes you send in raw C-plane packet with 1 section with 300 bytes section extension type 1. The packet fragment size is 200 bytes.
Incoming Data | Extension Type | Bytes |
---|---|---|
Section 0 | Extension Type 1 | 300B |
The table shows the fragmented C-plane packets after fragmentation.
Fragmented Data | Size (Bytes) | Seq_id | ||
---|---|---|---|---|
Fragment 0 | Section 0 | Extension Type 1 | 200B | 0 |
Fragment 1 | Section 0 | Extension Type 1 | 100B | 1 |