Can you please confirm my understanding of how memory bandwidth affects the
ability of PF_RING to do full packet capture at wire speeds?

Assume we want to capture data from a saturated 10GigE link. That
corresponds to 10 billion bits/sec, or about 1.25 billion bytes/sec.

Packets arrive in the NIC and must be copied to the ring buffer, so the
system will consume 1.25GBps of memory bandwidth, even if libzero is used.
Correct? Even with DMA, memory bandwidth is consumed.

If the PF_RING enabled libpcap is used, there will be one extra copy per
packet to deliver packet to the userland application, requiring 2.5GBps of
memory bandwidth. Correct?

If we ignore L1/L2/L3 caches, current servers will typically have more than
2.5Gbps of memory bandwidth available, but in practice, actual bandwidth is
limited at about that amount. So, eliminating that extra packet copy is
indeed the difference between consuming about 50% of the memory bandwidth
vs. consuming about 100% of the memory bandwidth. But libzero won't drop
the memory bandwidth consumed by packet capture down to 0%. There is no
free lunch.

Have I made any gross errors here?

Thanks.
_______________________________________________
Ntop-misc mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop-misc

Reply via email to