|
suricata
|
#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 "rust.h"#include "app-layer-events.h"
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... | |
| void | SCPacketSetReleasePacket (Packet *p, void(*ReleasePacket)(Packet *p)) |
| Set a packet release function. More... | |
| void | SCPacketSetLiveDevice (Packet *p, LiveDevice *device) |
| Set a packets live device. More... | |
| void | SCPacketSetDatalink (Packet *p, int datalink) |
| Set a packets data link type. More... | |
| void | SCPacketSetTime (Packet *p, SCTime_t ts) |
| Set the timestamp for a packet. More... | |
| void | SCPacketSetSource (Packet *p, enum PktSrcEnum source) |
| Set packet source. More... | |
| #define CLEAR_ADDR | ( | a | ) |
| #define PACKET_RESET_ACTION | ( | p | ) | (p)->action = 0 |
| #define RESET_PKT_LEN | ( | p | ) | ((p)->pktlen = 0) |
| bool PacketCheckAction | ( | const Packet * | p, |
| const uint8_t | a | ||
| ) |
Definition at line 50 of file packet.c.
References Packet_::action, likely, and Packet_::root.
Referenced by AlertJsonHeader(), CaptureStatsUpdate(), EveAddVerdict(), RejectSendIPv4ICMP(), RejectSendIPv4TCP(), RejectSendIPv6ICMP(), and RejectSendIPv6TCP().

| void PacketDestructor | ( | Packet * | p | ) |
Cleanup a packet so that we can free it. No memset needed..
Definition at line 160 of file packet.c.
References PacketAlerts_::alerts, Packet_::alerts, Packet_::app_layer_events, PACKET_FREE_EXTDATA, PACKET_PROFILING_RESET, PacketAlertFree(), PacketReleaseRefs(), Packet_::persistent, Packet_::pktvar, PktVarFree(), SCAppLayerDecoderEventsFreeEvents(), SCSpinDestroy, and Packet_::tunnel_lock.
Referenced by PacketFree().


| void PacketDrop | ( | Packet * | p, |
| const uint8_t | action, | ||
| enum PacketDropReason | r | ||
| ) |
issue drop action
Set drop (+reject) flags in both current and root packet.
| action | action bit flags. Must be limited to ACTION_DROP_REJECT|ACTION_ALERT |
Definition at line 34 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.
| void PacketInit | ( | Packet * | p | ) |
Initialize a packet structure for use.
Definition at line 64 of file packet.c.
References PacketAlerts_::alerts, Packet_::alerts, Packet_::livedev, PacketAlertCreate(), Packet_::persistent, SCSpinInit, and Packet_::tunnel_lock.
Referenced by PacketGetFromAlloc().


| void PacketRecycle | ( | Packet * | p | ) |
Definition at line 151 of file packet.c.
References PacketReinit(), and PacketReleaseRefs().

| void PacketReinit | ( | Packet * | p | ) |
Recycle a packet structure for reuse.
Definition at line 81 of file packet.c.
References Packet_::app_update_direction, CLEAR_ADDR, Packet_::datalink, Packet_::dp, Packet_::drop_reason, Packet_::dst, Packet_::flags, Packet_::flowflags, PACKET_FREE_EXTDATA, PACKET_RESET_ACTION, PacketTunnelNone, Packet_::pkt_hooks, Packet_::pkt_src, Packet_::pktvar, PktVarFree(), Packet_::proto, Packet_::recursion_level, SCTIME_INIT, Packet_::sig_mask, Packet_::sp, Packet_::src, Packet_::ts, Packet_::ttype, Packet_::vlan_id, and Packet_::vlan_idx.
Referenced by PacketRecycle().


| void PacketReleaseRefs | ( | Packet * | p | ) |
Definition at line 71 of file packet.c.
Referenced by PacketDestructor(), and PacketRecycle().

|
inline |
Set a packets data link type.
Definition at line 183 of file packet.c.
References Packet_::datalink.
|
inline |
|
inline |