O-RAN Intel® FPGA IP User Guide

ID 683238
Date 3/01/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

3.7. O-RAN IP Fragmentation

When you turn on fragmentation for the application layer, the E bit is always fixed to value 1. The subsequence_id field is always fixed to value 0 regardless of what is the original value of the E bit and subsequence_id field you send. When you turn off fragmentation or the IP performs no fragmentation, E bit, seq_id, subsequence_id, startPrb, tx_c_size, and tx_u_size fields remain unmodified. During fragmentation, the seq_id starts with 0 on first fragment and increments for every subsequent fragmented U-plane packet. The IP duplicates sectionId multiple times in the fragmented U-plane messages but with differing and consecutive groups of PRBs as indicated by the startPrbu and numPrbu fields. Fragmented packets also have corresponding tx_c_size and tx_u_size value updated for streaming mode. The IP performs no fragmentation if numPrb is smaller than U-plane fragmentation size or section extension is smaller than C-plane fragmentation size or packet type is unsupported.
Table 20.  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.

Figure 20. Fragmented Packets
Figure 21. Fragmentation Architechture

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.

Table 21.  U-plane Fragmentation Example 1
Incoming Data Seq_id
Section 0 500 PRB 88
Section 1 500 PRB 88
Table 22.  U-plane Example 1 after fragmentationThe table shows the fragmented U-plane packets after U-plane fragmentation.
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.

Table 23.  U-plane Fragmentation Example 2
Incoming Data Seq_id
Section 0 40 PRB 88
Section 1 40 PRB 88
Table 24.  U-plane Example 2 after fragmentationThe table shows the fragmented U-plane packets after the IP processes the U-plane data.
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.

Table 25.  U-plane Example 2 after combiningThe table only indicates 1 seq_id in the packet because of the eCPRI transport header.
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
Table 26.  U-plane Example 2 after fragmentationThe table shows the fragmented packets.
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.

Table 27.  C-plane Fragmentation Example
Incoming Data Extension Type Bytes
Section 0 Extension Type 1 300B

The table shows the fragmented C-plane packets after fragmentation.

Table 28.  C-plane Fragmentation Example 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