frh 1153 drivers/net/vrf.c struct fib_rule_hdr *frh; frh 1166 drivers/net/vrf.c nlh = nlmsg_put(skb, 0, 0, 0, sizeof(*frh), 0); frh 1173 drivers/net/vrf.c frh = nlmsg_data(nlh); frh 1174 drivers/net/vrf.c memset(frh, 0, sizeof(*frh)); frh 1175 drivers/net/vrf.c frh->family = family; frh 1176 drivers/net/vrf.c frh->action = FR_ACT_TO_TBL; frh 150 include/net/fib_rules.h static inline u32 frh_get_table(struct fib_rule_hdr *frh, struct nlattr **nla) frh 154 include/net/fib_rules.h return frh->table; frh 388 net/core/fib_rules.c struct fib_rule_hdr *frh, frh 457 net/core/fib_rules.c if (!ops->compare(r, frh, tb)) frh 494 net/core/fib_rules.c struct fib_rule_hdr *frh = nlmsg_data(nlh); frh 498 net/core/fib_rules.c if (frh->src_len) frh 500 net/core/fib_rules.c frh->src_len > (ops->addr_size * 8) || frh 506 net/core/fib_rules.c if (frh->dst_len) frh 508 net/core/fib_rules.c frh->dst_len > (ops->addr_size * 8) || frh 572 net/core/fib_rules.c nlrule->action = frh->action; frh 573 net/core/fib_rules.c nlrule->flags = frh->flags; frh 574 net/core/fib_rules.c nlrule->table = frh_get_table(frh, tb); frh 656 net/core/fib_rules.c static int rule_exists(struct fib_rules_ops *ops, struct fib_rule_hdr *frh, frh 716 net/core/fib_rules.c if (!ops->compare(r, frh, tb)) frh 727 net/core/fib_rules.c struct fib_rule_hdr *frh = nlmsg_data(nlh); frh 734 net/core/fib_rules.c if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) { frh 739 net/core/fib_rules.c ops = lookup_rules_ops(net, frh->family); frh 746 net/core/fib_rules.c err = nlmsg_parse_deprecated(nlh, sizeof(*frh), tb, FRA_MAX, frh 758 net/core/fib_rules.c rule_exists(ops, frh, tb, rule)) { frh 763 net/core/fib_rules.c err = ops->configure(rule, skb, frh, tb, extack); frh 835 net/core/fib_rules.c struct fib_rule_hdr *frh = nlmsg_data(nlh); frh 842 net/core/fib_rules.c if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) { frh 847 net/core/fib_rules.c ops = lookup_rules_ops(net, frh->family); frh 854 net/core/fib_rules.c err = nlmsg_parse_deprecated(nlh, sizeof(*frh), tb, FRA_MAX, frh 865 net/core/fib_rules.c rule = rule_find(ops, frh, tb, nlrule, user_priority); frh 962 net/core/fib_rules.c struct fib_rule_hdr *frh; frh 964 net/core/fib_rules.c nlh = nlmsg_put(skb, pid, seq, type, sizeof(*frh), flags); frh 968 net/core/fib_rules.c frh = nlmsg_data(nlh); frh 969 net/core/fib_rules.c frh->family = ops->family; frh 970 net/core/fib_rules.c frh->table = rule->table < 256 ? rule->table : RT_TABLE_COMPAT; frh 975 net/core/fib_rules.c frh->res1 = 0; frh 976 net/core/fib_rules.c frh->res2 = 0; frh 977 net/core/fib_rules.c frh->action = rule->action; frh 978 net/core/fib_rules.c frh->flags = rule->flags; frh 985 net/core/fib_rules.c frh->flags |= FIB_RULE_UNRESOLVED; frh 991 net/core/fib_rules.c frh->flags |= FIB_RULE_IIF_DETACHED; frh 998 net/core/fib_rules.c frh->flags |= FIB_RULE_OIF_DETACHED; frh 1027 net/core/fib_rules.c if (ops->fill(rule, skb, frh) < 0) frh 1068 net/core/fib_rules.c struct fib_rule_hdr *frh; frh 1070 net/core/fib_rules.c if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*frh))) { frh 1075 net/core/fib_rules.c frh = nlmsg_data(nlh); frh 1076 net/core/fib_rules.c if (frh->dst_len || frh->src_len || frh->tos || frh->table || frh 1077 net/core/fib_rules.c frh->res1 || frh->res2 || frh->action || frh->flags) { frh 1083 net/core/fib_rules.c if (nlmsg_attrlen(nlh, sizeof(*frh))) { frh 123 net/decnet/dn_rules.c struct fib_rule_hdr *frh, frh 130 net/decnet/dn_rules.c if (frh->tos) { frh 149 net/decnet/dn_rules.c if (frh->src_len) frh 152 net/decnet/dn_rules.c if (frh->dst_len) frh 155 net/decnet/dn_rules.c r->src_len = frh->src_len; frh 157 net/decnet/dn_rules.c r->dst_len = frh->dst_len; frh 164 net/decnet/dn_rules.c static int dn_fib_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh, frh 169 net/decnet/dn_rules.c if (frh->src_len && (r->src_len != frh->src_len)) frh 172 net/decnet/dn_rules.c if (frh->dst_len && (r->dst_len != frh->dst_len)) frh 175 net/decnet/dn_rules.c if (frh->src_len && (r->src != nla_get_le16(tb[FRA_SRC]))) frh 178 net/decnet/dn_rules.c if (frh->dst_len && (r->dst != nla_get_le16(tb[FRA_DST]))) frh 203 net/decnet/dn_rules.c struct fib_rule_hdr *frh) frh 207 net/decnet/dn_rules.c frh->dst_len = r->dst_len; frh 208 net/decnet/dn_rules.c frh->src_len = r->src_len; frh 209 net/decnet/dn_rules.c frh->tos = 0; frh 219 net/ipv4/fib_rules.c struct fib_rule_hdr *frh, frh 227 net/ipv4/fib_rules.c if (frh->tos & ~IPTOS_TOS_MASK) { frh 251 net/ipv4/fib_rules.c if (frh->src_len) frh 254 net/ipv4/fib_rules.c if (frh->dst_len) frh 268 net/ipv4/fib_rules.c rule4->src_len = frh->src_len; frh 270 net/ipv4/fib_rules.c rule4->dst_len = frh->dst_len; frh 272 net/ipv4/fib_rules.c rule4->tos = frh->tos; frh 304 net/ipv4/fib_rules.c static int fib4_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh, frh 309 net/ipv4/fib_rules.c if (frh->src_len && (rule4->src_len != frh->src_len)) frh 312 net/ipv4/fib_rules.c if (frh->dst_len && (rule4->dst_len != frh->dst_len)) frh 315 net/ipv4/fib_rules.c if (frh->tos && (rule4->tos != frh->tos)) frh 323 net/ipv4/fib_rules.c if (frh->src_len && (rule4->src != nla_get_in_addr(tb[FRA_SRC]))) frh 326 net/ipv4/fib_rules.c if (frh->dst_len && (rule4->dst != nla_get_in_addr(tb[FRA_DST]))) frh 333 net/ipv4/fib_rules.c struct fib_rule_hdr *frh) frh 337 net/ipv4/fib_rules.c frh->dst_len = rule4->dst_len; frh 338 net/ipv4/fib_rules.c frh->src_len = rule4->src_len; frh 339 net/ipv4/fib_rules.c frh->tos = rule4->tos; frh 201 net/ipv4/ipmr.c struct fib_rule_hdr *frh, struct nlattr **tb, frh 207 net/ipv4/ipmr.c static int ipmr_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh, frh 214 net/ipv4/ipmr.c struct fib_rule_hdr *frh) frh 216 net/ipv4/ipmr.c frh->dst_len = 0; frh 217 net/ipv4/ipmr.c frh->src_len = 0; frh 218 net/ipv4/ipmr.c frh->tos = 0; frh 340 net/ipv6/fib6_rules.c struct fib_rule_hdr *frh, frh 360 net/ipv6/fib6_rules.c if (frh->src_len) frh 363 net/ipv6/fib6_rules.c if (frh->dst_len) frh 366 net/ipv6/fib6_rules.c rule6->src.plen = frh->src_len; frh 367 net/ipv6/fib6_rules.c rule6->dst.plen = frh->dst_len; frh 368 net/ipv6/fib6_rules.c rule6->tclass = frh->tos; frh 390 net/ipv6/fib6_rules.c static int fib6_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh, frh 395 net/ipv6/fib6_rules.c if (frh->src_len && (rule6->src.plen != frh->src_len)) frh 398 net/ipv6/fib6_rules.c if (frh->dst_len && (rule6->dst.plen != frh->dst_len)) frh 401 net/ipv6/fib6_rules.c if (frh->tos && (rule6->tclass != frh->tos)) frh 404 net/ipv6/fib6_rules.c if (frh->src_len && frh 408 net/ipv6/fib6_rules.c if (frh->dst_len && frh 416 net/ipv6/fib6_rules.c struct fib_rule_hdr *frh) frh 420 net/ipv6/fib6_rules.c frh->dst_len = rule6->dst.plen; frh 421 net/ipv6/fib6_rules.c frh->src_len = rule6->src.plen; frh 422 net/ipv6/fib6_rules.c frh->tos = rule6->tclass; frh 188 net/ipv6/ip6mr.c struct fib_rule_hdr *frh, struct nlattr **tb, frh 194 net/ipv6/ip6mr.c static int ip6mr_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh, frh 201 net/ipv6/ip6mr.c struct fib_rule_hdr *frh) frh 203 net/ipv6/ip6mr.c frh->dst_len = 0; frh 204 net/ipv6/ip6mr.c frh->src_len = 0; frh 205 net/ipv6/ip6mr.c frh->tos = 0;