Lines Matching defs:rule4
231 static int fib4_nl2rule_dscp(const struct nlattr *nla, struct fib4_rule *rule4,
234 if (rule4->dscp) {
239 rule4->dscp = inet_dsfield_to_dscp(nla_get_u8(nla) << 2);
240 rule4->dscp_mask = inet_dsfield_to_dscp(INET_DSCP_MASK);
241 rule4->dscp_full = true;
247 struct fib4_rule *rule4,
252 if (!rule4->dscp_full) {
259 if (rule4->dscp & ~dscp_mask) {
264 rule4->dscp_mask = dscp_mask;
274 struct fib4_rule *rule4 = (struct fib4_rule *)rule;
294 rule4->dscp = inet_dsfield_to_dscp(frh->tos);
297 fib4_nl2rule_dscp(tb[FRA_DSCP], rule4, extack) < 0)
301 fib4_nl2rule_dscp_mask(tb[FRA_DSCP_MASK], rule4, extack) < 0)
324 rule4->src = nla_get_in_addr(tb[FRA_SRC]);
327 rule4->dst = nla_get_in_addr(tb[FRA_DST]);
331 rule4->tclassid = nla_get_u32(tb[FRA_FLOW]);
332 if (rule4->tclassid)
340 rule4->src_len = frh->src_len;
341 rule4->srcmask = inet_make_mask(rule4->src_len);
342 rule4->dst_len = frh->dst_len;
343 rule4->dstmask = inet_make_mask(rule4->dst_len);
378 struct fib4_rule *rule4 = (struct fib4_rule *) rule;
380 if (frh->src_len && (rule4->src_len != frh->src_len))
383 if (frh->dst_len && (rule4->dst_len != frh->dst_len))
387 (rule4->dscp_full ||
388 inet_dscp_to_dsfield(rule4->dscp) != frh->tos))
395 if (!rule4->dscp_full || rule4->dscp != dscp)
403 if (!rule4->dscp_full || rule4->dscp_mask != dscp_mask)
408 if (tb[FRA_FLOW] && (rule4->tclassid != nla_get_u32(tb[FRA_FLOW])))
412 if (frh->src_len && (rule4->src != nla_get_in_addr(tb[FRA_SRC])))
415 if (frh->dst_len && (rule4->dst != nla_get_in_addr(tb[FRA_DST])))
424 struct fib4_rule *rule4 = (struct fib4_rule *) rule;
426 frh->dst_len = rule4->dst_len;
427 frh->src_len = rule4->src_len;
429 if (rule4->dscp_full) {
432 inet_dscp_to_dsfield(rule4->dscp) >> 2) ||
434 inet_dscp_to_dsfield(rule4->dscp_mask) >> 2))
437 frh->tos = inet_dscp_to_dsfield(rule4->dscp);
440 if ((rule4->dst_len &&
441 nla_put_in_addr(skb, FRA_DST, rule4->dst)) ||
442 (rule4->src_len &&
443 nla_put_in_addr(skb, FRA_SRC, rule4->src)))
446 if (rule4->tclassid &&
447 nla_put_u32(skb, FRA_FLOW, rule4->tclassid))