Lines Matching defs:nlh
20 struct fib_rules_ops *ops, struct nlmsghdr *nlh,
198 static int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg)
200 struct fib_rule_hdr *frh = nlmsg_data(nlh);
206 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh)))
215 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy);
283 err = ops->configure(rule, skb, nlh, frh, tb);
322 notify_rule_change(RTM_NEWRULE, rule, ops, nlh, NETLINK_CB(skb).pid);
334 static int fib_nl_delrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg)
336 struct fib_rule_hdr *frh = nlmsg_data(nlh);
342 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh)))
351 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy);
411 notify_rule_change(RTM_DELRULE, rule, ops, nlh,
445 struct nlmsghdr *nlh;
448 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*frh), flags);
449 if (nlh == NULL)
452 frh = nlmsg_data(nlh);
482 if (ops->fill(rule, skb, nlh, frh) < 0)
485 return nlmsg_end(skb, nlh);
488 nlmsg_cancel(skb, nlh);
503 cb->nlh->nlmsg_seq, RTM_NEWRULE,
520 family = rtnl_msg_family(cb->nlh);
549 struct fib_rules_ops *ops, struct nlmsghdr *nlh,
559 err = fib_nl_fill_rule(skb, rule, pid, nlh->nlmsg_seq, event, 0, ops);
566 err = rtnl_notify(skb, pid, ops->nlgroup, nlh, GFP_KERNEL);