perf: 优化data packet的解析

This commit is contained in:
luwenpeng
2023-11-08 11:01:03 +08:00
parent 8fe574633b
commit 07f41fc298
4 changed files with 136 additions and 152 deletions

View File

@@ -60,28 +60,23 @@ struct layer_result
enum layer_type type;
};
struct layer_results
struct data_packet
{
struct layer_result layers[16];
uint16_t layers_used;
uint16_t layers_size;
};
struct data_packet
{
struct layer_results results;
const void *data_ptr;
uint64_t trace_id;
};
// return most inner payload
// return innermost payload
const void *data_packet_parse(struct data_packet *handler, const void *data, size_t length, uint64_t trace_id);
// return 0 : success
// return -1 : error
int data_packet_get_innermost_tuple4(struct data_packet *handler, struct four_tuple *addr);
int data_packet_get_outermost_tuple4(struct data_packet *handler, struct four_tuple *addr);
int data_packet_get_innermost_four_tuple(struct data_packet *handler, struct four_tuple *addr);
int data_packet_get_outermost_four_tuple(struct data_packet *handler, struct four_tuple *addr);
// return 0 : success
// return -1 : error