Lines Matching refs:tb

243 static int validate_rulemsg(struct fib_rule_hdr *frh, struct nlattr **tb,  in validate_rulemsg()  argument
249 if (tb[FRA_SRC] == NULL || in validate_rulemsg()
251 nla_len(tb[FRA_SRC]) != ops->addr_size) in validate_rulemsg()
255 if (tb[FRA_DST] == NULL || in validate_rulemsg()
257 nla_len(tb[FRA_DST]) != ops->addr_size) in validate_rulemsg()
271 struct nlattr *tb[FRA_MAX+1]; in fib_nl_newrule() local
283 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy); in fib_nl_newrule()
287 err = validate_rulemsg(frh, tb, ops); in fib_nl_newrule()
298 if (tb[FRA_PRIORITY]) in fib_nl_newrule()
299 rule->pref = nla_get_u32(tb[FRA_PRIORITY]); in fib_nl_newrule()
301 if (tb[FRA_IIFNAME]) { in fib_nl_newrule()
305 nla_strlcpy(rule->iifname, tb[FRA_IIFNAME], IFNAMSIZ); in fib_nl_newrule()
311 if (tb[FRA_OIFNAME]) { in fib_nl_newrule()
315 nla_strlcpy(rule->oifname, tb[FRA_OIFNAME], IFNAMSIZ); in fib_nl_newrule()
321 if (tb[FRA_FWMARK]) { in fib_nl_newrule()
322 rule->mark = nla_get_u32(tb[FRA_FWMARK]); in fib_nl_newrule()
330 if (tb[FRA_FWMASK]) in fib_nl_newrule()
331 rule->mark_mask = nla_get_u32(tb[FRA_FWMASK]); in fib_nl_newrule()
335 rule->table = frh_get_table(frh, tb); in fib_nl_newrule()
336 if (tb[FRA_SUPPRESS_PREFIXLEN]) in fib_nl_newrule()
337 rule->suppress_prefixlen = nla_get_u32(tb[FRA_SUPPRESS_PREFIXLEN]); in fib_nl_newrule()
341 if (tb[FRA_SUPPRESS_IFGROUP]) in fib_nl_newrule()
342 rule->suppress_ifgroup = nla_get_u32(tb[FRA_SUPPRESS_IFGROUP]); in fib_nl_newrule()
346 if (!tb[FRA_PRIORITY] && ops->default_pref) in fib_nl_newrule()
350 if (tb[FRA_GOTO]) { in fib_nl_newrule()
354 rule->target = nla_get_u32(tb[FRA_GOTO]); in fib_nl_newrule()
371 err = ops->configure(rule, skb, frh, tb); in fib_nl_newrule()
428 struct nlattr *tb[FRA_MAX+1]; in fib_nl_delrule() local
440 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy); in fib_nl_delrule()
444 err = validate_rulemsg(frh, tb, ops); in fib_nl_delrule()
452 if (frh_get_table(frh, tb) && in fib_nl_delrule()
453 (frh_get_table(frh, tb) != rule->table)) in fib_nl_delrule()
456 if (tb[FRA_PRIORITY] && in fib_nl_delrule()
457 (rule->pref != nla_get_u32(tb[FRA_PRIORITY]))) in fib_nl_delrule()
460 if (tb[FRA_IIFNAME] && in fib_nl_delrule()
461 nla_strcmp(tb[FRA_IIFNAME], rule->iifname)) in fib_nl_delrule()
464 if (tb[FRA_OIFNAME] && in fib_nl_delrule()
465 nla_strcmp(tb[FRA_OIFNAME], rule->oifname)) in fib_nl_delrule()
468 if (tb[FRA_FWMARK] && in fib_nl_delrule()
469 (rule->mark != nla_get_u32(tb[FRA_FWMARK]))) in fib_nl_delrule()
472 if (tb[FRA_FWMASK] && in fib_nl_delrule()
473 (rule->mark_mask != nla_get_u32(tb[FRA_FWMASK]))) in fib_nl_delrule()
476 if (!ops->compare(rule, frh, tb)) in fib_nl_delrule()