linux内核 策略路由之删除

本文探讨Linux内核中关于策略路由的删除操作,重点在于如何依据应用层协议类型匹配并操作对应的fib_rule_ops。
摘要由CSDN通过智能技术生成
4.5 策略规则的删除
        策略规则一般是通过应用层手动添加的,没有垃圾回收机制,只能通过手动删除操作。

功能:

        (1)根据应用层传递的协议类型,获取相对应的fib_rule_ops

        (2)对应用层传参进行解析;
        (3)遍历rule_list链表,删除匹配的fib_rule
static int fib_nl_delrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg)
{
    struct net *net = sock_net(skb->sk);
    struct fib_rule_hdr *frh = nlmsg_data(nlh);
    struct fib_rules_ops *ops = NULL;
    struct fib_rule *rule, *tmp;
    struct nlattr *tb[FRA_MAX+1];
    int err = -EINVAL;

    if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh)))
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值