1. There are interface capabilities to be used by "lower" kernel

components as well, i.e., polling.

2. Stress that if_capenable should be modified only from within
   the interface driver because it solely knows about how to control
   the capabilities.
This commit is contained in:
Yaroslav Tykhiy 2004-06-07 16:46:28 +00:00
parent cdd83ba354
commit e06e6ff9bc

View File

@ -482,14 +482,30 @@ or may not support.
These capabilities are very hardware-specific
and allow, when enabled,
to offload specific network processing to the interface
or to offer a particular feature for use by upper layers.
or to offer a particular feature for use by other kernel parts.
.Pp
It should be noted that a capability can be completely
It should be stressed that a capability can be completely
uncontrolled (i.e., stay always enabled with no way to disable it)
or allow limited control over itself (e.g., depend on another
capability's state.)
Such peculiarities are determined solely by the hardware and driver
of a particular interface.
Only the driver possesses
the knowledge on whether and how the interface capabilities
can be controlled.
Consequently, capabilities flags in
.Va if_capenable
should never be modified directly by kernel code other than
the interface driver.
The command
.Dv SIOCSIFCAP
to
.Fn ifioctl
is the dedicated means to attempt altering
.Va if_capenable
on an interface.
Userland code shall use
.Xr ioctl 2 .
.Pp
The following capabilities are currently supported by the system:
.Bl -tag -width ".Dv IFCAP_VLAN_HWTAGGING" -offset indent