Lines Matching refs:frh
243 static int validate_rulemsg(struct fib_rule_hdr *frh, struct nlattr **tb, in validate_rulemsg() argument
248 if (frh->src_len) in validate_rulemsg()
250 frh->src_len > (ops->addr_size * 8) || in validate_rulemsg()
254 if (frh->dst_len) in validate_rulemsg()
256 frh->dst_len > (ops->addr_size * 8) || in validate_rulemsg()
268 struct fib_rule_hdr *frh = nlmsg_data(nlh); in fib_nl_newrule() local
274 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) in fib_nl_newrule()
277 ops = lookup_rules_ops(net, frh->family); in fib_nl_newrule()
283 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy); in fib_nl_newrule()
287 err = validate_rulemsg(frh, tb, ops); in fib_nl_newrule()
333 rule->action = frh->action; in fib_nl_newrule()
334 rule->flags = frh->flags; in fib_nl_newrule()
335 rule->table = frh_get_table(frh, tb); in fib_nl_newrule()
371 err = ops->configure(rule, skb, frh, tb); in fib_nl_newrule()
425 struct fib_rule_hdr *frh = nlmsg_data(nlh); in fib_nl_delrule() local
431 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) in fib_nl_delrule()
434 ops = lookup_rules_ops(net, frh->family); in fib_nl_delrule()
440 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy); in fib_nl_delrule()
444 err = validate_rulemsg(frh, tb, ops); in fib_nl_delrule()
449 if (frh->action && (frh->action != rule->action)) in fib_nl_delrule()
452 if (frh_get_table(frh, tb) && in fib_nl_delrule()
453 (frh_get_table(frh, tb) != rule->table)) in fib_nl_delrule()
476 if (!ops->compare(rule, frh, tb)) in fib_nl_delrule()
551 struct fib_rule_hdr *frh; in fib_nl_fill_rule() local
553 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*frh), flags); in fib_nl_fill_rule()
557 frh = nlmsg_data(nlh); in fib_nl_fill_rule()
558 frh->family = ops->family; in fib_nl_fill_rule()
559 frh->table = rule->table; in fib_nl_fill_rule()
564 frh->res1 = 0; in fib_nl_fill_rule()
565 frh->res2 = 0; in fib_nl_fill_rule()
566 frh->action = rule->action; in fib_nl_fill_rule()
567 frh->flags = rule->flags; in fib_nl_fill_rule()
571 frh->flags |= FIB_RULE_UNRESOLVED; in fib_nl_fill_rule()
577 frh->flags |= FIB_RULE_IIF_DETACHED; in fib_nl_fill_rule()
584 frh->flags |= FIB_RULE_OIF_DETACHED; in fib_nl_fill_rule()
602 if (ops->fill(rule, skb, frh) < 0) in fib_nl_fill_rule()