suricata
packet.c File Reference
#include "packet.h"
#include "pkt-var.h"
#include "flow.h"
#include "host.h"
#include "util-profiling.h"
#include "util-validate.h"
#include "action-globals.h"
#include "app-layer-events.h"
Include dependency graph for packet.c:

Go to the source code of this file.

Macros

#define CLEAR_ADDR(a)
 
#define PACKET_RESET_ACTION(p)   (p)->action = 0
 
#define RESET_PKT_LEN(p)   ((p)->pktlen = 0)
 

Functions

void PacketDrop (Packet *p, const uint8_t action, enum PacketDropReason r)
 issue drop action More...
 
bool PacketCheckAction (const Packet *p, const uint8_t a)
 
void PacketInit (Packet *p)
 Initialize a packet structure for use. More...
 
void PacketReleaseRefs (Packet *p)
 
void PacketReinit (Packet *p)
 Recycle a packet structure for reuse. More...
 
void PacketRecycle (Packet *p)
 
void PacketDestructor (Packet *p)
 Cleanup a packet so that we can free it. No memset needed.. More...
 

Macro Definition Documentation

◆ CLEAR_ADDR

#define CLEAR_ADDR (   a)
Value:
do { \
(a)->family = 0; \
(a)->addr_data32[0] = 0; \
(a)->addr_data32[1] = 0; \
(a)->addr_data32[2] = 0; \
(a)->addr_data32[3] = 0; \
} while (0)

◆ PACKET_RESET_ACTION

#define PACKET_RESET_ACTION (   p)    (p)->action = 0

◆ RESET_PKT_LEN

#define RESET_PKT_LEN (   p)    ((p)->pktlen = 0)

Function Documentation

◆ PacketCheckAction()

bool PacketCheckAction ( const Packet p,
const uint8_t  a 
)

Definition at line 49 of file packet.c.

References Packet_::action, likely, and Packet_::root.

Referenced by AlertJsonHeader(), CaptureStatsUpdate(), EveAddVerdict(), RejectSendIPv4ICMP(), RejectSendIPv4TCP(), RejectSendIPv6ICMP(), and RejectSendIPv6TCP().

Here is the caller graph for this function:

◆ PacketDestructor()

void PacketDestructor ( Packet p)

Cleanup a packet so that we can free it. No memset needed..

Definition at line 152 of file packet.c.

References PacketAlerts_::alerts, Packet_::alerts, Packet_::app_layer_events, AppLayerDecoderEventsFreeEvents(), PACKET_FREE_EXTDATA, PACKET_PROFILING_RESET, PacketAlertFree(), PacketReleaseRefs(), Packet_::persistent, Packet_::pktvar, PktVarFree(), SCSpinDestroy, and Packet_::tunnel_lock.

Referenced by PacketFree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PacketDrop()

void PacketDrop ( Packet p,
const uint8_t  action,
enum PacketDropReason  r 
)

issue drop action

Set drop (+reject) flags in both current and root packet.

Parameters
actionaction bit flags. Must be limited to ACTION_DROP_REJECT|ACTION_ALERT

Definition at line 33 of file packet.c.

References Packet_::action, ACTION_ALERT, ACTION_DROP_REJECT, DEBUG_VALIDATE_BUG_ON, Packet_::drop_reason, PKT_DROP_REASON_INNER_PACKET, PKT_DROP_REASON_NOT_SET, and Packet_::root.

Referenced by ExceptionPolicyParse().

Here is the caller graph for this function:

◆ PacketInit()

void PacketInit ( Packet p)

Initialize a packet structure for use.

Definition at line 63 of file packet.c.

References PacketAlerts_::alerts, Packet_::alerts, Packet_::livedev, PacketAlertCreate(), Packet_::persistent, SCSpinInit, and Packet_::tunnel_lock.

Referenced by PacketGetFromAlloc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PacketRecycle()

void PacketRecycle ( Packet p)

Definition at line 143 of file packet.c.

References PacketReinit(), and PacketReleaseRefs().

Here is the call graph for this function:

◆ PacketReinit()

void PacketReinit ( Packet p)

◆ PacketReleaseRefs()

void PacketReleaseRefs ( Packet p)

Definition at line 70 of file packet.c.

Referenced by PacketDestructor(), and PacketRecycle().

Here is the caller graph for this function:
addr_data32
#define addr_data32
Definition: decode.h:118