Unable to set LRO (large receive offload) on interfaces connected to a bridge in Red Hat Enterprise Linux

Solution In Progress - Updated -

Issue

It is not possible to enable Large Receive Offload (LRO) on bonds or devices which are attached to a Linux bridge.

Without a bridge, everything works fine:

[root@baremetal ~]# ethtool -k bond10 | grep large
large-receive-offload: on
[root@baremetal ~]# ethtool -K bond10 lro off
[root@baremetal ~]# ethtool -k bond10 | grep large
large-receive-offload: off
[root@baremetal ~]# ethtool -K bond10 lro on
[root@baremetal ~]# ethtool -k bond10 | grep large
large-receive-offload: on
[root@baremetal ~]# 

After adding the interface to a bridge, LRO cannot be enabled:

[root@baremetal ~]# brctl addbr test
[root@baremetal ~]# brctl addif test bond10
[root@baremetal ~]# brctl show
bridge name bridge id       STP enabled interfaces
test        8000.a0369fe5e2c0   no      bond10
[root@baremetal ~]# ethtool -k bond10 | grep large
large-receive-offload: off
[root@baremetal ~]# ethtool -K bond10 lro on
Could not change any device features
[root@baremetal ~]# ethtool -k bond10 | grep large
large-receive-offload: off [requested on]
[root@baremetal ~]# ethtool -K p2p1 lro on
Could not change any device features
[root@baremetal ~]# ethtool -k p2p1 | grep large
large-receive-offload: off
[root@baremetal ~]# 

Switching on IP forwarding for the entire system or for a specific interface also disables LRO on the interface.

Environment

Red Hat Enterprise Linux

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content