Before you start
On both machines:Start the receiver first
Always. If the sender starts first, its first several seconds go into a void and the totals won’t match.Then the sender
Give it a duration shorter than the receiver’s, so the receiver is definitely listening for the whole run.--dst-macexplicitly. The receiver won’t answer ARP for an address it doesn’t own, and giving the MAC skips resolution entirely. Drop it if both boxes are properly addressed on the same subnet.--src-ipdoesn’t have to be real. Nothing needs to route back, because the receiver counts what arrives.--flows 64exercises hashing across the path. Add--vary-dst-portto spread wider, but then widen the receive filter to match.
--vlan, and see VLAN-tagged traffic for the 68-byte minimum.
Reading the result
Both ends steady at the same packets/sec and the same L1 bit rate during the overlap. That’s the agreement you’re looking for.The receiver’s average rate over its whole run will be much lower than the sender’s, because it was idle before the sender started and after it stopped. Compare the per-second lines during the overlap, and the packet totals, not the run averages.
When the numbers don’t match
Receiver counts zero
Receiver counts zero
The filter doesn’t match what’s arriving. Check the destination port on both sides, and remember the filter matches the destination port only.Confirm packets are physically arriving at all:If tcpdump sees nothing either, it’s the path: VLAN, cabling, or switch config. If tcpdump sees traffic but Wireblast doesn’t, it’s the filter.
Receiver counts fewer packets
Receiver counts fewer packets
Something dropped them, and where matters:
Drops/errorsclimbing on the receiver means the receive rings filled up. The receiver can’t keep up. Try more queues, or a lower send rate.- Receiver clean, but short means the loss is in the path: a switch, a policer, or a link that isn’t as fast as you think.
Sender reports fewer packets than you asked for
Sender reports fewer packets than you asked for
Check
Errors on the TX side. If it’s zero and the rate is simply below what you set, you’ve found the box’s limit rather than a fault. Finding your max rate covers what to do about it.Bit rates differ slightly between the two ends
Bit rates differ slightly between the two ends
Expected if one end is tagging and the numbers are being read at different layers. Reading the numbers explains the L1/L2/kernel-counter split.
Running it repeatedly
In the TUI, pressr to run again. The XDP program stays attached, so the second run starts in about two seconds instead of waiting out another link bounce. Press e to change a setting first.
To script the whole thing, see scripting and automation, or grab example 018, which is exactly this test.