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;