- Note that if_xname, if_dname, and if_dunit are usually initialized via

if_initname().
- Document if_drv_flags and replace references to IFF_(RUNNING|OACTIVE)
  with references to IFF_DRV_(RUNNING|OACTIVE).
- Complete truncated sentence in the description of if_transmit by copying
  from the description in if_qflush.
- Add missing line breaks for translators.

Reviewed by:	brooks (1)
MFC after:	3 days
This commit is contained in:
jhb 2010-01-14 14:43:16 +00:00
parent 8019b29e4f
commit 415adcce72

View File

@ -237,11 +237,15 @@ The name of the interface,
.Dq Li fxp0
or
.Dq Li lo0 ) .
(Initialized by driver.)
(Initialized by driver
(usually via
.Fn if_initname ) . )
.It Va if_dname
.Pq Vt "const char *"
The name of the driver.
(Initialized by driver.)
(Initialized by driver
(usually via
.Fn if_initname ) . )
.It Va if_dunit
.Pq Vt int
A unique number assigned to each interface managed by a particular
@ -249,7 +253,9 @@ driver.
Drivers may choose to set this to
.Dv IF_DUNIT_NONE
if a unit number is not associated with the device.
(Initialized by driver.)
(Initialized by driver
(usually via
.Fn if_initname ) . )
.It Va if_addrhead
.Pq Vt "struct ifaddrhead"
The head of the
@ -282,7 +288,11 @@ to refer to a particular interface by index
.It Va if_flags
.Pq Vt int
Flags describing operational parameters of this interface (see below).
(Manipulated by both driver and generic code.)
(Manipulated by generic code.)
.It Va if_drv_flags
.Pq Vt int
Flags describing operational status of this interface (see below).
(Manipulated by driver.)
.It Va if_capabilities
.Pq Vt int
Flags describing the capabilities the interface supports (see below).
@ -349,18 +359,26 @@ Output a packet on interface
or queue it on the output queue if the interface is already active.
.It Fn if_transmit
Transmit a packet on an interface or queue it if the interface is
in use. This function will return
in use.
This function will return
.Dv ENOBUFS
if the devices software and hardware queues are both full. This
function must be installed after
if the devices software and hardware queues are both full.
This function must be installed after
.Fn if_attach
to override the default implementation.
This function is exposed in order to allow drivers to manage their own queues
and to reduce the latency caused by a frequently gratuitous enqueue / dequeue
pair to ifq.
The suggested internal software queueing mechanism is buf_ring.
.It Fn if_qflush
Free mbufs in internally managed queues when the interface is marked down.
This function must be installed after
.Fn if_attach
to override the default implementation. This function is exposed in order
to allow drivers to manage their own queues and to reduce the latency
caused by a frequently gratuitous enqueue / dequeue pair to ifq. The
suggested internal software queueing mechanism is buf_ring.
to override the default implementation.
This function is exposed in order to allow drivers to manage their own queues
and to reduce the latency caused by a frequently gratuitous enqueue / dequeue
pair to ifq.
The suggested internal software queueing mechanism is buf_ring.
.It Fn if_start
Start queued output on an interface.
This function is exposed in
@ -369,10 +387,10 @@ order to provide for some interface classes to share a
among all drivers.
.Fn if_start
may only be called when the
.Dv IFF_OACTIVE
.Dv IFF_DRV_OACTIVE
flag is not set.
(Thus,
.Dv IFF_OACTIVE
.Dv IFF_DRV_OACTIVE
does not literally mean that output is active, but rather that the
device's internal output queue is full.) Please note that this function
will soon be deprecated.
@ -406,7 +424,7 @@ Initialize and bring up the hardware,
e.g., reset the chip and enable the receiver unit.
Should mark the interface running,
but not active
.Dv ( IFF_RUNNING , ~IIF_OACTIVE ) .
.Dv ( IFF_DRV_RUNNING , ~IIF_DRV_OACTIVE ) .
.It Fn if_resolvemulti
Check the requested multicast group membership,
.Fa addr ,
@ -425,6 +443,12 @@ Flags of the former kind are marked
.Aq S
in this table; the latter are marked
.Aq D .
Flags which begin with
.Dq IFF_DRV_
are stored in
.Va if_drv_flags ;
all other flags are stored in
.Va if_flags .
.Pp
The macro
.Dv IFF_CANTCHANGE
@ -454,7 +478,7 @@ The interface is a loopback device.
The interface is point-to-point;
.Dq broadcast
address is actually the address of the other end.
.It Dv IFF_RUNNING
.It Dv IFF_DRV_RUNNING
.Aq D*
The interface has been configured and dynamic resources were
successfully allocated.
@ -473,7 +497,7 @@ This interface is in the permanently promiscuous mode (implies
.It Dv IFF_ALLMULTI
.Aq D*
This interface is in all-multicasts mode (used by multicast routers).
.It Dv IFF_OACTIVE
.It Dv IFF_DRV_OACTIVE
.Aq D*
The interface's hardware output queue (if any) is full; output packets
are to be queued.