- 论坛徽章:
- 0
|
本帖最后由 cai328560930 于 2015-08-26 15:08 编辑
libpr.so
Pr 模块核心数据结构说明
typedef struct _packet {
uint64_t p_time; /*报文时间戳*/
uint8_t *p_data; /*报文数据指针*/
uint16_t p_len; /*报文长度*/
uint16_t p_wirelen;/*报文实际长度*/
uint8_t p_dir; /*报文入出方向*/
uint32_t ip_hash; /*报文的ip hash值*/
uint32_t flow_hash; /*报文的flow hash值*/
uint32_t tc_hash;/*流控hash值*/
uint16_t p_mactype; /*mac层类型*/
uint16_t p_nettype; /*网络层类型*/
uint16_t p_apptype; /*应用层类型*/
uint8_t p_l4type; /*传输层类型*/
uint8_t *p_mac; /*mac层数据指针*/
uint8_t *p_nh; /*网络层数据指针*/
uint8_t *p_th; /*传输层数据指针*/
uint8_t *p_ah; /*应用层数据指针*/
struct iflowkey f_key;
uint32_t device_id;/*设备id*/
uint32_t card_id;/*板卡id*/
uint32_t interface_id;/*接口id*/
uint32_t link_ID;/*链路id*/
int p_l4hdr_len; /*传输层头部长度*/
int p_ip_content_len; /*ip层数据长度(不包含ip头)*/
int p_app_len;/*应用层数据长度*/
char p_thread; /*对应于抓包线程0,1,2,3*/
char p_is_rflow; /* 报文的方向*/
struct ilink_true_ *p_link; // 报文所属的链路0,1
struct Flow_ *p_flow; // 报文所属的流
uint32_t position_in_flow;
uint32_t flags; /*有ip分片的flag,pm需要,建议flag的宏也放在这个文件定义*/
uint8_t in_port;
uint8_t out_port;
ipaddr src; /*源ip地址*/
ipaddr dst; /*目的ip地址*/
uint16_t sp; /*源端口*/
uint16_t dp; /*目的端口*/
struct iphdr *ip4h;
struct ip6_hdr *ip6h;
struct tcphdr *tcph;
struct udphdr *udph;
struct _packet *prev;
struct _packet *next;
/* packet private data */
void *pm_data; /*pm私有数据*/
//netflow add --nac mode
u_char inputid; //进端口id
u_char outputid; //出端口id
/* packet real data */
uint8_t data[];
} Packet_t;
Pr 模块核心函数说明
/*====================================================
函数名: PM_ETH_proc
功能: 还原报文
入参: Packet_t *p 报文结构体
出参:
返回值: R_OK,R_ERROR
======================================================*/
int to_proto_restore_packet(Packet_t *p);
libpr.so.rar
(47.93 KB, 下载次数: 3)
|
|