[PACKET_IO]add ip hash func

This commit is contained in:
liuwentan
2022-08-11 21:25:29 +08:00
parent 0ed9a0ccca
commit 5c7c2a4052
10 changed files with 160 additions and 56 deletions

View File

@@ -19,6 +19,15 @@ extern "C"
#include <stdint.h>
#include <pthread.h>
#ifndef DLT_EN10MB
#define DLT_EN10MB 1
#endif
#define LINKTYPE_ETHERNET DLT_EN10MB
#define ETHERNET_TYPE_IP 0x0800
#define ETHERNET_TYPE_IPV6 0x86dd
#define PKT_QUEUE_MAX_NUM 256
#define CUSTOM_ZONE_LEN 64
@@ -49,6 +58,9 @@ struct pio_packet {
/* pkt payload pointer */
void *pkt_payload;
/* data link type */
uint32_t data_link;
/* reference counts */
uint32_t ref_cnt;
@@ -64,14 +76,6 @@ struct pio_packet_queue {
pthread_mutex_t mutex_q;
};
int packet_copy_data(uint8_t *ptr, const uint8_t *pkt_data, uint32_t pkt_len);
void pio_packet_enqueue(struct pio_packet_queue *, struct pio_packet *);
struct pio_packet *pio_packet_dequeue(struct pio_packet_queue *);
void release_pio_packet_queue(struct pio_packet_queue *);
/**
* @brief string copy safely,
*
@@ -79,6 +83,21 @@ void release_pio_packet_queue(struct pio_packet_queue *);
*/
int strncpy_safe(char *dst, const char *src, size_t dst_size);
int packet_copy_data(uint8_t *ptr, const uint8_t *pkt_data, uint32_t pkt_len);
/**
* @brief ip hash function for struct pio_packet, 2 tuple(sip/dip) hash
*
* @retval hash value
*/
uint64_t pio_packet_hash(struct pio_packet *p);
void pio_packet_enqueue(struct pio_packet_queue *, struct pio_packet *);
struct pio_packet *pio_packet_dequeue(struct pio_packet_queue *);
void release_pio_packet_queue(struct pio_packet_queue *);
#ifdef __cpluscplus
}
#endif