Lines Matching refs:frh
391 struct fib_rule_hdr *frh, in rule_find() argument
460 if (!ops->compare(r, frh, tb)) in rule_find()
497 struct fib_rule_hdr *frh = nlmsg_data(nlh); in fib_nl2rule() local
501 if (frh->src_len) in fib_nl2rule()
503 frh->src_len > (ops->addr_size * 8) || in fib_nl2rule()
509 if (frh->dst_len) in fib_nl2rule()
511 frh->dst_len > (ops->addr_size * 8) || in fib_nl2rule()
575 nlrule->action = frh->action; in fib_nl2rule()
576 nlrule->flags = frh->flags; in fib_nl2rule()
577 nlrule->table = frh_get_table(frh, tb); in fib_nl2rule()
659 static int rule_exists(struct fib_rules_ops *ops, struct fib_rule_hdr *frh, in rule_exists() argument
719 if (!ops->compare(r, frh, tb)) in rule_exists()
730 struct fib_rule_hdr *frh = nlmsg_data(nlh); in fib_nl_newrule() local
737 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) { in fib_nl_newrule()
742 ops = lookup_rules_ops(net, frh->family); in fib_nl_newrule()
749 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy, extack); in fib_nl_newrule()
760 rule_exists(ops, frh, tb, rule)) { in fib_nl_newrule()
765 err = ops->configure(rule, skb, frh, tb, extack); in fib_nl_newrule()
837 struct fib_rule_hdr *frh = nlmsg_data(nlh); in fib_nl_delrule() local
844 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) { in fib_nl_delrule()
849 ops = lookup_rules_ops(net, frh->family); in fib_nl_delrule()
856 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy, extack); in fib_nl_delrule()
866 rule = rule_find(ops, frh, tb, nlrule, user_priority); in fib_nl_delrule()
963 struct fib_rule_hdr *frh; in fib_nl_fill_rule() local
965 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*frh), flags); in fib_nl_fill_rule()
969 frh = nlmsg_data(nlh); in fib_nl_fill_rule()
970 frh->family = ops->family; in fib_nl_fill_rule()
971 frh->table = rule->table; in fib_nl_fill_rule()
976 frh->res1 = 0; in fib_nl_fill_rule()
977 frh->res2 = 0; in fib_nl_fill_rule()
978 frh->action = rule->action; in fib_nl_fill_rule()
979 frh->flags = rule->flags; in fib_nl_fill_rule()
986 frh->flags |= FIB_RULE_UNRESOLVED; in fib_nl_fill_rule()
992 frh->flags |= FIB_RULE_IIF_DETACHED; in fib_nl_fill_rule()
999 frh->flags |= FIB_RULE_OIF_DETACHED; in fib_nl_fill_rule()
1028 if (ops->fill(rule, skb, frh) < 0) in fib_nl_fill_rule()