diff --git a/man7/packet.7 b/man7/packet.7 index 0191e0bdf..18a5521b4 100644 --- a/man7/packet.7 +++ b/man7/packet.7 @@ -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.