Lines Matching refs:frh
441 struct fib_rule_hdr *frh, in rule_find() argument
513 if (!ops->compare(r, frh, tb)) in rule_find()
576 struct fib_rule_hdr *frh = nlmsg_data(nlh); in fib_nl2rule() local
580 if (frh->src_len) in fib_nl2rule()
582 frh->src_len > (ops->addr_size * 8) || in fib_nl2rule()
588 if (frh->dst_len) in fib_nl2rule()
590 frh->dst_len > (ops->addr_size * 8) || in fib_nl2rule()
640 nlrule->action = frh->action; in fib_nl2rule()
641 nlrule->flags = frh->flags; in fib_nl2rule()
642 nlrule->table = frh_get_table(frh, tb); in fib_nl2rule()
776 static int rule_exists(struct fib_rules_ops *ops, struct fib_rule_hdr *frh, in rule_exists() argument
839 if (!ops->compare(r, frh, tb)) in rule_exists()
877 struct fib_rule_hdr *frh = nlmsg_data(nlh); in fib_newrule() local
883 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) { in fib_newrule()
888 ops = lookup_rules_ops(net, frh->family); in fib_newrule()
895 err = nlmsg_parse_deprecated(nlh, sizeof(*frh), tb, FRA_MAX, in fib_newrule()
914 rule_exists(ops, frh, tb, rule)) { in fib_newrule()
919 err = ops->configure(rule, skb, frh, tb, extack); in fib_newrule()
1005 struct fib_rule_hdr *frh = nlmsg_data(nlh); in fib_delrule() local
1011 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) { in fib_delrule()
1016 ops = lookup_rules_ops(net, frh->family); in fib_delrule()
1023 err = nlmsg_parse_deprecated(nlh, sizeof(*frh), tb, FRA_MAX, in fib_delrule()
1041 rule = rule_find(ops, frh, tb, nlrule, user_priority); in fib_delrule()
1151 struct fib_rule_hdr *frh; in fib_nl_fill_rule() local
1153 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*frh), flags); in fib_nl_fill_rule()
1157 frh = nlmsg_data(nlh); in fib_nl_fill_rule()
1158 frh->family = ops->family; in fib_nl_fill_rule()
1159 frh->table = rule->table < 256 ? rule->table : RT_TABLE_COMPAT; in fib_nl_fill_rule()
1164 frh->res1 = 0; in fib_nl_fill_rule()
1165 frh->res2 = 0; in fib_nl_fill_rule()
1166 frh->action = rule->action; in fib_nl_fill_rule()
1167 frh->flags = rule->flags; in fib_nl_fill_rule()
1174 frh->flags |= FIB_RULE_UNRESOLVED; in fib_nl_fill_rule()
1180 frh->flags |= FIB_RULE_IIF_DETACHED; in fib_nl_fill_rule()
1187 frh->flags |= FIB_RULE_OIF_DETACHED; in fib_nl_fill_rule()
1220 if (ops->fill(rule, skb, frh) < 0) in fib_nl_fill_rule()
1261 struct fib_rule_hdr *frh; in fib_valid_dumprule_req() local
1263 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) { in fib_valid_dumprule_req()
1268 frh = nlmsg_data(nlh); in fib_valid_dumprule_req()
1269 if (frh->dst_len || frh->src_len || frh->tos || frh->table || in fib_valid_dumprule_req()
1270 frh->res1 || frh->res2 || frh->action || frh->flags) { in fib_valid_dumprule_req()
1276 if (nlmsg_attrlen(nlh, sizeof(*frh))) { in fib_valid_dumprule_req()