1/* 2 * $Id: ip6_tunnel.h,v 1.1.1.1 2007/08/03 18:53:45 Exp $ 3 */ 4 5#ifndef _NET_IP6_TUNNEL_H 6#define _NET_IP6_TUNNEL_H 7 8#include <linux/ipv6.h> 9#include <linux/netdevice.h> 10#include <linux/ip6_tunnel.h> 11 12/* capable of sending packets */ 13#define IP6_TNL_F_CAP_XMIT 0x10000 14/* capable of receiving packets */ 15#define IP6_TNL_F_CAP_RCV 0x20000 16 17#define IP6_TNL_MAX 128 18 19/* IPv6 tunnel */ 20 21struct ip6_tnl { 22 struct ip6_tnl *next; /* next tunnel in list */ 23 struct net_device *dev; /* virtual device associated with tunnel */ 24 struct net_device_stats stat; /* statistics for tunnel device */ 25 int recursion; /* depth of hard_start_xmit recursion */ 26 struct ip6_tnl_parm parms; /* tunnel configuration paramters */ 27 struct flowi fl; /* flowi template for xmit */ 28 struct dst_entry *dst_cache; /* cached dst */ 29 u32 dst_cookie; 30}; 31 32/* Tunnel encapsulation limit destination sub-option */ 33 34struct ipv6_tlv_tnl_enc_lim { 35 __u8 type; /* type-code for option */ 36 __u8 length; /* option length */ 37 __u8 encap_limit; /* tunnel encapsulation limit */ 38} __attribute__ ((packed)); 39 40#endif 41