Update the list of struct ifnet fields.

- Document if_vnet, if_home_vnet, if_carp, if_vlantrunk, if_multiaddrs,
  if_amcount, if_addr, if_llsoftc stub, if_broadcastaddr, if_bridge,
  if_label, if_afdata, if_afdata_initialized, if_afdata_lock, if_linktask,
  if_addr_mtx (now if_addr_lock), if_clones, if_groups, if_pf_kif, if_lagg,
  if_alloctype
- G/c now defunct and/or commented out in the manual page if_ipending,
  if_poll_slowq, if_done, if_poll_recv, if_poll_xmit, if_poll_slowinput,
  if_poll_intren
- Update if_snd type changed with ALTQ integration.

MFC after:	1 week
This commit is contained in:
pluknet 2012-03-20 16:56:35 +00:00
parent c49b39491d
commit 5ca464704b

View File

@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd March 7, 2012
.Dd March 20, 2012
.Dt IFNET 9
.Os
.Sh NAME
@ -229,6 +229,18 @@ A pointer to the driver's private state block.
A pointer to the common data for the interface's layer 2 protocol.
(Initialized by
.Fn if_alloc . )
.It Va if_vnet
.Pq Vt "struct vnet *"
A pointer to the virtual network stack instance.
(Initialized by
.Fn if_attach . )
.It Va if_home_vnet
.Pq Vt "struct vnet *"
A pointer to the parent virtual network stack, where this
.Vt "struct ifnet"
originates from.
(Initialized by
.Fn if_attach . )
.It Va if_link
.Pq Fn TAILQ_ENTRY ifnet
.Xr queue 3
@ -276,6 +288,13 @@ A count of promiscuous listeners on this interface, used to
reference-count the
.Dv IFF_PROMISC
flag.
.It Va if_carp
.Pq Vt "struct carp_if *"
A pointer to the CARP interface structure,
.Xr carp 4 .
(Initialized by the driver-specific
.Fn if_ioctl
routine.)
.It Va if_bpf
.Pq Vt "struct bpf_if *"
Opaque per-interface data for the packet filter,
@ -293,6 +312,13 @@ to refer to a particular interface by index
.Xr link_addr 3 ) .
(Initialized by
.Fn if_alloc . )
.It Va if_vlantrunk
.Pq Vt struct ifvlantrunk *
A pointer to 802.1Q trunk structure,
.Xr vlan 4 .
(Initialized by the driver-specific
.Fn if_ioctl
routine.)
.It Va if_flags
.Pq Vt int
Flags describing operational parameters of this interface (see below).
@ -307,17 +333,6 @@ Flags describing the capabilities the interface supports (see below).
.It Va if_capenable
.Pq Vt int
Flags describing the enabled capabilities of the interface (see below).
.\" .It Va if_ipending
.\" Interrupt-pending bits for polled operation:
.\" .Dv IFI_XMIT
.\" (transmit complete interrupt)
.\" and
.\" .Dv IFI_RECV
.\" (received packet ready interrupt).
.\" See the
.\" .Sx Polling
.\" section, below.
.\" (Manipulated by driver.)
.It Va if_linkmib
.Pq Vt "void *"
A pointer to an interface-specific MIB structure exported by
@ -334,18 +349,97 @@ More statistics and information; see
below.
(Initialized by driver, manipulated by both driver and generic
code.)
.It Va if_multiaddrs
.Pq Vt struct ifmultihead
The head of the
.Xr queue 3
.Li TAILQ
containing the list of multicast addresses assigned to this interface.
.It Va if_amcount
.Pq Vt int
A number of multicast requests on this interface, used to
reference-count the
.Dv IFF_ALLMULTI
flag.
.It Va if_addr
.Pq Vt "struct ifaddr *"
A pointer to the link-level interface address.
(Initialized by
.Fn if_alloc . )
.\" .It Va if_llsoftc
.\" .Pq Vt "void *"
.\" The purpose of the field is unclear.
.It Va if_snd
.Pq Vt "struct ifqueue"
.Pq Vt "struct ifaltq"
The output queue.
(Manipulated by driver.)
.\".It Va if_poll_slowq
.\".Pq Vt "struct ifqueue *"
.\"A pointer to the input queue for devices which do not support polling
.\"well.
.\"See the
.\".Sx Polling
.\"section, below.
.\"(Initialized by driver.)
.It Va if_broadcastaddr
.Pq Vt "const u_int8_t *"
A link-level broadcast bytestring for protocols with variable address
length.
.It Va if_bridge
.Pq Vt "void *"
A pointer to the bridge interface structure,
.Xr if_bridge 4 .
(Initialized by the driver-specific
.Fn if_ioctl
routine.)
.It Va if_label
.Pq Vt "struct label *"
A pointer to the MAC Framework label structure,
.Xr mac 4 .
(Initialized by
.Fn if_alloc . )
.It Va if_afdata
.Pq Vt "void *"
An address family dependent data region.
.It Va if_afdata_initialized
.Pq Vt int
Used to track the current state of address family initialization.
.It Va if_afdata_lock
.Pq Vt "struct rwlock"
An
.Xr rwlock 9
lock used to protect
.Va if_afdata
internals.
.It Va if_linktask
.Pq Vt "struct task"
A
.Xr taskqueue 9
task scheduled for link state change events of the interface.
.It Va if_addr_lock
.Pq Vt "struct rwlock"
An
.Xr rwlock 9
lock used to protect interface-related address lists.
.It Va if_clones
.Pq Fn LIST_ENTRY ifnet
.Xr queue 3
macro glue for the list of clonable network interfaces.
.It Va if_groups
.Pq Fn TAILQ_HEAD ", ifg_list"
The head of the
.Xr queue 3
.Li TAILQ
containing the list of groups per interface.
.It Va if_pf_kif
.Pq Vt "void *"
A pointer to the structure used for interface abstraction by
.Xr pf 4 .
.It Va if_lagg
.Pq Vt "void *"
A pointer to the
.Xr lagg 4
interface structure.
.It Va if_alloctype
.Pq Vt u_char
The type of the interface as it was at the time of its allocation.
It is used to cache the type passed to
.Fn if_alloc ,
but unlike
.Va if_type ,
it would not be changed by drivers.
.El
.Pp
References to
@ -416,10 +510,6 @@ flag is not set.
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.
.It Fn if_done
Not used.
We are not even sure what it was ever for.
The prototype is faked.
.It Fn if_ioctl
Process interface-related
.Xr ioctl 2
@ -434,13 +524,6 @@ flags and flushing queues.
See the description of
.Fn ifioctl
below for more information.
.\" .It Fn if_poll_recv
.\" .It Fn if_poll_xmit
.\" .It Fn if_poll_slowinput
.\" .It Fn if_poll_intren
.\" See the
.\" .Sx Polling
.\" section, below.
.It Fn if_init
Initialize and bring up the hardware,
e.g., reset the chip and enable the receiver unit.