]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - net/ipv6/af_inet6.c
vxlan: add ipv6 route short circuit support
[mirror_ubuntu-bionic-kernel.git] / net / ipv6 / af_inet6.c
index a5ac969aeefe5337d7fa4c5601912fb96b1a5496..1996a7c34f73280acb2ab18951c6945ffb10f3a2 100644 (file)
@@ -766,6 +766,7 @@ static int __net_init inet6_net_init(struct net *net)
 
        net->ipv6.sysctl.bindv6only = 0;
        net->ipv6.sysctl.icmpv6_time = 1*HZ;
+       atomic_set(&net->ipv6.rt_genid, 0);
 
        err = ipv6_init_mibs(net);
        if (err)
@@ -809,6 +810,14 @@ static struct pernet_operations inet6_net_ops = {
        .exit = inet6_net_exit,
 };
 
+static const struct ipv6_stub ipv6_stub_impl = {
+       .ipv6_sock_mc_join = ipv6_sock_mc_join,
+       .ipv6_sock_mc_drop = ipv6_sock_mc_drop,
+       .ipv6_dst_lookup = ip6_dst_lookup,
+       .udpv6_encap_enable = udpv6_encap_enable,
+       .nd_tbl = &nd_tbl,
+};
+
 static int __init inet6_init(void)
 {
        struct list_head *r;
@@ -883,6 +892,9 @@ static int __init inet6_init(void)
        err = igmp6_init();
        if (err)
                goto igmp_fail;
+
+       ipv6_stub = &ipv6_stub_impl;
+
        err = ipv6_netfilter_init();
        if (err)
                goto netfilter_fail;
@@ -1039,6 +1051,7 @@ static void __exit inet6_exit(void)
        raw6_proc_exit();
 #endif
        ipv6_netfilter_fini();
+       ipv6_stub = NULL;
        igmp6_cleanup();
        ndisc_cleanup();
        ip6_mr_cleanup();