Page MenuHomeFreeBSD

Fix capabilities handling for iflib drivers
ClosedPublic

Authored by shurd on Sep 13 2018, 8:21 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Nov 21, 12:36 PM
Unknown Object (File)
Thu, Nov 21, 12:36 PM
Unknown Object (File)
Sun, Nov 3, 6:24 AM
Unknown Object (File)
Oct 4 2024, 6:49 AM
Unknown Object (File)
Sep 22 2024, 9:57 AM
Unknown Object (File)
Sep 18 2024, 7:07 AM
Unknown Object (File)
Sep 14 2024, 6:01 AM
Unknown Object (File)
Sep 8 2024, 4:58 PM
Subscribers

Details

Summary

Various capabilities were not being handled correctly in the
SIOCSIFCAP handler. Specifically:

IFCAP_RXCSUM and IFCAP_RXCSUM_IPV6 could be set even if not supported

It was impossible to disable IFCAP_RXCSUM and/or IFCAP_RXCSUM_IPV6 via
ifconfig since it does ioctl() per command-line flag rather than combine
them into a single call.

IFCAP_VLAN_HWCSUM could not be modified via the ioctl()

Setting any combination of the three IFCAP_WOL flags would set only
IFCAP_WOL_MCAST | IFCAP_WOL_MAGIC. For example, setting only
IFCAP_WOL_UCAST would result in both IFCAP_WOL_MCAST and IFCAP_WOL_MAGIC
being enabled, bit IFCAP_WOL_UCAST would not be enabled.

Because if_vlancap() was called before if_togglecapenable(), vlan flags
were sometimes not paplied correctly.

Interfaces was being unnecessarily stopped and restarted for WoL
capability changes.

PR: 231151
Submitted by: Kaho Toshikazu <kaho@elam.kais.kyoto-u.ac.jp>

Test Plan

Ensure all ifconfig options are applied correctly.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 19576
Build 19161: arc lint + arc unit