nDIP创建新的协议

本文档详细介绍了如何使用nDIP框架创建一个名为my_test_protocol的新网络协议。首先在ndpi_protocol_ids.h中定义协议ID,接着在src/lib/protocols下编写源文件并实现相关函数,包括协议检查和初始化。最后将初始化函数添加到主流程中,并进行编译测试,验证新协议的正确性。
摘要由CSDN通过智能技术生成

1概述

官方的说明书有点老旧,针对最新的框架,创建一个测试的协议监控,作为一个设计模板demo。

2 实现

2.1 定义协议名称

每一个协议都必须在src/include/ndpi_protocol_ids.h头文件中定义一个对应的协议名称,如:

NDPI_PROTOCOL_ELASTICSEARCH         = 330,
NDPI_PROTOCOL_MYTEST                = 331,    //new

331是这个协议的ID,且必须是独一无二的。

2.2 添加协议源文件

a 确定协议名称ID后,需要在src/lib/protocols/下创建一个新的协议源文件,如my_test_protocol.c。

文件开头添加头文件,如下图:

#include "ndpi_protocol_ids.h"

#define NDPI_CURRENT_PROTO NDPI_PROTOCOL_MYTEST

#include "ndpi_api.h"

中间的宏定义可以不用。

在里面需要定义一个入口函数,如:

void ndpi_search_my_test_protocol(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow) 
{
   
  struct ndpi_packet_struct *packet = &ndpi_struct->packet;

  NDPI_LOG_DBG(ndpi_struct, "search my test protocol...\n");

  if (ndpi_check_my_test_protocol(ndpi_struct
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值