当前位置: 代码迷 >> 综合 >> dpvs中AF_INET协议族hook
  详细解决方案

dpvs中AF_INET协议族hook

热度:32   发布时间:2024-02-12 07:54:22.0
  • ip_vs_core.c文件中dpvs_init时会注册内部自定义的相关hook处理函数

    //lvs功能初始化,在main函数中调用
    int dp_vs_init(void) {...//注册lvs相关hook处理函数err = inet_register_hooks(dp_vs_ops, NELEMS(dp_vs_ops));if (err != EDPVS_OK) {RTE_LOG(ERR, IPVS, "fail to register hooks: %s\\n", dpvs_strerror(err));goto err_hooks;}...
    }
    
  • lvs内部定义dp_vs_ops

    /*** 注意inet_hook_ops中的priority* 比如在ipv4协议的INET_HOOK_PRE_ROUTING hook点,首先会执行dp_vs_pre_routing,* 接着再会执行dp_vs_in*/
    static struct inet_hook_ops dp_vs_ops[] = {{.af         = AF_INET,.hook       = dp_vs_in,.hooknum    = INET_HOOK_PRE_ROUTING,.priority   = 100,},{.af         = AF_INET,.hook       = dp_vs_pre_routing,.hooknum    = INET_HOOK_PRE_ROUTING,.priority   = 99,},{.af         = AF_INET6,.hook       = dp_vs_in6,.hooknum    = INET_HOOK_PRE_ROUTING,.priority   = 100,},{.af         = AF_INET6,.hook       = dp_vs_pre_routing6,.hooknum    = INET_HOOK_PRE_ROUTING,.priority   = 99,},
    };