pktgen: Parse internet mix (imix) input
authorNick Richardson <richardsonnick@google.com>
Tue, 10 Aug 2021 19:01:53 +0000 (19:01 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Aug 2021 09:50:20 +0000 (10:50 +0100)
commit52a62f8603f97e720882c8f5aff2767ac6a11d5f
tree5c769b5be28c3b5fcb4513b2cdc5f5ddfc7298c3
parent6c4110d9f499e2170fbb36723b0a5f50a8116304
pktgen: Parse internet mix (imix) input

Adds "imix_weights" command for specifying internet mix distribution.

The command is in this format:
"imix_weights size_1,weight_1 size_2,weight_2 ... size_n,weight_n"
where the probability that packet size_i is picked is:
weight_i / (weight_1 + weight_2 + .. + weight_n)

The user may provide up to 100 imix entries (size_i,weight_i) in this
command.

The user specified imix entries will be displayed in the "Params"
section of the interface output.

Values for clone_skb > 0 is not supported in IMIX mode.

Summary of changes:
Add flag for enabling internet mix mode.
Add command (imix_weights) for internet mix input.
Return -ENOTSUPP when clone_skb > 0 in IMIX mode.
Display imix_weights in Params.
Create data structures to store imix entries and distribution.

Signed-off-by: Nick Richardson <richardsonnick@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/pktgen.c