I have an application configured with the DNA cluster running on core 0, with 8 threads running on cores 1-8 on a Xeon processor. I'm using a custom hash function which just picks off the last octet of the source IP, and sends it to threads 1-8. I'm loading the DNA driver using the following:
insmod ixgbe.ko MQ=0,0 mtu=9000 When I run pfdnacluster_multithread I can start 8 threads without any dropping of packets. My understanding is that to use zero-copy mode, I can only have a single thread operating on the packets at a time since the buffer is automatically freed when another pfring_recv call is made. Because of this, each of my slave threads make a copy of the data before immediately returning back to call pfring_recv again. For some reason, I am dropping what appears to be an increasing number of packets, depending on which thread it is. Usually the lower-numbered threads drop about 10%, while the higher-number ones drop around 90%. I'm receiving about 230Kpps (1.3Gbps) evenly distributed between the threads, and my understanding was that DNA mode would handle this. My code for the receiver is identical to the multithread example (8192 buffers for rx/tx, receive only, wait_mode =0). My slave thread makes the call using the following: pfring_recv_parsed(m_ring, &packet, 0, &header, 1, 0, 1, 0); Also, what is the preferred way of dropping packets inside of the hash function when I don't want it routed to any of my threads, return DNA_CLUSTER_FAIL, or send it to a queue that is not being processed? Any help is appreciated. Thanks.
_______________________________________________ Ntop-misc mailing list [email protected] http://listgateway.unipi.it/mailman/listinfo/ntop-misc
