17#define WS_LOG_DOMAIN "MATE"
40#define DEFAULT_GOG_EXPIRATION 2.0
48#define DEFAULT_MATE_LIB_PATH "matelib"
50#define MATE_ITEM_ID_SIZE 24
52#define VALUE_TOO ((void*)1)
54#define MateConfigError 65535
59typedef enum _gop_tree_mode_t {
69typedef enum _gop_pdu_tree {
80typedef enum _accept_mode_t {
398extern void initialize_mate_runtime(
mate_config* mc);
406extern GPtrArray* mate_get_pdus(uint32_t framenum);
425extern mate_config* mate_make_config(
const char* filename,
int mate_hfid);
472extern char* add_ranges(
char* range, GPtrArray* range_ptr_arr);
483extern bool mate_load_config(
const char* filename,
mate_config* mc);
486#define YYMALLOCARGTYPE size_t
491void *MateParserAlloc(
void* (*)(YYMALLOCARGTYPE));
496void MateParserFree(
void*,
void (*)(
void *));
Sorted, named list of AVPs (Attribute-Value Pair List).
Definition mate_util.h:110
Per-GOP-configuration runtime state maintained during a live dissection pass.
Definition mate.h:265
GHashTable * gop_index
Definition mate.h:267
GHashTable * gog_index
Definition mate.h:268
unsigned last_id
Definition mate.h:266
List of AVP Lists (LoAL): a named, doubly-linked collection of AVPLs.
Definition mate_util.h:179
Configuration for a MATE GOG (Group of GOPs) type, defining session-level grouping rules.
Definition mate.h:157
int hfid
Definition mate.h:169
int ett_gog_gop
Definition mate.h:182
char * name
Definition mate.h:158
bool show_times
Definition mate.h:166
int hfid_stop_time
Definition mate.h:175
int hfid_gog_num_of_gops
Definition mate.h:170
int hfid_gog_gop
Definition mate.h:171
int ett_attr
Definition mate.h:179
int ett_children
Definition mate.h:181
AVPL * extra
Definition mate.h:162
int hfid_gog_gopstop
Definition mate.h:173
GPtrArray * transforms
Definition mate.h:159
GHashTable * my_hfids
Definition mate.h:168
int ett
Definition mate.h:178
int hfid_gog_gopstart
Definition mate.h:172
gop_tree_mode_t gop_tree_mode
Definition mate.h:165
int hfid_last_time
Definition mate.h:176
int ett_times
Definition mate.h:180
int hfid_start_time
Definition mate.h:174
LoAL * keys
Definition mate.h:161
double expiration
Definition mate.h:164
Configuration for a MATE GOP (Group of PDUs) type, defining grouping and lifecycle rules.
Definition mate.h:121
bool drop_unassigned
Definition mate.h:135
bool show_times
Definition mate.h:137
double lifetime
Definition mate.h:133
int hfid
Definition mate.h:140
GHashTable * my_hfids
Definition mate.h:139
int ett_children
Definition mate.h:150
int hfid_start_time
Definition mate.h:141
int hfid_gop_num_pdus
Definition mate.h:145
GPtrArray * transforms
Definition mate.h:123
double idle_timeout
Definition mate.h:132
const char * on_pdu
Definition mate.h:124
int ett_attr
Definition mate.h:148
int hfid_gop_pdu
Definition mate.h:144
AVPL * start
Definition mate.h:127
int ett_times
Definition mate.h:149
int ett
Definition mate.h:147
AVPL * extra
Definition mate.h:129
gop_pdu_tree_t pdu_tree_mode
Definition mate.h:136
char * name
Definition mate.h:122
AVPL * key
Definition mate.h:126
double expiration
Definition mate.h:131
int hfid_last_time
Definition mate.h:143
AVPL * stop
Definition mate.h:128
int hfid_stop_time
Definition mate.h:142
Configuration for a MATE PDU type, defining extraction rules and assignment criteria.
Definition mate.h:89
GPtrArray * transport_ranges
Definition mate.h:109
GHashTable * hfids_attr
Definition mate.h:103
int hfid_proto
Definition mate.h:94
avpl_match_mode criterium_match_mode
Definition mate.h:112
int ett_attr
Definition mate.h:101
bool discard
Definition mate.h:105
int hfid_pdu_rel_time
Definition mate.h:95
int ett
Definition mate.h:100
int hfid
Definition mate.h:93
AVPL * criterium
Definition mate.h:114
bool drop_unassigned
Definition mate.h:107
accept_mode_t criterium_accept_mode
Definition mate.h:113
char * name
Definition mate.h:90
int hfid_pdu_time_in_gop
Definition mate.h:96
bool last_extracted
Definition mate.h:106
GPtrArray * transforms
Definition mate.h:91
GPtrArray * payload_ranges
Definition mate.h:110
GHashTable * my_hfids
Definition mate.h:98
Default settings for GOG configurations.
Definition mate.h:234
bool show_times
Definition mate.h:236
gop_tree_mode_t gop_tree_mode
Definition mate.h:237
double expiration
Definition mate.h:235
Default settings for GOP configurations.
Definition mate.h:224
gop_pdu_tree_t pdu_tree_mode
Definition mate.h:228
bool drop_unassigned
Definition mate.h:230
double expiration
Definition mate.h:225
double lifetime
Definition mate.h:227
double idle_timeout
Definition mate.h:226
bool show_times
Definition mate.h:229
Default settings for PDU configurations.
Definition mate.h:215
avpl_match_mode match_mode
Definition mate.h:216
avpl_replace_mode replace_mode
Definition mate.h:217
bool discard
Definition mate.h:220
bool drop_unassigned
Definition mate.h:219
bool last_extracted
Definition mate.h:218
Default values applied to newly created PDU, GOP, and GOG configurations.
Definition mate.h:212
Tracks the source location of the currently executing MATE configuration statement.
Definition mate.h:256
unsigned linenum
Definition mate.h:258
char * filename
Definition mate.h:257
Master MATE configuration, aggregating all PDU, GOP, and GOG type definitions.
Definition mate.h:189
unsigned num_fields_wanted
Definition mate.h:193
GPtrArray * config_stack
Definition mate.h:248
int ett_root
Definition mate.h:208
int dbg_lvl
Definition mate.h:243
GHashTable * gopcfgs
Definition mate.h:199
int dbg_pdu_lvl
Definition mate.h:244
GArray * wanted_hfids
Definition mate.h:192
int dbg_gop_lvl
Definition mate.h:245
char * mate_lib_path
Definition mate.h:196
GHashTable * pducfgs
Definition mate.h:198
GHashTable * gogcfgs
Definition mate.h:200
GString * config_error
Definition mate.h:249
int hfid_mate
Definition mate.h:190
int dbg_gog_lvl
Definition mate.h:246
FILE * dbg_facility
Definition mate.h:195
GArray * hfrs
Definition mate.h:207
GPtrArray * pducfglist
Definition mate.h:203
GHashTable * transfs
Definition mate.h:201
GHashTable * gogs_by_gopname
Definition mate.h:205
GArray * ett
Definition mate.h:209
GHashTable * gops_by_pduname
Definition mate.h:204
A MATE GOG (Group of GOPs) instance tracking a correlated session of GOPs.
Definition mate.h:356
unsigned last_n
Definition mate.h:361
GPtrArray * gog_keys
Definition mate.h:378
double start_time
Definition mate.h:368
mate_gop * last_gop
Definition mate.h:373
AVPL * avpl
Definition mate.h:360
double idle_expiration
Definition mate.h:366
mate_gop * gops
Definition mate.h:372
double release_time
Definition mate.h:369
int num_of_gops
Definition mate.h:375
uint32_t id
Definition mate.h:357
double expiration
Definition mate.h:365
bool released
Definition mate.h:363
int num_of_counting_gops
Definition mate.h:376
const mate_cfg_gog * cfg
Definition mate.h:358
double last_time
Definition mate.h:370
int num_of_released_gops
Definition mate.h:377
A MATE GOP (Group of PDUs) instance tracking a correlated sequence of PDUs.
Definition mate.h:324
bool released
Definition mate.h:349
double last_time
Definition mate.h:342
double idle_expiration
Definition mate.h:336
double time_to_die
Definition mate.h:337
int num_of_after_release_pdus
Definition mate.h:345
double time_to_timeout
Definition mate.h:338
uint32_t id
Definition mate.h:325
double expiration
Definition mate.h:335
unsigned last_n
Definition mate.h:330
int num_of_pdus
Definition mate.h:344
mate_pdu * last_pdu
Definition mate.h:347
char * gop_key
Definition mate.h:328
mate_pdu * pdus
Definition mate.h:346
double start_time
Definition mate.h:340
AVPL * avpl
Definition mate.h:329
mate_gop * next
Definition mate.h:333
const mate_cfg_gop * cfg
Definition mate.h:326
mate_gog * gog
Definition mate.h:332
double release_time
Definition mate.h:341
A single MATE PDU instance created from a dissected packet.
Definition mate.h:301
double rel_time
Definition mate.h:308
bool is_stop
Definition mate.h:316
const mate_cfg_pdu * cfg
Definition mate.h:303
bool after_release
Definition mate.h:317
bool first
Definition mate.h:314
AVPL * avpl
Definition mate.h:305
bool is_start
Definition mate.h:315
uint32_t frame
Definition mate.h:307
double time_in_gop
Definition mate.h:312
mate_gop * gop
Definition mate.h:310
mate_pdu * next
Definition mate.h:311
uint32_t id
Definition mate.h:302
Global MATE runtime state for a single dissection pass over a capture file.
Definition mate.h:275
GHashTable * frames
Definition mate.h:280
GHashTable * pdu_last_ids
Definition mate.h:284
GHashTable * gopcfg_rd
Definition mate.h:285
GHashTable * gog_last_ids
Definition mate.h:286
unsigned highest_analyzed_frame
Definition mate.h:278
double now
Definition mate.h:277
GHashTable * gogs
Definition mate.h:282
unsigned current_items
Definition mate.h:276
GHashTable * gops
Definition mate.h:281
Represents the metadata and indexing information for a single captured frame.
Definition packet_info.h:43
Union sized to the largest of the three MATE item types, used for generic allocation and type-punning...
Definition mate.h:385
mate_gop gop
Definition mate.h:387
mate_gog gog
Definition mate.h:388
mate_pdu pdu
Definition mate.h:386