Lines Matching refs:tun_info
133 md->u.tun_info.mode & IP_TUNNEL_INFO_TX) in iptunnel_metadata_reply()
136 src = &md->u.tun_info; in iptunnel_metadata_reply()
141 dst = &res->u.tun_info; in iptunnel_metadata_reply()
660 struct ip_tunnel_info *tun_info; in ip_tun_build_state() local
672 new_state = lwtunnel_state_alloc(sizeof(*tun_info) + opt_len); in ip_tun_build_state()
678 tun_info = lwt_tun_info(new_state); in ip_tun_build_state()
680 err = ip_tun_set_opts(tb[LWTUNNEL_IP_OPTS], tun_info, extack); in ip_tun_build_state()
687 err = dst_cache_init(&tun_info->dst_cache, GFP_KERNEL); in ip_tun_build_state()
695 tun_info->key.tun_id = nla_get_be64(tb[LWTUNNEL_IP_ID]); in ip_tun_build_state()
698 tun_info->key.u.ipv4.dst = nla_get_in_addr(tb[LWTUNNEL_IP_DST]); in ip_tun_build_state()
701 tun_info->key.u.ipv4.src = nla_get_in_addr(tb[LWTUNNEL_IP_SRC]); in ip_tun_build_state()
704 tun_info->key.ttl = nla_get_u8(tb[LWTUNNEL_IP_TTL]); in ip_tun_build_state()
707 tun_info->key.tos = nla_get_u8(tb[LWTUNNEL_IP_TOS]); in ip_tun_build_state()
716 ip_tunnel_flags_or(tun_info->key.tun_flags, in ip_tun_build_state()
717 tun_info->key.tun_flags, flags); in ip_tun_build_state()
720 tun_info->mode = IP_TUNNEL_INFO_TX; in ip_tun_build_state()
721 tun_info->options_len = opt_len; in ip_tun_build_state()
731 struct ip_tunnel_info *tun_info = lwt_tun_info(lwtstate); in ip_tun_destroy_state() local
733 dst_cache_destroy(&tun_info->dst_cache); in ip_tun_destroy_state()
738 struct ip_tunnel_info *tun_info) in ip_tun_fill_encap_opts_geneve() argument
748 while (tun_info->options_len > offset) { in ip_tun_fill_encap_opts_geneve()
749 opt = ip_tunnel_info_opts(tun_info) + offset; in ip_tun_fill_encap_opts_geneve()
766 struct ip_tunnel_info *tun_info) in ip_tun_fill_encap_opts_vxlan() argument
775 md = ip_tunnel_info_opts(tun_info); in ip_tun_fill_encap_opts_vxlan()
786 struct ip_tunnel_info *tun_info) in ip_tun_fill_encap_opts_erspan() argument
795 md = ip_tunnel_info_opts(tun_info); in ip_tun_fill_encap_opts_erspan()
817 struct ip_tunnel_info *tun_info) in ip_tun_fill_encap_opts() argument
822 if (!ip_tunnel_is_options_present(tun_info->key.tun_flags)) in ip_tun_fill_encap_opts()
829 if (test_bit(IP_TUNNEL_GENEVE_OPT_BIT, tun_info->key.tun_flags)) in ip_tun_fill_encap_opts()
830 err = ip_tun_fill_encap_opts_geneve(skb, tun_info); in ip_tun_fill_encap_opts()
831 else if (test_bit(IP_TUNNEL_VXLAN_OPT_BIT, tun_info->key.tun_flags)) in ip_tun_fill_encap_opts()
832 err = ip_tun_fill_encap_opts_vxlan(skb, tun_info); in ip_tun_fill_encap_opts()
833 else if (test_bit(IP_TUNNEL_ERSPAN_OPT_BIT, tun_info->key.tun_flags)) in ip_tun_fill_encap_opts()
834 err = ip_tun_fill_encap_opts_erspan(skb, tun_info); in ip_tun_fill_encap_opts()
848 struct ip_tunnel_info *tun_info = lwt_tun_info(lwtstate); in ip_tun_fill_encap_info() local
850 if (nla_put_be64(skb, LWTUNNEL_IP_ID, tun_info->key.tun_id, in ip_tun_fill_encap_info()
852 nla_put_in_addr(skb, LWTUNNEL_IP_DST, tun_info->key.u.ipv4.dst) || in ip_tun_fill_encap_info()
853 nla_put_in_addr(skb, LWTUNNEL_IP_SRC, tun_info->key.u.ipv4.src) || in ip_tun_fill_encap_info()
854 nla_put_u8(skb, LWTUNNEL_IP_TOS, tun_info->key.tos) || in ip_tun_fill_encap_info()
855 nla_put_u8(skb, LWTUNNEL_IP_TTL, tun_info->key.ttl) || in ip_tun_fill_encap_info()
857 ip_tunnel_flags_to_be16(tun_info->key.tun_flags)) || in ip_tun_fill_encap_info()
858 ip_tun_fill_encap_opts(skb, LWTUNNEL_IP_OPTS, tun_info)) in ip_tun_fill_encap_info()
954 struct ip_tunnel_info *tun_info; in ip6_tun_build_state() local
966 new_state = lwtunnel_state_alloc(sizeof(*tun_info) + opt_len); in ip6_tun_build_state()
972 tun_info = lwt_tun_info(new_state); in ip6_tun_build_state()
974 err = ip_tun_set_opts(tb[LWTUNNEL_IP6_OPTS], tun_info, extack); in ip6_tun_build_state()
981 tun_info->key.tun_id = nla_get_be64(tb[LWTUNNEL_IP6_ID]); in ip6_tun_build_state()
984 tun_info->key.u.ipv6.dst = nla_get_in6_addr(tb[LWTUNNEL_IP6_DST]); in ip6_tun_build_state()
987 tun_info->key.u.ipv6.src = nla_get_in6_addr(tb[LWTUNNEL_IP6_SRC]); in ip6_tun_build_state()
990 tun_info->key.ttl = nla_get_u8(tb[LWTUNNEL_IP6_HOPLIMIT]); in ip6_tun_build_state()
993 tun_info->key.tos = nla_get_u8(tb[LWTUNNEL_IP6_TC]); in ip6_tun_build_state()
1003 ip_tunnel_flags_or(tun_info->key.tun_flags, in ip6_tun_build_state()
1004 tun_info->key.tun_flags, flags); in ip6_tun_build_state()
1007 tun_info->mode = IP_TUNNEL_INFO_TX | IP_TUNNEL_INFO_IPV6; in ip6_tun_build_state()
1008 tun_info->options_len = opt_len; in ip6_tun_build_state()
1018 struct ip_tunnel_info *tun_info = lwt_tun_info(lwtstate); in ip6_tun_fill_encap_info() local
1020 if (nla_put_be64(skb, LWTUNNEL_IP6_ID, tun_info->key.tun_id, in ip6_tun_fill_encap_info()
1022 nla_put_in6_addr(skb, LWTUNNEL_IP6_DST, &tun_info->key.u.ipv6.dst) || in ip6_tun_fill_encap_info()
1023 nla_put_in6_addr(skb, LWTUNNEL_IP6_SRC, &tun_info->key.u.ipv6.src) || in ip6_tun_fill_encap_info()
1024 nla_put_u8(skb, LWTUNNEL_IP6_TC, tun_info->key.tos) || in ip6_tun_fill_encap_info()
1025 nla_put_u8(skb, LWTUNNEL_IP6_HOPLIMIT, tun_info->key.ttl) || in ip6_tun_fill_encap_info()
1027 ip_tunnel_flags_to_be16(tun_info->key.tun_flags)) || in ip6_tun_fill_encap_info()
1028 ip_tun_fill_encap_opts(skb, LWTUNNEL_IP6_OPTS, tun_info)) in ip6_tun_fill_encap_info()