/* * IPv6 tunneling device * Linux INET6 implementation * * Authors: * Ville Nuorvala <vnuorval@tcs.hut.fi> * Yasuyuki Kozakai <kozakai@linux-ipv6.org> * * Based on: * linux/net/ipv6/sit.c and linux/net/ipv4/ipip.c * * RFC 2473 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * */#include<linux/module.h>#include<linux/capability.h>#include<linux/errno.h>#include<linux/types.h>#include<linux/sockios.h>#include<linux/icmp.h>#include<linux/if.h>#include<linux/in.h>#include<linux/ip.h>#include<linux/if_tunnel.h>#include<linux/net.h>#include<linux/in6.h>#include<linux/netdevice.h>#include<linux/if_arp.h>#include<linux/icmpv6.h>#include<linux/init.h>#include<linux/route.h>#include<linux/rtnetlink.h>#include<linux/netfilter_ipv6.h>#include<asm/uaccess.h>#include<asm/atomic.h>#include<net/icmp.h>#include<net/ip.h>#include<net/ipv6.h>#include<net/ip6_route.h>#include<net/addrconf.h>#include<net/ip6_tunnel.h>#include<net/xfrm.h>#include<net/dsfield.h>#include<net/inet_ecn.h>#include<net/net_namespace.h>