@ -2104,7 +2104,125 @@ int RunModeIdsPcapAuto(DetectEngineCtx *de_ctx, char *iface) {
exit ( EXIT_FAILURE ) ;
}
ThreadVars * tv_decode1 = TmThreadCreatePacketHandler ( " Decode1 " , " pickup-queue " , " simple " , " decode-queue1 " , " simple " , " 1slot " ) ;
# if defined(__SC_CUDA_SUPPORT__)
if ( PatternMatchDefaultMatcher ( ) = = MPM_B2G_CUDA ) {
ThreadVars * tv_decode1 = TmThreadCreatePacketHandler ( " Decode " ,
" pickup-queue " , " simple " ,
" decode-queue1 " , " simple " ,
" 1slot " ) ;
if ( tv_decode1 = = NULL ) {
printf ( " ERROR: TmThreadsCreate failed for Decode1 \n " ) ;
exit ( EXIT_FAILURE ) ;
}
tm_module = TmModuleGetByName ( " DecodePcap " ) ;
if ( tm_module = = NULL ) {
printf ( " ERROR: TmModuleGetByName DecodePcap failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
Tm1SlotSetFunc ( tv_decode1 , tm_module , NULL ) ;
if ( threading_set_cpu_affinity ) {
TmThreadSetCPUAffinity ( tv_decode1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_decode1 , PRIO_MEDIUM ) ;
}
if ( TmThreadSpawn ( tv_decode1 ) ! = TM_ECODE_OK ) {
printf ( " ERROR: TmThreadSpawn failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
ThreadVars * tv_cuda_PB = TmThreadCreate ( " CUDA_PB " ,
" decode-queue1 " , " simple " ,
" cuda-pb-queue1 " , " simple " ,
" custom " , SCCudaPBTmThreadsSlot1 , 0 ) ;
if ( tv_cuda_PB = = NULL ) {
printf ( " ERROR: TmThreadsCreate failed for CUDA_PB \n " ) ;
exit ( EXIT_FAILURE ) ;
}
tv_cuda_PB - > type = TVT_PPT ;
tm_module = TmModuleGetByName ( " CudaPacketBatcher " ) ;
if ( tm_module = = NULL ) {
printf ( " ERROR: TmModuleGetByName CudaPacketBatcher failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
Tm1SlotSetFunc ( tv_cuda_PB , tm_module , ( void * ) de_ctx ) ;
if ( threading_set_cpu_affinity ) {
TmThreadSetCPUAffinity ( tv_cuda_PB , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_cuda_PB , PRIO_MEDIUM ) ;
}
if ( TmThreadSpawn ( tv_cuda_PB ) ! = TM_ECODE_OK ) {
printf ( " ERROR: TmThreadSpawn failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
ThreadVars * tv_stream1 = TmThreadCreatePacketHandler ( " Stream1 " ,
" cuda-pb-queue1 " , " simple " ,
" stream-queue1 " , " simple " ,
" 1slot " ) ;
if ( tv_stream1 = = NULL ) {
printf ( " ERROR: TmThreadsCreate failed for Stream1 \n " ) ;
exit ( EXIT_FAILURE ) ;
}
tm_module = TmModuleGetByName ( " StreamTcp " ) ;
if ( tm_module = = NULL ) {
printf ( " ERROR: TmModuleGetByName StreamTcp failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
Tm1SlotSetFunc ( tv_stream1 , tm_module , NULL ) ;
if ( threading_set_cpu_affinity ) {
TmThreadSetCPUAffinity ( tv_stream1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_stream1 , PRIO_MEDIUM ) ;
}
if ( TmThreadSpawn ( tv_stream1 ) ! = TM_ECODE_OK ) {
printf ( " ERROR: TmThreadSpawn failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
} else {
ThreadVars * tv_decode1 = TmThreadCreatePacketHandler ( " Decode & Stream " ,
" pickup-queue " , " simple " ,
" stream-queue1 " , " simple " ,
" varslot " ) ;
if ( tv_decode1 = = NULL ) {
printf ( " ERROR: TmThreadsCreate failed for Decode1 \n " ) ;
exit ( EXIT_FAILURE ) ;
}
tm_module = TmModuleGetByName ( " DecodePcapFile " ) ;
if ( tm_module = = NULL ) {
printf ( " ERROR: TmModuleGetByName DecodePcap failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
TmVarSlotSetFuncAppend ( tv_decode1 , tm_module , NULL ) ;
tm_module = TmModuleGetByName ( " StreamTcp " ) ;
if ( tm_module = = NULL ) {
printf ( " ERROR: TmModuleGetByName StreamTcp failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
TmVarSlotSetFuncAppend ( tv_decode1 , tm_module , NULL ) ;
if ( threading_set_cpu_affinity ) {
TmThreadSetCPUAffinity ( tv_decode1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_decode1 , PRIO_MEDIUM ) ;
}
if ( TmThreadSpawn ( tv_decode1 ) ! = TM_ECODE_OK ) {
printf ( " ERROR: TmThreadSpawn failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
}
# else
//#if 0
//ThreadVars *tv_decode1 = TmThreadCreatePacketHandler("Decode & Stream","pickup-queue","simple","packetpool","packetpool","varslot");
ThreadVars * tv_decode1 = TmThreadCreatePacketHandler ( " Decode & Stream " , " pickup-queue " , " simple " , " stream-queue1 " , " simple " , " varslot " ) ;
if ( tv_decode1 = = NULL ) {
printf ( " ERROR: TmThreadsCreate failed for Decode1 \n " ) ;
exit ( EXIT_FAILURE ) ;
@ -2114,42 +2232,26 @@ int RunModeIdsPcapAuto(DetectEngineCtx *de_ctx, char *iface) {
printf ( " ERROR: TmModuleGetByName DecodePcap failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
Tm1SlotSetFunc ( tv_decode1 , tm_module , NULL ) ;
if ( threading_set_cpu_affinity ) {
TmThreadSetCPUAffinity ( tv_decode1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_decode1 , PRIO_MEDIUM ) ;
}
if ( TmThreadSpawn ( tv_decode1 ) ! = TM_ECODE_OK ) {
printf ( " ERROR: TmThreadSpawn failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
TmVarSlotSetFuncAppend ( tv_decode1 , tm_module , NULL ) ;
ThreadVars * tv_stream1 = TmThreadCreatePacketHandler ( " Stream1 " , " decode-queue1 " , " simple " , " stream-queue1 " , " simple " , " 1slot " ) ;
if ( tv_stream1 = = NULL ) {
printf ( " ERROR: TmThreadsCreate failed for Stream1 \n " ) ;
exit ( EXIT_FAILURE ) ;
}
tm_module = TmModuleGetByName ( " StreamTcp " ) ;
if ( tm_module = = NULL ) {
printf ( " ERROR: TmModuleGetByName StreamTcp failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
Tm 1SlotSetFunc( tv_stream 1, tm_module , NULL ) ;
TmVarSlotSetFuncAppend ( tv_decode1 , tm_module , NULL ) ;
if ( threading_set_cpu_affinity ) {
TmThreadSetCPUAffinity ( tv_ stream 1, 0 ) ;
TmThreadSetCPUAffinity ( tv_decode1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_ stream 1, PRIO_MEDIUM ) ;
TmThreadSetThreadPriority ( tv_ decode 1, PRIO_MEDIUM ) ;
}
if ( TmThreadSpawn ( tv_ stream 1) ! = TM_ECODE_OK ) {
if ( TmThreadSpawn ( tv_ decode 1) ! = TM_ECODE_OK ) {
printf ( " ERROR: TmThreadSpawn failed \n " ) ;
exit ( EXIT_FAILURE ) ;
}
# endif
/* start with cpu 1 so that if we're creating an odd number of detect
* threads we ' re not creating the most on CPU0 . */
if ( ncpus > 0 )
@ -2326,9 +2428,11 @@ int RunModeFilePcapAuto(DetectEngineCtx *de_ctx, char *file) {
}
Tm1SlotSetFunc ( tv_decode1 , tm_module , NULL ) ;
TmThreadSetCPUAffinity ( tv_decode1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_decode1 , PRIO_MEDIUM ) ;
if ( threading_set_cpu_affinity ) {
TmThreadSetCPUAffinity ( tv_decode1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_decode1 , PRIO_MEDIUM ) ;
}
if ( TmThreadSpawn ( tv_decode1 ) ! = TM_ECODE_OK ) {
printf ( " ERROR: TmThreadSpawn failed \n " ) ;
@ -2352,9 +2456,11 @@ int RunModeFilePcapAuto(DetectEngineCtx *de_ctx, char *file) {
}
Tm1SlotSetFunc ( tv_cuda_PB , tm_module , ( void * ) de_ctx ) ;
TmThreadSetCPUAffinity ( tv_cuda_PB , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_cuda_PB , PRIO_MEDIUM ) ;
if ( threading_set_cpu_affinity ) {
TmThreadSetCPUAffinity ( tv_cuda_PB , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_cuda_PB , PRIO_MEDIUM ) ;
}
if ( TmThreadSpawn ( tv_cuda_PB ) ! = TM_ECODE_OK ) {
printf ( " ERROR: TmThreadSpawn failed \n " ) ;
@ -2376,9 +2482,11 @@ int RunModeFilePcapAuto(DetectEngineCtx *de_ctx, char *file) {
}
Tm1SlotSetFunc ( tv_stream1 , tm_module , NULL ) ;
TmThreadSetCPUAffinity ( tv_stream1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_stream1 , PRIO_MEDIUM ) ;
if ( threading_set_cpu_affinity ) {
TmThreadSetCPUAffinity ( tv_stream1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_stream1 , PRIO_MEDIUM ) ;
}
if ( TmThreadSpawn ( tv_stream1 ) ! = TM_ECODE_OK ) {
printf ( " ERROR: TmThreadSpawn failed \n " ) ;
@ -2407,9 +2515,11 @@ int RunModeFilePcapAuto(DetectEngineCtx *de_ctx, char *file) {
}
TmVarSlotSetFuncAppend ( tv_decode1 , tm_module , NULL ) ;
TmThreadSetCPUAffinity ( tv_decode1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_decode1 , PRIO_MEDIUM ) ;
if ( threading_set_cpu_affinity ) {
TmThreadSetCPUAffinity ( tv_decode1 , 0 ) ;
if ( ncpus > 1 )
TmThreadSetThreadPriority ( tv_decode1 , PRIO_MEDIUM ) ;
}
if ( TmThreadSpawn ( tv_decode1 ) ! = TM_ECODE_OK ) {
printf ( " ERROR: TmThreadSpawn failed \n " ) ;