idmef_impact_set_severity(impact, severity);
- if (PACKET_TEST_ACTION(p, ACTION_DROP) ||
- PACKET_TEST_ACTION(p, ACTION_REJECT) ||
- PACKET_TEST_ACTION(p, ACTION_REJECT_DST) ||
- PACKET_TEST_ACTION(p, ACTION_REJECT_BOTH) ) {
+ if (PacketTestAction(p, ACTION_DROP) || PacketTestAction(p, ACTION_REJECT) ||
+ PacketTestAction(p, ACTION_REJECT_DST) || PacketTestAction(p, ACTION_REJECT_BOTH)) {
idmef_action_t *action;
ret = idmef_action_new(&action);
void CaptureStatsUpdate(ThreadVars *tv, CaptureStats *s, const Packet *p)
{
- if (unlikely(PACKET_TEST_ACTION(p, (ACTION_REJECT|ACTION_REJECT_DST|ACTION_REJECT_BOTH)))) {
+ if (unlikely(PacketTestAction(p, (ACTION_REJECT | ACTION_REJECT_DST | ACTION_REJECT_BOTH)))) {
StatsIncr(tv, s->counter_ips_rejected);
- } else if (unlikely(PACKET_TEST_ACTION(p, ACTION_DROP))) {
+ } else if (unlikely(PacketTestAction(p, ACTION_DROP))) {
StatsIncr(tv, s->counter_ips_blocked);
} else if (unlikely(p->flags & PKT_STREAM_MODIFIED)) {
StatsIncr(tv, s->counter_ips_replaced);
* handle the case of a root packet
* for tunnels */
-#define PACKET_SET_ACTION(p, a) do { \
- ((p)->root ? \
- ((p)->root->action = a) : \
- ((p)->action = a)); \
-} while (0)
+#define PACKET_SET_ACTION(p, a) (p)->action = (a)
+
+static inline void PacketSetAction(Packet *p, const uint8_t a)
+{
+ if (likely(p->root == NULL)) {
+ PACKET_SET_ACTION(p, a);
+ } else {
+ PACKET_SET_ACTION(p->root, a);
+ }
+}
#define PACKET_ALERT(p) PACKET_SET_ACTION(p, ACTION_ALERT)
#define PACKET_PASS(p) PACKET_SET_ACTION(p, ACTION_PASS)
-#define PACKET_TEST_ACTION(p, a) \
- ((p)->root ? \
- ((p)->root->action & a) : \
- ((p)->action & a))
+#define PACKET_TEST_ACTION(p, a) (p)->action &(a)
+
+static inline uint8_t PacketTestAction(const Packet *p, const uint8_t a)
+{
+ if (likely(p->root == NULL)) {
+ return PACKET_TEST_ACTION(p, a);
+ } else {
+ return PACKET_TEST_ACTION(p->root, a);
+ }
+}
-#define PACKET_UPDATE_ACTION(p, a) do { \
- ((p)->root ? \
- ((p)->root->action |= a) : \
- ((p)->action |= a)); \
-} while (0)
+#define PACKET_UPDATE_ACTION(p, a) (p)->action |= (a)
+static inline void PacketUpdateAction(Packet *p, const uint8_t a)
+{
+ if (likely(p->root == NULL)) {
+ PACKET_UPDATE_ACTION(p, a);
+ } else {
+ PACKET_UPDATE_ACTION(p->root, a);
+ }
+}
#define TUNNEL_INCR_PKT_RTV_NOLOCK(p) do { \
((p)->root ? (p)->root->tunnel_rtv_cnt++ : (p)->tunnel_rtv_cnt++); \
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts = PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
TimeSetIncrementTime(200);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
if (alerts == 3 && drops == 3)
/* set actions on packet */
DetectSignatureApplyActions(p, p->alerts.alerts[i].s, p->alerts.alerts[i].flags);
- if (PACKET_TEST_ACTION(p, ACTION_PASS)) {
+ if (PacketTestAction(p, ACTION_PASS)) {
/* Ok, reset the alert cnt to end in the previous of pass
* so we ignore the rest with less prio */
p->alerts.cnt = i;
/* if the signature wants to drop, check if the
* PACKET_ALERT_FLAG_DROP_FLOW flag is set. */
- } else if ((PACKET_TEST_ACTION(p, ACTION_DROP)) &&
- ((p->alerts.alerts[i].flags & PACKET_ALERT_FLAG_DROP_FLOW) ||
- (s->flags & SIG_FLAG_APPLAYER))
- && p->flow != NULL)
- {
+ } else if ((PacketTestAction(p, ACTION_DROP)) &&
+ ((p->alerts.alerts[i].flags & PACKET_ALERT_FLAG_DROP_FLOW) ||
+ (s->flags & SIG_FLAG_APPLAYER)) &&
+ p->flow != NULL) {
/* This will apply only on IPS mode (check StreamTcpPacket) */
p->flow->flags |= FLOW_ACTION_DROP; // XXX API?
}
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
FAIL_IF(p->alerts.cnt != 1);
- FAIL_IF(PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p, ACTION_DROP));
UTHFreePacket(p);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
FAIL_IF(p->alerts.cnt != 1);
- FAIL_IF(PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p, ACTION_DROP));
UTHFreePacket(p);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
FAIL_IF(p->alerts.cnt != 1);
- FAIL_IF(PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p, ACTION_DROP));
UTHFreePacket(p);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
FAIL_IF(p->alerts.cnt != 1);
- FAIL_IF(PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p, ACTION_DROP));
UTHFreePacket(p);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
FAIL_IF(p->alerts.cnt != 0);
- FAIL_IF(PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p, ACTION_DROP));
UTHFreePacket(p);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
FAIL_IF(p->alerts.cnt != 1);
- FAIL_IF(PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p, ACTION_DROP));
UTHFreePacket(p);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
FAIL_IF(p->alerts.cnt != 1);
- FAIL_IF(PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p, ACTION_DROP));
UTHFreePacket(p);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
FAIL_IF(p->alerts.cnt != 0);
- FAIL_IF(PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p, ACTION_DROP));
UTHFreePacket(p);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
FAIL_IF(p->alerts.cnt != 1);
- FAIL_IF(PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p, ACTION_DROP));
UTHFreePacket(p);
TimeGet(&p->ts);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts = PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
TimeSetIncrementTime(200);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
if (alerts == 1 && drops == 6)
TimeGet(&p->ts);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts = PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
TimeSetIncrementTime(200);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
if (alerts == 2 && drops == 6)
TimeGet(&p->ts);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts = PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
TimeSetIncrementTime(200);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
if (alerts == 2 && drops == 2)
TimeGet(&p->ts);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts = PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
TimeSetIncrementTime(200);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
if (alerts == 1 && drops == 1)
TimeGet(&p->ts);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts = PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
TimeSetIncrementTime(200);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
if (alerts == 1 && drops == 4)
TimeGet(&p->ts);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts = PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
TimeSetIncrementTime(200);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
alerts += PacketAlertCheck(p, 10);
- drops += ((PACKET_TEST_ACTION(p, ACTION_DROP))?1:0);
+ drops += ((PacketTestAction(p, ACTION_DROP)) ? 1 : 0);
p->action = 0;
if (alerts == 1 && drops == 2)
void DetectSignatureApplyActions(Packet *p,
const Signature *s, const uint8_t alert_flags)
{
- PACKET_UPDATE_ACTION(p, s->action);
+ PacketUpdateAction(p, s->action);
if (s->action & ACTION_DROP) {
if (p->alerts.drop.action == 0) {
Packet *p)
{
/* No need to perform any detection on this packet, if the the given flag is set.*/
- if ((p->flags & PKT_NOPACKET_INSPECTION) ||
- (PACKET_TEST_ACTION(p, ACTION_DROP)))
- {
+ if ((p->flags & PKT_NOPACKET_INSPECTION) || (PacketTestAction(p, ACTION_DROP))) {
return;
}
const char *action = "allowed";
/* use packet action if rate_filter modified the action */
if (unlikely(pa->flags & PACKET_ALERT_RATE_FILTER_MODIFIED)) {
- if (PACKET_TEST_ACTION(p, (ACTION_DROP|ACTION_REJECT|
- ACTION_REJECT_DST|ACTION_REJECT_BOTH))) {
+ if (PacketTestAction(
+ p, (ACTION_DROP | ACTION_REJECT | ACTION_REJECT_DST | ACTION_REJECT_BOTH))) {
action = "blocked";
}
} else {
ret = TRUE;
return ret;
- } else if (PACKET_TEST_ACTION(p, ACTION_DROP)) {
+ } else if (PacketTestAction(p, ACTION_DROP)) {
return TRUE;
}
static TmEcode RespondRejectFunc(ThreadVars *tv, Packet *p, void *data)
{
/* ACTION_REJECT defaults to rejecting the SRC */
- if (likely(PACKET_TEST_ACTION(p, ACTION_REJECT_ANY) == 0)) {
+ if (likely(PacketTestAction(p, ACTION_REJECT_ANY) == 0)) {
return TM_ECODE_OK;
}
int RejectSendIPv4TCP(ThreadVars *tv, Packet *p, void *data)
{
SCEnter();
- if (PACKET_TEST_ACTION(p, ACTION_REJECT)) {
+ if (PacketTestAction(p, ACTION_REJECT)) {
int r = RejectSendLibnet11IPv4TCP(tv, p, data, REJECT_DIR_SRC);
SCReturnInt(r);
- } else if (PACKET_TEST_ACTION(p, ACTION_REJECT_DST)) {
+ } else if (PacketTestAction(p, ACTION_REJECT_DST)) {
int r = RejectSendLibnet11IPv4TCP(tv, p, data, REJECT_DIR_DST);
SCReturnInt(r);
- } else if(PACKET_TEST_ACTION(p, ACTION_REJECT_BOTH)) {
+ } else if (PacketTestAction(p, ACTION_REJECT_BOTH)) {
int r = RejectSendLibnet11IPv4TCP(tv, p, data, REJECT_DIR_SRC);
r |= RejectSendLibnet11IPv4TCP(tv, p, data, REJECT_DIR_DST);
SCReturnInt(r);
int RejectSendIPv4ICMP(ThreadVars *tv, Packet *p, void *data)
{
SCEnter();
- if (PACKET_TEST_ACTION(p, ACTION_REJECT)) {
+ if (PacketTestAction(p, ACTION_REJECT)) {
int r = RejectSendLibnet11IPv4ICMP(tv, p, data, REJECT_DIR_SRC);
SCReturnInt(r);
- } else if (PACKET_TEST_ACTION(p, ACTION_REJECT_DST)) {
+ } else if (PacketTestAction(p, ACTION_REJECT_DST)) {
int r = RejectSendLibnet11IPv4ICMP(tv, p, data, REJECT_DIR_DST);
SCReturnInt(r);
- } else if(PACKET_TEST_ACTION(p, ACTION_REJECT_BOTH)) {
+ } else if (PacketTestAction(p, ACTION_REJECT_BOTH)) {
int r = RejectSendLibnet11IPv4ICMP(tv, p, data, REJECT_DIR_SRC);
r |= RejectSendLibnet11IPv4ICMP(tv, p, data, REJECT_DIR_DST);
SCReturnInt(r);
int RejectSendIPv6TCP(ThreadVars *tv, Packet *p, void *data)
{
SCEnter();
- if (PACKET_TEST_ACTION(p, ACTION_REJECT)) {
+ if (PacketTestAction(p, ACTION_REJECT)) {
int r = RejectSendLibnet11IPv6TCP(tv, p, data, REJECT_DIR_SRC);
SCReturnInt(r);
- } else if (PACKET_TEST_ACTION(p, ACTION_REJECT_DST)) {
+ } else if (PacketTestAction(p, ACTION_REJECT_DST)) {
int r = RejectSendLibnet11IPv6TCP(tv, p, data, REJECT_DIR_DST);
SCReturnInt(r);
- } else if(PACKET_TEST_ACTION(p, ACTION_REJECT_BOTH)) {
+ } else if (PacketTestAction(p, ACTION_REJECT_BOTH)) {
int r = RejectSendLibnet11IPv6TCP(tv, p, data, REJECT_DIR_SRC);
r |= RejectSendLibnet11IPv6TCP(tv, p, data, REJECT_DIR_DST);
SCReturnInt(r);
int RejectSendIPv6ICMP(ThreadVars *tv, Packet *p, void *data)
{
SCEnter();
- if (PACKET_TEST_ACTION(p, ACTION_REJECT)) {
+ if (PacketTestAction(p, ACTION_REJECT)) {
int r = RejectSendLibnet11IPv6ICMP(tv, p, data, REJECT_DIR_SRC);
SCReturnInt(r);
- } else if (PACKET_TEST_ACTION(p, ACTION_REJECT_DST)) {
+ } else if (PacketTestAction(p, ACTION_REJECT_DST)) {
int r = RejectSendLibnet11IPv6ICMP(tv, p, data, REJECT_DIR_DST);
SCReturnInt(r);
- } else if(PACKET_TEST_ACTION(p, ACTION_REJECT_BOTH)) {
+ } else if (PacketTestAction(p, ACTION_REJECT_BOTH)) {
int r = RejectSendLibnet11IPv6ICMP(tv, p, data, REJECT_DIR_SRC);
r |= RejectSendLibnet11IPv6ICMP(tv, p, data, REJECT_DIR_DST);
SCReturnInt(r);
uint16_t vlan_tci = 0;
if (p->afp_v.copy_mode == AFP_COPY_MODE_IPS) {
- if (PACKET_TEST_ACTION(p, ACTION_DROP)) {
+ if (PacketTestAction(p, ACTION_DROP)) {
return TM_ECODE_OK;
}
}
IPFWpoll.events = POLLWRNORM;
#endif
- if (PACKET_TEST_ACTION(p, ACTION_DROP)) {
+ if (PacketTestAction(p, ACTION_DROP)) {
verdict = IPFW_DROP;
} else {
verdict = IPFW_ACCEPT;
flow_match.gfi = 1; /* Generate FlowInfo records */
flow_match.tau = 1; /* tcp automatic unlearn */
- if (PACKET_TEST_ACTION(p, ACTION_DROP)) {
+ if (PacketTestAction(p, ACTION_DROP)) {
flow_match.keySetId = NAPATECH_FLOWTYPE_DROP;
} else {
if (is_inline) {
* before releasing the Napatech buffer back to NTService.
*/
#ifdef NAPATECH_ENABLE_BYPASS
- if (is_inline && PACKET_TEST_ACTION(p, ACTION_DROP)) {
+ if (is_inline && PacketTestAction(p, ACTION_DROP)) {
p->ntpv.dyn3->wireLength = 0;
}
static TmEcode NetmapWritePacket(NetmapThreadVars *ntv, Packet *p)
{
if (ntv->copy_mode == NETMAP_COPY_MODE_IPS) {
- if (PACKET_TEST_ACTION(p, ACTION_DROP)) {
+ if (PacketTestAction(p, ACTION_DROP)) {
return TM_ECODE_OK;
}
}
static void NFQReleasePacket(Packet *p)
{
if (unlikely(!p->nfq_v.verdicted)) {
- PACKET_UPDATE_ACTION(p, ACTION_DROP);
+ PacketUpdateAction(p, ACTION_DROP);
NFQSetVerdict(p);
}
PacketFreeOrRelease(p);
{
uint32_t verdict = NF_ACCEPT;
- if (PACKET_TEST_ACTION(p, ACTION_DROP)) {
+ if (PacketTestAction(p, ACTION_DROP)) {
verdict = NF_DROP;
} else {
switch (nfq_config.mode) {
#ifdef COUNTERS
static inline void UpdateCounters(NFQQueueVars *t, const Packet *p)
{
- if (PACKET_TEST_ACTION(p, ACTION_DROP)) {
+ if (PacketTestAction(p, ACTION_DROP)) {
t->dropped++;
} else {
if (p->flags & PKT_STREAM_MODIFIED) {
/* DROP simply means we do nothing; the WinDivert driver does the rest.
*/
- if (PACKET_TEST_ACTION(p, ACTION_DROP)) {
+ if (PacketTestAction(p, ACTION_DROP)) {
#ifdef COUNTERS
SCMutexLock(&wd_qv->counters_mutex);
wd_qv->dropped++;
goto end;
}
- if ( !(PACKET_TEST_ACTION(p2, ACTION_DROP))) {
+ if (!(PacketTestAction(p2, ACTION_DROP))) {
printf("A \"drop\" action should be set from the flow to the packet: ");
goto end;
}
goto end;
}
- if (!(PACKET_TEST_ACTION(p1, ACTION_DROP))) {
+ if (!(PacketTestAction(p1, ACTION_DROP))) {
printf("A \"drop\" action was set from the flow to the packet "
"which is right, but setting the flag shouldn't disable "
"inspection on the packet in IDS mode");
goto end;
}
- if (!(PACKET_TEST_ACTION(p2, ACTION_DROP))) {
+ if (!(PacketTestAction(p2, ACTION_DROP))) {
printf("A \"drop\" action was set from the flow to the packet "
"which is right, but setting the flag shouldn't disable "
"inspection on the packet in IDS mode");
p->alerts.cnt = 0;
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
- FAIL_IF(p->alerts.cnt != 1 || PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(p->alerts.cnt != 1 || PacketTestAction(p, ACTION_DROP));
p->alerts.cnt = 0;
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
- FAIL_IF(p->alerts.cnt != 1 || PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(p->alerts.cnt != 1 || PacketTestAction(p, ACTION_DROP));
p->alerts.cnt = 0;
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
- FAIL_IF(p->alerts.cnt != 1 || PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(p->alerts.cnt != 1 || PacketTestAction(p, ACTION_DROP));
TimeSetIncrementTime(2);
TimeGet(&p->ts);
p->alerts.cnt = 0;
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
- FAIL_IF(p->alerts.cnt != 1 || !(PACKET_TEST_ACTION(p, ACTION_DROP)));
+ FAIL_IF(p->alerts.cnt != 1 || !(PacketTestAction(p, ACTION_DROP)));
TimeSetIncrementTime(3);
TimeGet(&p->ts);
p->alerts.cnt = 0;
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
- FAIL_IF(p->alerts.cnt != 1 || !(PACKET_TEST_ACTION(p, ACTION_DROP)));
+ FAIL_IF(p->alerts.cnt != 1 || !(PacketTestAction(p, ACTION_DROP)));
TimeSetIncrementTime(10);
TimeGet(&p->ts);
p->alerts.cnt = 0;
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
- FAIL_IF(p->alerts.cnt != 1 || PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(p->alerts.cnt != 1 || PacketTestAction(p, ACTION_DROP));
p->alerts.cnt = 0;
p->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
- FAIL_IF(p->alerts.cnt != 1 || PACKET_TEST_ACTION(p, ACTION_DROP));
+ FAIL_IF(p->alerts.cnt != 1 || PacketTestAction(p, ACTION_DROP));
UTHFreePacket(p);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
/* All should be alerted, none dropped */
SigMatchSignatures(&th_v, de_ctx, det_ctx, p1);
- FAIL_IF(PACKET_TEST_ACTION(p1, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p1, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p1, 10) != 1);
p1->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p2);
- FAIL_IF(PACKET_TEST_ACTION(p2, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p2, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p2, 10) != 1);
p2->action = 0;
SigMatchSignatures(&th_v, de_ctx, det_ctx, p1);
- FAIL_IF(PACKET_TEST_ACTION(p1, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p1, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p1, 10) != 1);
p1->action = 0;
/* Match #4 should be dropped*/
SigMatchSignatures(&th_v, de_ctx, det_ctx, p2);
- FAIL_IF_NOT(PACKET_TEST_ACTION(p2, ACTION_DROP));
+ FAIL_IF_NOT(PacketTestAction(p2, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p2, 10) != 1);
p2->action = 0;
/* Still dropped because timeout not expired */
SigMatchSignatures(&th_v, de_ctx, det_ctx, p1);
- FAIL_IF_NOT(PACKET_TEST_ACTION(p1, ACTION_DROP));
+ FAIL_IF_NOT(PacketTestAction(p1, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p1, 10) != 1);
p1->action = 0;
/* Not dropped because timeout expired */
SigMatchSignatures(&th_v, de_ctx, det_ctx, p1);
- FAIL_IF(PACKET_TEST_ACTION(p1, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p1, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p1, 10) != 1);
/* Ensure that a Threshold entry was installed at the sig */
/* 10000 shouldn't match */
FAIL_IF(PacketAlertCheck(p, 10000) != 0);
/* however, it should have set the drop flag */
- FAIL_IF(!(PACKET_TEST_ACTION(p, ACTION_DROP)));
+ FAIL_IF(!(PacketTestAction(p, ACTION_DROP)));
UTHFreePacket(p);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
FAIL_IF(PacketAlertCheck(p, 1000) != 0);
/* however, it should have set the drop flag */
- FAIL_IF(!(PACKET_TEST_ACTION(p, ACTION_DROP)));
+ FAIL_IF(!(PacketTestAction(p, ACTION_DROP)));
UTHFreePacket(p);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
/* 10000 shouldn't match */
FAIL_IF(PacketAlertCheck(p, 10000) != 0);
/* however, it should have set the drop flag */
- FAIL_IF(!(PACKET_TEST_ACTION(p, ACTION_DROP)));
+ FAIL_IF(!(PacketTestAction(p, ACTION_DROP)));
UTHFreePacket(p);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
/* All should be alerted, none dropped */
SigMatchSignatures(&th_v, de_ctx, det_ctx, p1);
- FAIL_IF(PACKET_TEST_ACTION(p1, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p1, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p1, 10) != 1);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p2);
- FAIL_IF(PACKET_TEST_ACTION(p2, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p2, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p2, 10) != 1);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p3);
- FAIL_IF(PACKET_TEST_ACTION(p3, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p3, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p3, 10) != 1);
p1->action = p2->action = p3->action = 0;
/* p1 still shouldn't be dropped after 2nd alert */
SigMatchSignatures(&th_v, de_ctx, det_ctx, p1);
- FAIL_IF(PACKET_TEST_ACTION(p1, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p1, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p1, 10) != 1);
p1->action = 0;
/* All should be alerted, only p1 must be dropped due to rate_filter*/
SigMatchSignatures(&th_v, de_ctx, det_ctx, p1);
- FAIL_IF_NOT(PACKET_TEST_ACTION(p1, ACTION_DROP));
+ FAIL_IF_NOT(PacketTestAction(p1, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p1, 10) != 1);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p2);
- FAIL_IF(PACKET_TEST_ACTION(p2, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p2, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p2, 10) != 1);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p3);
- FAIL_IF(PACKET_TEST_ACTION(p3, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p3, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p3, 10) != 1);
p1->action = p2->action = p3->action = 0;
/* All should be alerted, none dropped (because timeout expired) */
SigMatchSignatures(&th_v, de_ctx, det_ctx, p1);
- FAIL_IF(PACKET_TEST_ACTION(p1, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p1, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p1, 10) != 1);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p2);
- FAIL_IF(PACKET_TEST_ACTION(p2, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p2, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p2, 10) != 1);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p3);
- FAIL_IF(PACKET_TEST_ACTION(p3, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p3, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p3, 10) != 1);
UTHFreePacket(p3);
TimeGet(&p1->ts);
SigMatchSignatures(&th_v, de_ctx, det_ctx, p1);
/* First packet should be alerted, not dropped */
- FAIL_IF(PACKET_TEST_ACTION(p1, ACTION_DROP));
+ FAIL_IF(PacketTestAction(p1, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p1, 10) != 1);
TimeSetIncrementTime(2);
/* Second packet should be dropped because it considered as "the same pair"
and rate_filter count reached*/
- FAIL_IF_NOT(PACKET_TEST_ACTION(p2, ACTION_DROP));
+ FAIL_IF_NOT(PacketTestAction(p2, ACTION_DROP));
FAIL_IF(PacketAlertCheck(p2, 10) != 1);
UTHFreePacket(p2);