鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

数据结构说明

  • 多模规则匹配引擎枚举变量:
    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;