blob: 6512d85f11b39775609cc83cf9d43e09002d8d8d [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
Linus Torvalds1da177e2005-04-16 15:20:36 -070017/* IPv6 tunnel */
18
19struct ip6_tnl {
20 struct ip6_tnl *next; /* next tunnel in list */
21 struct net_device *dev; /* virtual device associated with tunnel */
22 struct net_device_stats stat; /* statistics for tunnel device */
23 int recursion; /* depth of hard_start_xmit recursion */
Joe Perchesf4ab2f722007-12-20 13:56:32 -080024 struct ip6_tnl_parm parms; /* tunnel configuration parameters */
Linus Torvalds1da177e2005-04-16 15:20:36 -070025 struct flowi fl; /* flowi template for xmit */
26 struct dst_entry *dst_cache; /* cached dst */
27 u32 dst_cookie;
28};
29
30/* Tunnel encapsulation limit destination sub-option */
31
32struct ipv6_tlv_tnl_enc_lim {
33 __u8 type; /* type-code for option */
34 __u8 length; /* option length */
35 __u8 encap_limit; /* tunnel encapsulation limit */
36} __attribute__ ((packed));
37
38#endif