linux内核 策略路由之初始化

这篇博客探讨了Linux内核中策略路由的初始化过程,包括对fib_rules_ops的操作函数合理性检查,以及如何添加local/main/default规则到rules_list链表,确保默认路由设置。
摘要由CSDN通过智能技术生成
4.2 路由策略初始化
        路由策略的初始化,主要分为通用策略规则初始化和协议相关的策略规则初始化。
4.2.1 通用策略规则初始化
        功能:注册通知链,包括设备注册和注销时的通知。

static int __init fib_rules_init(void)
{
    int err;
    rtnl_register(PF_UNSPEC, RTM_NEWRULE, fib_nl_newrule, NULL);
    rtnl_register(PF_UNSPEC, RTM_DELRULE, fib_nl_delrule, NULL);
    rtnl_register(PF_UNSPEC, RTM_GETRULE, NULL, fib_nl_dumprule);

    err = register_pernet_subsys(&fib_rules_net_ops);
    if (err < 0)
        goto fail;

    //该通知链只处理NETDEV_REGISTER、NETDEV_UNREGISTER两个事件。
    //(1)设备注册时,遍历策略规则,对于匹配的规则,将该策略规则的index赋值;
    //(2)设备注销时,对于匹配的规则,将策略规则的index值设为-1。
    err = register_netdevice_notifier(&fib_rules_notifier);
    if (err < 0)
        goto fail_unregister;

    return 0;

fail_unregister:
    unregister_pernet_subsys(&fib_rules_net_ops);
fail:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值