/* * 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&