One or more threads/applications/VMs (aka processing unit) that need to receive packets from the same interface(s) or exchange packets, should belong to the same cluster. Each cluster is identified by a cluster id.
Each queue, backed by either a network device or a software queue, is a single-producer single-consumer fifo. This means that a single processing unit can read or write buffers at a time. For instance if you need to access the same packets coming from an ingress device from multiple processing units, you need a distribution thread reading packets from the device (single-consumer) and delivering them to multiple software queues (one per consumer). All the enqueue/dequeue operations (aka send() and recv()) work in zero-copy, this means that no packet copy is involved, the library is just playing with pointers. Alfredo On 05 Aug 2014, at 09:25, lxgeek <[email protected]> wrote: > hi all: > I read some docs about ZC in PF_RING, for examples: > https://svn.ntop.org/svn/ntop/trunk/PF_RING/userland/examples_zc/README.quickstart > http://www.ntop.org/pf_ring/introducing-pf_ring-zc-zero-copy/ > https://svn.ntop.org/svn/ntop/trunk/PF_RING/userland/examples_zc/README.examples > > But, I still can't understand the concept of "cluster", "queue" when those > used in the ZC.I want to understand the ZC (zero copy) in PF_RING, so how to > do? > > Thank you. > _______________________________________________ > Ntop-misc mailing list > [email protected] > http://listgateway.unipi.it/mailman/listinfo/ntop-misc _______________________________________________ Ntop-misc mailing list [email protected] http://listgateway.unipi.it/mailman/listinfo/ntop-misc
