inliniac/suricata — pull request #1220 by ken-tilera (2014-11-19 16:32:55+00:00)
Title: Handle Pseudo packets in Tile runmode

The current implementation of the mPIPE packet source ignores pseudo
packets. This means that rule reloading doesn't complete when there
are no packets being received, because rule reloading creates one
psuedo packet per detect thread to make sure detection is run using
the new rules. Not processing pseudo packets could also be causing
other unexpected behavior.

The standard method on other packet sources is to receive packets
using one thread and enqueue them into a packet queue for the detect
thread. Pseudo packets are inserted into this packet queue.

Since the code for tile does the packet receiving from mPIPE directly
and then runs detection on the same thread, there is no packet queue
between the two steps into which psuedo packets can be inserted.

The solution here is to create a packet queue (inq) into which pseudo
packets are inserted and then the mPIPE packet processing loop
periodically checks for psuedo packets and processes them through
Detection.

Passes PR scripts:
- PR build: https://buildbot.openinfosecfoundation.org/builders/ken-tilera/builds/52
- PR pcaps: https://buildbot.openinfosecfoundation.org/builders/ken-tilera-pcap/builds/58