Go to the documentation of this file.
24 #ifndef SURICATA_APP_LAYER_FRAMES_H
25 #define SURICATA_APP_LAYER_FRAMES_H
30 #define FRAME_STREAM_TYPE 63
36 #define FRAME_FLAG_TX_ID_SET BIT_U8(FRAME_FLAGE_TX_ID_SET)
38 #define FRAME_FLAG_ENDS_AT_EOF BIT_U8(FRAME_FLAGE_ENDS_AT_EOF)
40 #define FRAME_FLAG_LOGGED BIT_U8(FRAME_FLAGE_LOGGED)
56 #define FRAMES_STATIC_CNT 3
80 const uint8_t *frame_start,
const int64_t
len,
int dir, uint8_t frame_type);
82 const uint32_t frame_start_rel,
const int64_t
len,
int dir, uint8_t frame_type);
84 const uint64_t frame_start,
const int64_t
len,
int dir, uint8_t frame_type);
uint64_t inspect_progress
void FrameConfigInit(void)
FramesContainer * AppLayerFramesSetupContainer(Flow *f)
Frame * FrameGetLastOpenByType(Frames *frames, const uint8_t frame_type)
void FramesFree(Frames *frames)
void AppLayerFramesSlide(Flow *f, const uint32_t slide, const uint8_t direction)
struct FramesContainer FramesContainer
Frame * FrameGetById(Frames *frames, const int64_t id)
void FrameConfigEnableAll(void)
Frame * AppLayerFrameNewByAbsoluteOffset(Flow *f, const StreamSlice *stream_slice, const uint64_t frame_start, const int64_t len, int dir, uint8_t frame_type)
create new frame using the absolute offset from the start of the stream
void AppLayerFrameAddEventById(Flow *f, const int dir, const FrameId id, uint8_t e)
void AppLayerFrameSetTxIdById(Flow *f, const int dir, const FrameId id, uint64_t tx_id)
FrameId AppLayerFrameGetId(Frame *r)
void AppLayerFrameAddEvent(Frame *frame, uint8_t e)
void AppLayerFrameDump(Flow *f)
void AppLayerFrameSetTxId(Frame *r, uint64_t tx_id)
Frame * AppLayerFrameNewByRelativeOffset(Flow *f, const StreamSlice *stream_slice, const uint32_t frame_start_rel, const int64_t len, int dir, uint8_t frame_type)
create new frame using a relative offset from the start of the stream slice
#define FRAMES_STATIC_CNT
Frame * AppLayerFrameGetById(Flow *f, const int direction, const FrameId frame_id)
FramesContainer * AppLayerFramesGetContainer(Flow *f)
void FramesPrune(Flow *f, Packet *p)
void AppLayerFrameSetLength(Frame *frame, int64_t len)
Frame * AppLayerFrameNewByPointer(Flow *f, const StreamSlice *stream_slice, const uint8_t *frame_start, const int64_t len, int dir, uint8_t frame_type)
create new frame using a pointer to start of the frame
void FrameConfigEnable(const AppProto p, const uint8_t type)
Frame * FrameGetByIndex(Frames *frames, const uint32_t idx)
Frame sframes[FRAMES_STATIC_CNT]
void AppLayerFrameSetLengthById(Flow *f, const int dir, const FrameId id, int64_t len)
@ FRAME_FLAGE_ENDS_AT_EOF
Frame * AppLayerFrameGetLastOpenByType(Flow *f, const int direction, const uint8_t frame_type)