Home | History | Annotate | Download | only in route

Lines Matching refs:tmpl

386 static int build_rule_msg(struct rtnl_rule *tmpl, int cmd, int flags,
397 if (tmpl->ce_mask & RULE_ATTR_FAMILY)
398 rtm.rtm_family = tmpl->r_family;
400 if (tmpl->ce_mask & RULE_ATTR_TABLE)
401 rtm.rtm_table = tmpl->r_table;
403 if (tmpl->ce_mask & RULE_ATTR_DSFIELD)
404 rtm.rtm_tos = tmpl->r_dsfield;
406 if (tmpl->ce_mask & RULE_ATTR_TYPE)
407 rtm.rtm_type = tmpl->r_type;
409 if (tmpl->ce_mask & RULE_ATTR_SRC_LEN)
410 rtm.rtm_src_len = tmpl->r_src_len;
412 if (tmpl->ce_mask & RULE_ATTR_DST_LEN)
413 rtm.rtm_dst_len = tmpl->r_dst_len;
422 if (tmpl->ce_mask & RULE_ATTR_SRC)
423 NLA_PUT_ADDR(msg, RTA_SRC, tmpl->r_src);
425 if (tmpl->ce_mask & RULE_ATTR_DST)
426 NLA_PUT_ADDR(msg, RTA_DST, tmpl->r_dst);
428 if (tmpl->ce_mask & RULE_ATTR_PRIO)
429 NLA_PUT_U32(msg, RTA_PRIORITY, tmpl->r_prio);
431 if (tmpl->ce_mask & RULE_ATTR_MARK)
432 NLA_PUT_U32(msg, RTA_PROTOINFO, tmpl->r_mark);
434 if (tmpl->ce_mask & RULE_ATTR_REALMS)
435 NLA_PUT_U32(msg, RTA_FLOW, tmpl->r_realms);
437 if (tmpl->ce_mask & RULE_ATTR_IIF)
438 NLA_PUT_STRING(msg, RTA_IIF, tmpl->r_iif);
450 * @arg tmpl template with data of new rule
456 * or supplemented as needed. \a tmpl must contain the attributes of the new
461 int rtnl_rule_build_add_request(struct rtnl_rule *tmpl, int flags,
464 return build_rule_msg(tmpl, RTM_NEWRULE, NLM_F_CREATE | flags,
471 * @arg tmpl template with requested changes
480 int rtnl_rule_add(struct nl_sock *sk, struct rtnl_rule *tmpl, int flags)
485 if ((err = rtnl_rule_build_add_request(tmpl, flags, &msg)) < 0)