- 论坛徽章:
- 0
|
libidf.so
协议识别模块核心数据结构说明
typedef struct _idf_ip_address
{
union
{
struct in_addr ip_4; //IPV4地址 (主机序 )
struct in6_addr ip_6; //IPV6地址
}addr;
#define ip4_addr addr.ip_4
#define ip6_addr addr.ip_6
UINT8 ip_type; //地址类型取值为IDF_IPV4或IDF_IPV6
}IDF_IP_ADDRESS;//IP地址
typedef struct _idf_info
{
UINT8 l4_type; //包的类型IPPROTO_TCP 或 IPPROTO_UDP, 由外部填写
UINT8 *l4; //指向tcp 或udp头, 由外部填写
UINT8 *l5; //指向负载头部, 由外部填写
UINT32 l5_len; //负载的长度, 由外部填写
UINT32 l4_hdr_len; //tcp或udp头的长度, 由外部填写
UINT16 sport; //源端口, 网络序, 由外部填写
UINT16 dport; //目的端口, 网络序,由外部填写
IDF_IP_ADDRESS sip; //源IP, 由外部填写
IDF_IP_ADDRESS dip; //目的IP , 由外部填写
UINT32 pkt_count; //流中报文计数, 从0 开始为第一个报文,外部填写
//-----------------------------------------------
UINT32 id; // icare 调用
UINT32 proto_id; //准确的协议号, 外部需获取的协议号, 结果
UINT32 s_proto_id; //sencond准确的协议号, 外部需获取的协议号, 结果
UINT32 terminal_id; //终端类型
//------------------------------------------------
INT8 status[IDF_MAX_STATU_LEN]; //状态机的状态, 内部使用
UINT32 payload_count; //负载的计数值
UINT8 store_priority; //存储的优先级, 内部使用
UINT8 state; //符号标志
UINT8 buffer[IDF_MAX_BUFFER_LEN]; // 上下报文关联比较的缓存, 内部使用
#ifndef FOR_AP
UINT8 bitmap[IDF_MAX_BITMAP_LEN]; //AC匹配使用的位图,内部使用
#else
UINT8 *bitmap;
#endif
}IDF_INFO;
协议识别模块核心函数说明
/*====================================================
函数名: idf
功能: 对外接口, 获取协议号
入参: *idf_info : 待检测数据的结构体
出参:
返回值: R_OK, R_ERROR
======================================================*/
INT32 idf(IDF_INFO *idf_info);
libidf.so.rar
(87.87 KB, 下载次数: 2)
|
|