|
|
@ -440,10 +440,16 @@ static void *ParseAFPConfig(const char *iface)
|
|
|
|
aconf->iface);
|
|
|
|
aconf->iface);
|
|
|
|
aconf->flags |= AFP_BYPASS;
|
|
|
|
aconf->flags |= AFP_BYPASS;
|
|
|
|
RunModeEnablesBypassManager();
|
|
|
|
RunModeEnablesBypassManager();
|
|
|
|
|
|
|
|
struct ebpf_timeout_config *ebt = SCCalloc(1, sizeof(struct ebpf_timeout_config));
|
|
|
|
|
|
|
|
if (ebt == NULL) {
|
|
|
|
|
|
|
|
SCLogError(SC_ERR_MEM_ALLOC, "Flow bypass alloc error");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
memcpy(ebt, &(aconf->ebpf_t_config), sizeof(struct ebpf_timeout_config));
|
|
|
|
BypassedFlowManagerRegisterCheckFunc(EBPFCheckBypassedFlowTimeout,
|
|
|
|
BypassedFlowManagerRegisterCheckFunc(EBPFCheckBypassedFlowTimeout,
|
|
|
|
NULL,
|
|
|
|
NULL,
|
|
|
|
(void *) &(aconf->ebpf_t_config));
|
|
|
|
(void *)ebt);
|
|
|
|
BypassedFlowManagerRegisterUpdateFunc(EBPFUpdateFlow, NULL);
|
|
|
|
BypassedFlowManagerRegisterUpdateFunc(EBPFUpdateFlow, NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
SCLogError(SC_ERR_UNIMPLEMENTED, "Bypass set but eBPF support is not built-in");
|
|
|
|
SCLogError(SC_ERR_UNIMPLEMENTED, "Bypass set but eBPF support is not built-in");
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|