Menu
Latest
12 meetings · Prague, Jeju · 12–16 Oct
Reports
RAN1#126-bis · SA2#177

Glossary term · Protocol

GRO

Generic Receive Offload

Protocol →

GRO is a packet processing technique that reduces CPU overhead by aggregating multiple incoming packets into a single larger packet before passing them up the network stack.

Introduced
Rel-19
Where
Services › Codecs
Specifications
2 specs
GRO Description Purpose What changed Neighbours Specifications

Description

Generic Receive Offload (GRO) is a network offload technique that aggregates multiple incoming packets belonging to the same flow into a single larger packet, thereby reducing the number of packets that the operating system's network stack must process. This aggregation is performed in the network interface controller (NIC) driver or in software, and it significantly lowers CPU utilization and improves throughput, especially in high-speed networks such as 5G. GRO is particularly relevant in 3GPP contexts where high data rates and low latency are critical, such as in the User Plane Function (UPF) or in edge computing scenarios.

In a typical implementation, GRO works by examining incoming packets and merging them if they share the same flow characteristics (e.g., same source and destination IP addresses, same TCP/UDP ports, and same sequence numbers). The merged packet is then passed to the upper layers as a single large packet, which reduces the per-packet processing overhead. This is especially beneficial for TCP traffic, where the stack can handle larger segments more efficiently. GRO is often used in conjunction with other offload techniques such as Large Receive Offload (LRO) and TCP Segmentation Offload (TSO).

Within 3GPP, GRO is mentioned in specifications such as 23.700 (Study on enhancement of 5G Core Network) and 26.804 (Study on 5G media streaming). These documents discuss the use of GRO to optimize packet processing in 5G core networks and media streaming applications. For example, in a 5G UPF, GRO can help handle the high throughput of user plane data by reducing the number of packets that need to be processed, thus improving overall system performance and reducing latency.

The implementation of GRO can be done in hardware (in the NIC) or in software (in the kernel). Hardware-based GRO is more efficient but less flexible, while software-based GRO can be updated more easily and can handle more complex aggregation rules. In virtualized environments, such as those used in 5G core networks, software-based GRO is often preferred because it can be integrated into the virtual switch or the guest OS. However, care must be taken to ensure that GRO does not introduce excessive latency, as aggregating packets can delay their delivery to the application.

Overall, GRO is a key enabler for high-performance networking in 5G and beyond. It helps network operators and equipment vendors achieve the required throughput and efficiency while minimizing CPU load. As networks continue to evolve towards higher speeds and more demanding applications, techniques like GRO will become increasingly important.

Purpose & Motivation

Generic Receive Offload (GRO) was created to address the growing CPU overhead associated with processing high volumes of small packets in modern networks. As network speeds increased from 1 Gbps to 10 Gbps, 40 Gbps, and beyond, the per-packet processing cost became a significant bottleneck, limiting achievable throughput and increasing latency. Traditional packet processing required the CPU to handle each packet individually, which was inefficient and consumed valuable processing cycles that could be used for other tasks.

The motivation for GRO was to reduce this overhead by aggregating multiple packets into a single larger packet before they reach the network stack. This reduces the number of interrupts and context switches, leading to lower CPU utilization and higher throughput. GRO is particularly important in 3GPP networks, where high data rates and low latency are essential for services such as enhanced mobile broadband (eMBB) and ultra-reliable low-latency communication (URLLC).

Before GRO, similar techniques like Large Receive Offload (LRO) existed, but they were often vendor-specific and not standardized. GRO provides a more generic and flexible approach that can be implemented in both hardware and software, making it suitable for a wide range of deployments, including virtualized and cloud-native environments. In 5G, where the core network is increasingly virtualized, GRO helps achieve the performance required for demanding applications while maintaining efficiency.

What changed in its specifications

The latest release-to-release comparison of specifications that define GRO. Each summary describes the whole specification, not only this term.

TS 26.804Rel-18 → Rel-19

Rel-19 adds CMCD reporting, multi-source media delivery, content steering, QoS enhancements, and QUIC-based streaming.

Full comparison in TS 26.804 →

Evolution Across Releases

An overview written from the defining specifications, not a verified change history. For the exact text, open the specifications listed below.

Rel-19 Initial

Initial introduction of Generic Receive Offload (GRO) in 3GPP specifications. It was defined as a technique to optimize packet processing in 5G core networks and media streaming, as documented in 23.700 and 26.804.

Defining Specifications

3GPP specifications that define or reference GRO, with the latest known release. Sourced from the 3GPP document catalog — see methodology.

SpecificationTitleRelease
TS 23.700 vk10 AI/ML Application Layer Support Phase 2 Rel-20 read
TS 26.804 vk10 5G Media Delivery Architecture Extensions Rel-20 read