4.5 策略规则的删除
策略规则一般是通过应用层手动添加的,没有垃圾回收机制,只能通过手动删除操作。
(3)遍历rule_list链表,删除匹配的fib_rule
策略规则一般是通过应用层手动添加的,没有垃圾回收机制,只能通过手动删除操作。
功能:
(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)))