KHSEL库已优化函数如表 1 KHSEL库已优化函数所示。
| 名称 | 说明 |
|---|---|
| KHSEL_BuildLily | Hyperscan新增单字节短规则匹配的编译函数。 |
| KHSEL_LilyRunExec | Hyperscan新增单字节短规则匹配的运行函数。 |
| KHSEL_BuildLilyForTeddy | Hyperscan新增2~4字节短规则匹配的编译函数。 |
| KHSEL_LilyForTeddyRunExec | Hyperscan新增2~4字节短规则匹配的运行函数。 |
KHSEL函数源码已集成到Hyperscan仓库dev分支中,位于src\kunpeng-enhanced目录下,不再需要单独安装KHSEL相关软件包。
函数功能
基于规则集内的单字节短规则进行规则编译,输出编译后的mask。
函数定义
std::vector<u8> KHSEL_BuildLily(std::map<char, lilyReport> &lily, std::vector<u32> &reportVec, std::vector<u32> &ekeyVec); 参数说明
| 参数名 | 描述 | 取值范围 | 输入/输出 |
|---|---|---|---|
| lily | 短字节规则。 | C++ map对象,无非空限制 | 输入 |
| reportVec | 短字节规则对应的reportID。 | C++ vector对象,无非空限制 | 输入 |
| ekeyVec | 短字节规则对应的ekey。 | C++ vector对象,无非空限制 | 输入 |
返回值
规则编译后的输出。
函数功能
基于编译输出的mask,进行运行期输入数据的匹配。
函数定义
hs_error_t KHSEL_LilyRunExec(const struct RoseEngine *rose, hs_scratch_t *scratch); 参数说明
| 参数名 | 描述 | 取值范围 | 输入/输出 |
|---|---|---|---|
| rose | RoseEngine对象,保存编译期输出结果,作为运行期输入。 | 非空 | 输入 |
| scratch | 输入数据所需的临时内存空间。 | 非空 | 输入 |
返回值
匹配结果的错误码。
函数功能
基于规则集内的2~4字节短规则进行规则编译,输出编译后的mask。
函数定义
ue2::bytecode_ptr<lilyTeddy> KHSEL_BuildLilyForTeddy(std::map<std::string, lilyReport> &lilyForTeddy,
std::priority_queue<LilyForTeddyPair, std::vector<LilyForTeddyPair>, CompareStringLength> &lilyForTeddyPQ,
std::vector<u32> &reportVec, std::vector<u32> &ekeyVec, std::vector<u32> &lenVec);参数说明
| 参数名 | 描述 | 取值范围 | 输入/输出 |
|---|---|---|---|
| lilyForTeddy | 2~4字节规则。 | C++ map对象,无非空限制 | 输入 |
| lilyForTeddyPQ | 2~4字节规则依规则长度排序的优先队列。 | C++ priority_queue对象,无非空限制 | 输入 |
| reportVec | 2~4字节规则对应的reportID。 | C++ vector对象,无非空限制 | 输入 |
| ekeyVec | 2~4字节规则对应的ekey。 | C++ vector对象,无非空限制 | 输入 |
| lenVec | 2~4字节规则对应的规则长度。 | C++ vector对象,无非空限制 | 输入 |
返回值
规则编译后的输出。
函数功能
基于编译输出的mask,进行运行期输入数据的匹配。
函数定义
hs_error_t KHSEL_LilyForTeddyRunExec(const struct RoseEngine *rose, hs_scratch_t *scratch);参数说明
| 参数名 | 描述 | 取值范围 | 输入/输出 |
|---|---|---|---|
| rose | RoseEngine对象,保存编译期输出结果,作为运行期输入。 | 非空 | 输入 |
| scratch | 输入数据所需的临时内存空间。 | 非空 | 输入 |
返回值
匹配结果的错误码。
| 文档版本 | 发布日期 | 修改说明 |
|---|---|---|
| 01 | 2026-03-30 | 第一次正式发布,基于鲲鹏920新型号处理器优化Hyperscan 2~4字节短字节规则匹配算法,新增KHSEL_BuildLilyForTeddy、KHSEL_LilyForTeddyRunExec算法。 |