Page MenuHomeVyOS Platform

Interface offload options are not applied correctly
Closed, ResolvedPublicBUG

Description

Hello,

Configuring GRO or LRO via set commands does not actually enable them in my case.

set interfaces ethernet eth0 offload gro
set interfaces ethernet eth0 offload lro
commit
admin@vyos:~$ show interfaces ethernet eth0 physical offload
rx-checksumming               on
tx-checksumming               on
tx-checksum-ip-generic        on
scatter-gather                on
tx-scatter-gather             on
tcp-segmentation-offload      on
tx-tcp-segmentation           on
tx-tcp-mangleid-segmentation  off
tx-tcp6-segmentation          on
udp-fragmentation-offload     off
generic-segmentation-offload  off
generic-receive-offload       off
large-receive-offload         off
rx-vlan-offload               on
tx-vlan-offload               on
receive-hashing               on
highdma                       on
tx-nocache-copy               off
admin@vyos:~$ ethtool -k eth0 | grep -v fixed
Features for eth0:
rx-checksumming: on
tx-checksumming: on
        tx-checksum-ip-generic: on
scatter-gather: on
        tx-scatter-gather: on
tcp-segmentation-offload: on
        tx-tcp-segmentation: on
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: on
udp-fragmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: off
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
receive-hashing: on
highdma: on
tx-nocache-copy: off

Using ethtool instead seems to work fine.

admin@vyos:~$ ethtool -K eth0 gro on lro on
admin@vyos:~$ show interfaces ethernet eth0 physical offload
rx-checksumming               on
tx-checksumming               on
tx-checksum-ip-generic        on
scatter-gather                on
tx-scatter-gather             on
tcp-segmentation-offload      on
tx-tcp-segmentation           on
tx-tcp-mangleid-segmentation  off
tx-tcp6-segmentation          on
udp-fragmentation-offload     off
generic-segmentation-offload  off
generic-receive-offload       on
large-receive-offload         on
rx-vlan-offload               on
tx-vlan-offload               on
receive-hashing               on
highdma                       on
tx-nocache-copy               off
admin@vyos:~$ ethtool -k eth0 | grep -v fixed
Features for eth0:
rx-checksumming: on
tx-checksumming: on
        tx-checksum-ip-generic: on
scatter-gather: on
        tx-scatter-gather: on
tcp-segmentation-offload: on
        tx-tcp-segmentation: on
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: on
udp-fragmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: on
large-receive-offload: on
rx-vlan-offload: on
tx-vlan-offload: on
receive-hashing: on
highdma: on
tx-nocache-copy: off

Host information:

admin@vyos:~$ show version

Version:          VyOS 1.3.1
Release train:    equuleus

Built by:         root@5f2755e61bd6
Built on:         Wed 23 Mar 2022 08:00 UTC
Build UUID:       4f465768-6ee2-46ea-8ad3-ae17493b5de3
Build commit ID:  1c96b450e598ed

Architecture:     x86_64
Boot via:         installed image
System type:      VMware guest

Hardware vendor:  VMware, Inc.
Hardware model:   VMware Virtual Platform
Hardware S/N:     VMware-56 4d 02 ec de ca 71 0b-a3 71 6a 5f 6b 88 98 b7
Hardware UUID:    ec024d56-cade-0b71-a371-6a5f6b8898b7

Copyright:        VyOS maintainers and contributors

Details

Difficulty level
Easy (less than an hour)
Version
1.3.1
Why the issue appeared?
Implementation mistake
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Related Objects

Mentioned In
1.3.2
1.3.2

Event Timeline

Viacheslav added a subscriber: Viacheslav.

The same for VyOS 1.4-rolling-202208290458

vyos@r14# set interfaces ethernet eth0 offload gro
[edit]
vyos@r14# commit

vyos@r14# sudo python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from vyos.ifconfig import EthernetIf
>>> i = EthernetIf('eth0')
>>> i.set_gro(True)
False
>>>

It can be bug in the codebase https://github.com/vyos/vyos-1x/blob/edb2d72c3487b06fffd67dde203219b3c1bd7443/python/vyos/ifconfig/ethernet.py#L239
For example lro, sg, tso checks gro

c-po changed the task status from Open to Confirmed.Aug 29 2022, 6:17 PM
c-po claimed this task.
c-po triaged this task as Normal priority.
c-po changed Issue type from Unspecified (please specify) to Bug (incorrect behavior).
c-po changed the task status from Confirmed to Needs testing.Aug 29 2022, 6:47 PM
c-po changed Difficulty level from Unknown (require assessment) to Easy (less than an hour).
c-po changed Why the issue appeared? from Will be filled on close to Implementation mistake.
c-po changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.
c-po moved this task from Need Triage to Finished on the VyOS 1.4 Sagitta board.
c-po moved this task from Need Triage to Finished on the VyOS 1.3 Equuleus (1.3.3) board.
c-po moved this task from Finished to In Progress on the VyOS 1.3 Equuleus (1.3.3) board.
c-po moved this task from Need Triage to Finished on the VyOS 1.3 Equuleus (1.3.2) board.
dmbaturin renamed this task from Interface offload options not being applied correctly to Interface offload options are not applied correctly.Sep 5 2022, 11:10 AM