diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/man/man9/ifnet.9 | 56 |
1 files changed, 40 insertions, 16 deletions
diff --git a/share/man/man9/ifnet.9 b/share/man/man9/ifnet.9 index 532f6cd..e3bf591 100644 --- a/share/man/man9/ifnet.9 +++ b/share/man/man9/ifnet.9 @@ -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 @@ -289,7 +295,11 @@ decremented by generic watchdog code.) .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). @@ -356,18 +366,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 @@ -376,10 +394,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. @@ -418,7 +436,7 @@ Initialize and bring up the hardware, e.g., reset the chip and the watchdog timer 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 , @@ -437,6 +455,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 @@ -466,7 +490,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. @@ -485,7 +509,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. |