[PACKET_IO]add ip hash func
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user