Lines Matching refs:opts

183 	struct nft_tunnel_opts	opts;
258 struct nft_tunnel_opts *opts)
271 opts->u.vxlan.gbp = ntohl(nla_get_be32(tb[NFTA_TUNNEL_KEY_VXLAN_GBP]));
273 opts->len = sizeof(struct vxlan_metadata);
274 ip_tunnel_flags_zero(opts->flags);
275 __set_bit(IP_TUNNEL_VXLAN_OPT_BIT, opts->flags);
288 struct nft_tunnel_opts *opts)
309 opts->u.erspan.u.index =
320 set_hwid(&opts->u.erspan.u.md2, hwid);
321 opts->u.erspan.u.md2.dir = dir;
326 opts->u.erspan.version = version;
328 opts->len = sizeof(struct erspan_metadata);
329 ip_tunnel_flags_zero(opts->flags);
330 __set_bit(IP_TUNNEL_ERSPAN_OPT_BIT, opts->flags);
342 struct nft_tunnel_opts *opts)
344 struct geneve_opt *opt = (struct geneve_opt *)opts->u.data + opts->len;
363 opts->len += sizeof(*opt) + data_len;
364 if (opts->len > IP_TUNNEL_OPTS_MAX)
371 ip_tunnel_flags_zero(opts->flags);
372 __set_bit(IP_TUNNEL_GENEVE_OPT_BIT, opts->flags);
388 struct nft_tunnel_opts *opts)
404 err = nft_tunnel_obj_vxlan_init(nla, opts);
412 err = nft_tunnel_obj_erspan_init(nla, opts);
420 err = nft_tunnel_obj_geneve_init(nla, opts);
507 &info, &priv->opts);
512 md = metadata_dst_alloc(priv->opts.len, METADATA_IP_TUNNEL, GFP_KERNEL);
524 ip_tunnel_info_opts_set(&md->u.tun_info, &priv->opts.u, priv->opts.len,
525 priv->opts.flags);
585 struct nft_tunnel_opts *opts = &priv->opts;
592 if (test_bit(IP_TUNNEL_VXLAN_OPT_BIT, opts->flags)) {
597 htonl(opts->u.vxlan.gbp)))
600 } else if (test_bit(IP_TUNNEL_ERSPAN_OPT_BIT, opts->flags)) {
605 htonl(opts->u.erspan.version)))
607 switch (opts->u.erspan.version) {
610 opts->u.erspan.u.index))
615 get_hwid(&opts->u.erspan.u.md2)) ||
617 opts->u.erspan.u.md2.dir))
622 } else if (test_bit(IP_TUNNEL_GENEVE_OPT_BIT, opts->flags)) {
629 while (opts->len > offset) {
630 opt = (struct geneve_opt *)opts->u.data + offset;