]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
netmap: enable zero-copy mode only when copy-mode is specified.
authorgureedo <gureedo@intersvyaz.net>
Tue, 28 Jul 2015 04:40:13 +0000 (09:40 +0500)
committerVictor Julien <victor@inliniac.net>
Fri, 21 Aug 2015 11:55:56 +0000 (13:55 +0200)
Perform zero-copy checks only when copy-mode is specified.

src/source-netmap.c

index 79bd161b8cdde6f410b9cd022eb06f18948c22da..73930118c1f006aba9a68c0b7015e547fb30ea27 100644 (file)
@@ -628,8 +628,10 @@ static TmEcode ReceiveNetmapThreadInit(ThreadVars *tv, void *initdata, void **da
     ntv->capture_kernel_drops = StatsRegisterCounter("capture.kernel_drops",
             ntv->tv);
 
+    /* enable zero-copy mode for workers runmode */
     char const *active_runmode = RunmodeGetActive();
-    if (active_runmode && !strcmp("workers", active_runmode)) {
+    if ((aconf->copy_mode != NETMAP_COPY_MODE_NONE) && active_runmode
+            && !strcmp("workers", active_runmode)) {
         if (likely(ntv->ifsrc->mem == ntv->ifdst->mem)) {
             ntv->flags |= NETMAP_FLAG_ZERO_COPY;
             SCLogInfo("Enabling zero copy mode for %s->%s",
@@ -638,7 +640,6 @@ static TmEcode ReceiveNetmapThreadInit(ThreadVars *tv, void *initdata, void **da
             SCLogInfo("Unable to set zero copy mode for %s->%s",
                       aconf->iface_name, aconf->out_iface_name);
         }
-
     }
 
     if (aconf->bpf_filter) {