Lines Matching refs:tb
223 static void fl_set_key_val(struct nlattr **tb, in fl_set_key_val() argument
227 if (!tb[val_type]) in fl_set_key_val()
229 memcpy(val, nla_data(tb[val_type]), len); in fl_set_key_val()
230 if (mask_type == TCA_FLOWER_UNSPEC || !tb[mask_type]) in fl_set_key_val()
233 memcpy(mask, nla_data(tb[mask_type]), len); in fl_set_key_val()
236 static int fl_set_key(struct net *net, struct nlattr **tb, in fl_set_key() argument
240 if (tb[TCA_FLOWER_INDEV]) { in fl_set_key()
241 int err = tcf_change_indev(net, tb[TCA_FLOWER_INDEV]); in fl_set_key()
249 fl_set_key_val(tb, key->eth.dst, TCA_FLOWER_KEY_ETH_DST, in fl_set_key()
252 fl_set_key_val(tb, key->eth.src, TCA_FLOWER_KEY_ETH_SRC, in fl_set_key()
256 fl_set_key_val(tb, &key->basic.n_proto, TCA_FLOWER_KEY_ETH_TYPE, in fl_set_key()
262 fl_set_key_val(tb, &key->basic.ip_proto, TCA_FLOWER_KEY_IP_PROTO, in fl_set_key()
267 if (tb[TCA_FLOWER_KEY_IPV4_SRC] || tb[TCA_FLOWER_KEY_IPV4_DST]) { in fl_set_key()
269 fl_set_key_val(tb, &key->ipv4.src, TCA_FLOWER_KEY_IPV4_SRC, in fl_set_key()
272 fl_set_key_val(tb, &key->ipv4.dst, TCA_FLOWER_KEY_IPV4_DST, in fl_set_key()
275 } else if (tb[TCA_FLOWER_KEY_IPV6_SRC] || tb[TCA_FLOWER_KEY_IPV6_DST]) { in fl_set_key()
277 fl_set_key_val(tb, &key->ipv6.src, TCA_FLOWER_KEY_IPV6_SRC, in fl_set_key()
280 fl_set_key_val(tb, &key->ipv6.dst, TCA_FLOWER_KEY_IPV6_DST, in fl_set_key()
286 fl_set_key_val(tb, &key->tp.src, TCA_FLOWER_KEY_TCP_SRC, in fl_set_key()
289 fl_set_key_val(tb, &key->tp.dst, TCA_FLOWER_KEY_TCP_DST, in fl_set_key()
293 fl_set_key_val(tb, &key->tp.src, TCA_FLOWER_KEY_UDP_SRC, in fl_set_key()
296 fl_set_key_val(tb, &key->tp.dst, TCA_FLOWER_KEY_UDP_DST, in fl_set_key()
400 unsigned long base, struct nlattr **tb, in fl_set_parms() argument
407 err = tcf_exts_validate(net, tp, tb, est, &e, ovr); in fl_set_parms()
411 if (tb[TCA_FLOWER_CLASSID]) { in fl_set_parms()
412 f->res.classid = nla_get_u32(tb[TCA_FLOWER_CLASSID]); in fl_set_parms()
416 err = fl_set_key(net, tb, &f->key, &mask->key); in fl_set_parms()
460 struct nlattr *tb[TCA_FLOWER_MAX + 1]; in fl_change() local
467 err = nla_parse_nested(tb, TCA_FLOWER_MAX, tca[TCA_OPTIONS], fl_policy); in fl_change()
489 err = fl_set_parms(net, tp, fnew, &mask, base, tb, tca[TCA_RATE], ovr); in fl_change()