Lines Matching refs:frh

246 static int validate_rulemsg(struct fib_rule_hdr *frh, struct nlattr **tb,  in validate_rulemsg()  argument
251 if (frh->src_len) in validate_rulemsg()
253 frh->src_len > (ops->addr_size * 8) || in validate_rulemsg()
257 if (frh->dst_len) in validate_rulemsg()
259 frh->dst_len > (ops->addr_size * 8) || in validate_rulemsg()
271 struct fib_rule_hdr *frh = nlmsg_data(nlh); in fib_nl_newrule() local
277 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) in fib_nl_newrule()
280 ops = lookup_rules_ops(net, frh->family); in fib_nl_newrule()
286 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy); in fib_nl_newrule()
290 err = validate_rulemsg(frh, tb, ops); in fib_nl_newrule()
339 rule->action = frh->action; in fib_nl_newrule()
340 rule->flags = frh->flags; in fib_nl_newrule()
341 rule->table = frh_get_table(frh, tb); in fib_nl_newrule()
374 err = ops->configure(rule, skb, frh, tb); in fib_nl_newrule()
431 struct fib_rule_hdr *frh = nlmsg_data(nlh); in fib_nl_delrule() local
437 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) in fib_nl_delrule()
440 ops = lookup_rules_ops(net, frh->family); in fib_nl_delrule()
446 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy); in fib_nl_delrule()
450 err = validate_rulemsg(frh, tb, ops); in fib_nl_delrule()
455 if (frh->action && (frh->action != rule->action)) in fib_nl_delrule()
458 if (frh_get_table(frh, tb) && in fib_nl_delrule()
459 (frh_get_table(frh, tb) != rule->table)) in fib_nl_delrule()
486 if (!ops->compare(rule, frh, tb)) in fib_nl_delrule()
565 struct fib_rule_hdr *frh; in fib_nl_fill_rule() local
567 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*frh), flags); in fib_nl_fill_rule()
571 frh = nlmsg_data(nlh); in fib_nl_fill_rule()
572 frh->family = ops->family; in fib_nl_fill_rule()
573 frh->table = rule->table; in fib_nl_fill_rule()
578 frh->res1 = 0; in fib_nl_fill_rule()
579 frh->res2 = 0; in fib_nl_fill_rule()
580 frh->action = rule->action; in fib_nl_fill_rule()
581 frh->flags = rule->flags; in fib_nl_fill_rule()
585 frh->flags |= FIB_RULE_UNRESOLVED; in fib_nl_fill_rule()
591 frh->flags |= FIB_RULE_IIF_DETACHED; in fib_nl_fill_rule()
598 frh->flags |= FIB_RULE_OIF_DETACHED; in fib_nl_fill_rule()
618 if (ops->fill(rule, skb, frh) < 0) in fib_nl_fill_rule()