Lines Matching refs:tb

246 static int validate_rulemsg(struct fib_rule_hdr *frh, struct nlattr **tb,  in validate_rulemsg()  argument
252 if (tb[FRA_SRC] == NULL || in validate_rulemsg()
254 nla_len(tb[FRA_SRC]) != ops->addr_size) in validate_rulemsg()
258 if (tb[FRA_DST] == NULL || in validate_rulemsg()
260 nla_len(tb[FRA_DST]) != ops->addr_size) in validate_rulemsg()
274 struct nlattr *tb[FRA_MAX+1]; in fib_nl_newrule() local
286 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy); in fib_nl_newrule()
290 err = validate_rulemsg(frh, tb, ops); in fib_nl_newrule()
301 rule->pref = tb[FRA_PRIORITY] ? nla_get_u32(tb[FRA_PRIORITY]) in fib_nl_newrule()
304 if (tb[FRA_IIFNAME]) { in fib_nl_newrule()
308 nla_strlcpy(rule->iifname, tb[FRA_IIFNAME], IFNAMSIZ); in fib_nl_newrule()
314 if (tb[FRA_OIFNAME]) { in fib_nl_newrule()
318 nla_strlcpy(rule->oifname, tb[FRA_OIFNAME], IFNAMSIZ); in fib_nl_newrule()
324 if (tb[FRA_FWMARK]) { in fib_nl_newrule()
325 rule->mark = nla_get_u32(tb[FRA_FWMARK]); in fib_nl_newrule()
333 if (tb[FRA_FWMASK]) in fib_nl_newrule()
334 rule->mark_mask = nla_get_u32(tb[FRA_FWMASK]); in fib_nl_newrule()
336 if (tb[FRA_TUN_ID]) in fib_nl_newrule()
337 rule->tun_id = nla_get_be64(tb[FRA_TUN_ID]); in fib_nl_newrule()
341 rule->table = frh_get_table(frh, tb); in fib_nl_newrule()
342 if (tb[FRA_SUPPRESS_PREFIXLEN]) in fib_nl_newrule()
343 rule->suppress_prefixlen = nla_get_u32(tb[FRA_SUPPRESS_PREFIXLEN]); in fib_nl_newrule()
347 if (tb[FRA_SUPPRESS_IFGROUP]) in fib_nl_newrule()
348 rule->suppress_ifgroup = nla_get_u32(tb[FRA_SUPPRESS_IFGROUP]); in fib_nl_newrule()
353 if (tb[FRA_GOTO]) { in fib_nl_newrule()
357 rule->target = nla_get_u32(tb[FRA_GOTO]); in fib_nl_newrule()
374 err = ops->configure(rule, skb, frh, tb); in fib_nl_newrule()
434 struct nlattr *tb[FRA_MAX+1]; in fib_nl_delrule() local
446 err = nlmsg_parse(nlh, sizeof(*frh), tb, FRA_MAX, ops->policy); in fib_nl_delrule()
450 err = validate_rulemsg(frh, tb, ops); in fib_nl_delrule()
458 if (frh_get_table(frh, tb) && in fib_nl_delrule()
459 (frh_get_table(frh, tb) != rule->table)) in fib_nl_delrule()
462 if (tb[FRA_PRIORITY] && in fib_nl_delrule()
463 (rule->pref != nla_get_u32(tb[FRA_PRIORITY]))) in fib_nl_delrule()
466 if (tb[FRA_IIFNAME] && in fib_nl_delrule()
467 nla_strcmp(tb[FRA_IIFNAME], rule->iifname)) in fib_nl_delrule()
470 if (tb[FRA_OIFNAME] && in fib_nl_delrule()
471 nla_strcmp(tb[FRA_OIFNAME], rule->oifname)) in fib_nl_delrule()
474 if (tb[FRA_FWMARK] && in fib_nl_delrule()
475 (rule->mark != nla_get_u32(tb[FRA_FWMARK]))) in fib_nl_delrule()
478 if (tb[FRA_FWMASK] && in fib_nl_delrule()
479 (rule->mark_mask != nla_get_u32(tb[FRA_FWMASK]))) in fib_nl_delrule()
482 if (tb[FRA_TUN_ID] && in fib_nl_delrule()
483 (rule->tun_id != nla_get_be64(tb[FRA_TUN_ID]))) in fib_nl_delrule()
486 if (!ops->compare(rule, frh, tb)) in fib_nl_delrule()