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