---
title: 数据结构说明
description: "- 多模规则匹配引擎枚举变量："
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/252RC1/ida/kunpeng_datadistribution_01_0011.html
sourcePath: /source/zh/kunpengboostkithistory/252RC1/ida/kunpeng_datadistribution_01_0011.html
indexId: f38ed48324b885e3c52b3aaf59cc79a4303e018cf314fb12fceca961f458db5582
---
# 数据结构说明

- 多模规则匹配引擎枚举变量：

```
typedef enum {
MMPM_MATCHER_NONE = 0,
MMPM_MATCHER_TYPE_HASH,
MMPM_MATCHER_TYPE_AC,
MMPM_MATCHER_TYPE_MAX
} mmpm_matcher_type;
```


- 多模规则匹配错误码：

```
#define MMPM_SUCCESS            0
#define MMPM_INVALID_PARA       (-1)
#define MMPM_MALLOC_FAIL        (-2)
#define MMPM_BUILT_ALREADY      (-3)
#define MMPM_FIND_FAIL          (-4)
#define MMPM_INIT_RWLOCK_FAIL   (-5)
#define MMPM_MEMCPY_FAIL        (-6)
#define MMPM_NOT_SUPPORTED      (-7)
```


**表1 错误码说明**

| 错误码 | 返回值 | 解释 | 解决办法 |
| --- | --- | --- | --- |
| MMPM\_INVALID\_PARA | \-1 | 传入空指针，或者传入不合法的规则。例：传入的key\_len为0，或者与key的实际长度不一致 | 根据报错的函数，检查对应的入参是否合法 |
| MMPM\_MALLOC\_FAIL | \-2 | 堆内存申请失败 | 检查系统内存是否被其他程序大量占用；检查构建匹配引擎时是否传入过多规则 |
| MMPM\_BUILT\_ALREADY | \-3 | 匹配引擎已构建成功，禁止重复构建 | 检查是否存在多次构建匹配引擎的错误使用方式 |
| MMPM\_FIND\_FAIL | \-4 | 规则匹配失败，匹配引擎中不存在该规则 | \- |
| MMPM\_INIT\_RWLOCK\_FAIL | \-5 | 在初始化Hash匹配引擎时，锁初始化失败 | 检查系统内存是否被其他程序大量占用 |
| MMPM\_MEMCPY\_FAIL | \-6 | 内存复制失败 | \- |
| MMPM\_NOT\_SUPPORTED | \-7 | 在移除规则函数中传入AC匹配引擎的句柄 | 检查是否有尝试移除AC匹配引擎相关规则的行为 |


- 多模规则匹配，规则数据结构：

```
typedef struct {
uint32_t alias; /* 规则别名，可重复 */
uint32_t key_len;
uint8_t *key; /* 规则匹配key，唯一标识 */
} mmpm_rule_t;
```


- 多模规则匹配，匹配引擎句柄数据结构：

```
typedef struct {
void *mmpm_matcher; /* 匹配引擎句柄 */
mmpm_matcher_type type; /* 匹配引擎种类 */
bool is_built; /* 匹配引擎是否已构建 */
} mmpm_handler_t;
```
