The metadata_dst does not initialize the dst_cache field, this causes
problems to ip_md_tunnel_xmit() since it cannot use this cache, hence,
Triggering a route lookup for every packet.
Signed-off-by: wenxu <wenxu@ucloud.cn>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
                return -ENOMEM;
 
        memcpy(&md->u.tun_info, &info, sizeof(info));
+#ifdef CONFIG_DST_CACHE
+       err = dst_cache_init(&md->u.tun_info.dst_cache, GFP_KERNEL);
+       if (err < 0) {
+               metadata_dst_free(md);
+               return err;
+       }
+#endif
        ip_tunnel_info_opts_set(&md->u.tun_info, &priv->opts.u, priv->opts.len,
                                priv->opts.flags);
        priv->md = md;