mirror of https://github.com/mkerrisk/man-pages
packet.7: Rework description of fanout algorithms as list
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
ab8ff64cb9
commit
2205c29290
|
@ -287,7 +287,10 @@ flags (see below).
|
||||||
Packet sockets can leave a fanout group only by closing the socket.
|
Packet sockets can leave a fanout group only by closing the socket.
|
||||||
The group is deleted when the last socket is closed.
|
The group is deleted when the last socket is closed.
|
||||||
|
|
||||||
Fanout supports multiple algorithms to spread traffic between sockets.
|
Fanout supports multiple algorithms to spread traffic between sockets,
|
||||||
|
as follows:
|
||||||
|
.RS
|
||||||
|
.IP * 3
|
||||||
The default mode,
|
The default mode,
|
||||||
.BR PACKET_FANOUT_HASH ,
|
.BR PACKET_FANOUT_HASH ,
|
||||||
sends packets from the same flow to the same socket to maintain
|
sends packets from the same flow to the same socket to maintain
|
||||||
|
@ -295,21 +298,27 @@ per-flow ordering.
|
||||||
For each packet, it chooses a socket by taking the packet flow hash
|
For each packet, it chooses a socket by taking the packet flow hash
|
||||||
modulo the number of sockets in the group, where a flow hash is a hash
|
modulo the number of sockets in the group, where a flow hash is a hash
|
||||||
over network-layer address and optional transport-layer port fields.
|
over network-layer address and optional transport-layer port fields.
|
||||||
|
.IP *
|
||||||
The load-balance mode
|
The load-balance mode
|
||||||
.BR PACKET_FANOUT_LB
|
.BR PACKET_FANOUT_LB
|
||||||
implements a round-robin algorithm.
|
implements a round-robin algorithm.
|
||||||
|
.IP *
|
||||||
.BR PACKET_FANOUT_CPU
|
.BR PACKET_FANOUT_CPU
|
||||||
selects the socket based on the CPU that the packet arrived on.
|
selects the socket based on the CPU that the packet arrived on.
|
||||||
|
.IP *
|
||||||
.BR PACKET_FANOUT_ROLLOVER
|
.BR PACKET_FANOUT_ROLLOVER
|
||||||
processes all data on a single socket, moving to the next when one
|
processes all data on a single socket, moving to the next when one
|
||||||
becomes backlogged.
|
becomes backlogged.
|
||||||
|
.IP *
|
||||||
.BR PACKET_FANOUT_RND
|
.BR PACKET_FANOUT_RND
|
||||||
selects the socket using a pseudo-random number generator.
|
selects the socket using a pseudo-random number generator.
|
||||||
|
.IP *
|
||||||
.BR PACKET_FANOUT_QM
|
.BR PACKET_FANOUT_QM
|
||||||
.\" commit 2d36097d26b5991d71a2cf4a20c1a158f0f1bfcd
|
.\" commit 2d36097d26b5991d71a2cf4a20c1a158f0f1bfcd
|
||||||
(available since Linux 3.14)
|
(available since Linux 3.14)
|
||||||
selects the socket using the recorded queue_mapping of the received skb.
|
selects the socket using the recorded queue_mapping of the received skb.
|
||||||
|
.RE
|
||||||
|
.IP
|
||||||
Fanout modes can take additional options.
|
Fanout modes can take additional options.
|
||||||
IP fragmentation causes packets from the same flow to have different
|
IP fragmentation causes packets from the same flow to have different
|
||||||
flow hashes.
|
flow hashes.
|
||||||
|
|
Loading…
Reference in New Issue