snort: plugin rework
Changes:
- support for multiple qpairs per thread
- ability for daq to connect to multiple instances
- ability for daq to connect to specific qpairs
- added ownership to each qpair to avoid multiple clients using same one
- enabled packet rewrite
- enqueue and dequeue nodes are decoupled from feature arcs so they
can be used in different datapaths
- feature arc doesn't support multiple-instances anymore, use multiple
qpairs for load-balancing
- per-instance drop decisions based on drop bitmap
sample snort invocation:
snort \
<standard args> \
--max-packet-threads 3 \ # number of threads snort will launch
--daq-dir <daq dir> \ # path to dir with libdaq_bpp.so
--daq vpp \ # enable VPP daq
--daq-var <path> \ # optional, path to snort.sock
--daq-var debug \ # optional, turn on debug prints
-i vpp0:1 \ # attach instance to vpp0 instance qpair 1.0
-i vpp0:1.1 \ # attach instance to vpp0 instance qpair 1.1
-i vpp0:2.0,2.1,0 \ # attach instance to vpp0 instance qpairs 2.0, 2.1 and 0.0
qpair is identified as x.y where x is thread_id and y is queue_id, .y
part can be ommited if queue_id is 0.
Type: feature
Change-Id: I4f65b9a12ec71b115b9cb2da814c7918ddf6191d
Signed-off-by: Damjan Marion <[email protected]>
Signed-off-by: Mohsin Kazmi <[email protected]>