mirror of https://github.com/mkerrisk/man-pages
packet.7: PACKET_LOSS has inverse meaning
I stumbled upon an error in packet.7 regarding the meaning of the PACKET_LOSS socket option. According to the current git version of linux-man setting PACKET_LOSS causes malformed packets to *not* be silently dropped. However it is the other way round. If PACKET_LOSS is *not* set, malformed packets will be marked TP_STATUS_WRONG_FORMAT and the transmission process aborted, leaving untransmitted packets in the ring. If it *is* set, malformed packets will be silently skipped, their status set to TP_STATUS_AVAILABLE and the transmission process continued with the following packet. This behaviour can be clearly seen in net/packet/af_packet.c: http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/net/packet/af_packet.c#n2300 The value accompanying TP_PACKET_LOSS translates into po->tp_loss: http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/net/packet/af_packet.c#n3304 I inverted the meaning of PACKET_LOSS and clarified the description in the attached patch. Reviewed-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
d63ff76e2a
commit
8c26e99bce
|
@ -319,9 +319,15 @@ original fanout algorithm selects a backlogged socket, the packet
|
|||
rolls over to the next available one.
|
||||
.TP
|
||||
.BR PACKET_LOSS " (with " PACKET_TX_RING )
|
||||
If set, do not silently drop a packet on transmission error, but
|
||||
return it with status set to
|
||||
.BR TP_STATUS_WRONG_FORMAT .
|
||||
When a malformed packet is encountered on a transmit ring, the default is to
|
||||
set its status to
|
||||
.BR TP_STATUS_WRONG_FORMAT
|
||||
and abort the transmission immediately (it and following packets are left
|
||||
lingering on the ring). However if
|
||||
.BR PACKET_LOSS
|
||||
is set, malformed packets will be skipped, their status reset to
|
||||
.BR TP_STATUS_AVAILABLE
|
||||
and the transmission process continued.
|
||||
.TP
|
||||
.BR PACKET_RESERVE " (with " PACKET_RX_RING )
|
||||
By default, a packet receive ring writes packets immediately following the
|
||||
|
@ -419,7 +425,7 @@ or
|
|||
then that overrides the socket default.
|
||||
On successful transmission, the socket resets the slot to
|
||||
.BR TP_STATUS_AVAILABLE .
|
||||
It discards packets silently on error unless
|
||||
It immediately aborts the transmission on error unless
|
||||
.BR PACKET_LOSS
|
||||
is set.
|
||||
.TP
|
||||
|
|
Loading…
Reference in New Issue