]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
af-packet: simplify socket handling in tpacket v3
authorVictor Julien <victor@inliniac.net>
Wed, 3 Nov 2021 20:09:46 +0000 (21:09 +0100)
committerVictor Julien <victor@inliniac.net>
Thu, 11 Nov 2021 14:27:24 +0000 (15:27 +0100)
Tpacket v3 only supports workers mode, which means the packet that would
reference a socket won't leave the thread. Therefore keeping a ref count
on the socket is not needed.

This patch removes the per packet reference count increment. The decrement
was missing, so this fixes the ref cnt handling so that after a iface up/
down capture can recover.

It should also lead to a minor performance increase as we avoid a round
of atomic operations per packet.

Bug: #4804.
Bug: #4801.

src/source-af-packet.c

index 728266a48fa5c6f7d5e9d3bfdbfbe63c20b4a033..ed189e1801de491a6a96fe00e847600c27376afe 100644 (file)
@@ -1129,7 +1129,6 @@ static inline int AFPParsePacketV3(AFPThreadVars *ptv, struct tpacket_block_desc
     p->afp_v.relptr = ppd;
     p->ReleasePacket = AFPReleasePacketV3;
     p->afp_v.mpeer = ptv->mpeer;
-    AFPRefSocket(ptv->mpeer);
 
     p->afp_v.copy_mode = ptv->copy_mode;
     if (p->afp_v.copy_mode != AFP_COPY_MODE_NONE) {