packet.7: Rework description of fanout algorithms as list

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Michael Kerrisk 2015-03-27 12:59:12 +01:00
parent ab8ff64cb9
commit 2205c29290
1 changed files with 11 additions and 2 deletions

View File

@ -287,7 +287,10 @@ flags (see below).
Packet sockets can leave a fanout group only by closing the socket.
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,
.BR PACKET_FANOUT_HASH ,
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
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.
.IP *
The load-balance mode
.BR PACKET_FANOUT_LB
implements a round-robin algorithm.
.IP *
.BR PACKET_FANOUT_CPU
selects the socket based on the CPU that the packet arrived on.
.IP *
.BR PACKET_FANOUT_ROLLOVER
processes all data on a single socket, moving to the next when one
becomes backlogged.
.IP *
.BR PACKET_FANOUT_RND
selects the socket using a pseudo-random number generator.
.IP *
.BR PACKET_FANOUT_QM
.\" commit 2d36097d26b5991d71a2cf4a20c1a158f0f1bfcd
(available since Linux 3.14)
selects the socket using the recorded queue_mapping of the received skb.
.RE
.IP
Fanout modes can take additional options.
IP fragmentation causes packets from the same flow to have different
flow hashes.