blob: 29c9da707c7a6d63f73c677923cf0b6778ddd3c2 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * $Id$
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