1*53ee8cc1Swenshuai.xi /* 2*53ee8cc1Swenshuai.xi * $Id$ 3*53ee8cc1Swenshuai.xi */ 4*53ee8cc1Swenshuai.xi 5*53ee8cc1Swenshuai.xi #ifndef _IP6_TUNNEL_H 6*53ee8cc1Swenshuai.xi #define _IP6_TUNNEL_H 7*53ee8cc1Swenshuai.xi 8*53ee8cc1Swenshuai.xi #define IPV6_TLV_TNL_ENCAP_LIMIT 4 9*53ee8cc1Swenshuai.xi #define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4 10*53ee8cc1Swenshuai.xi 11*53ee8cc1Swenshuai.xi /* don't add encapsulation limit if one isn't present in inner packet */ 12*53ee8cc1Swenshuai.xi #define IP6_TNL_F_IGN_ENCAP_LIMIT 0x1 13*53ee8cc1Swenshuai.xi /* copy the traffic class field from the inner packet */ 14*53ee8cc1Swenshuai.xi #define IP6_TNL_F_USE_ORIG_TCLASS 0x2 15*53ee8cc1Swenshuai.xi /* copy the flowlabel from the inner packet */ 16*53ee8cc1Swenshuai.xi #define IP6_TNL_F_USE_ORIG_FLOWLABEL 0x4 17*53ee8cc1Swenshuai.xi /* being used for Mobile IPv6 */ 18*53ee8cc1Swenshuai.xi #define IP6_TNL_F_MIP6_DEV 0x8 19*53ee8cc1Swenshuai.xi /* copy DSCP from the outer packet */ 20*53ee8cc1Swenshuai.xi #define IP6_TNL_F_RCV_DSCP_COPY 0x10 21*53ee8cc1Swenshuai.xi 22*53ee8cc1Swenshuai.xi struct ip6_tnl_parm { 23*53ee8cc1Swenshuai.xi char name[IFNAMSIZ]; /* name of tunnel device */ 24*53ee8cc1Swenshuai.xi int link; /* ifindex of underlying L2 interface */ 25*53ee8cc1Swenshuai.xi __u8 proto; /* tunnel protocol */ 26*53ee8cc1Swenshuai.xi __u8 encap_limit; /* encapsulation limit for tunnel */ 27*53ee8cc1Swenshuai.xi __u8 hop_limit; /* hop limit for tunnel */ 28*53ee8cc1Swenshuai.xi __be32 flowinfo; /* traffic class and flowlabel for tunnel */ 29*53ee8cc1Swenshuai.xi __u32 flags; /* tunnel flags */ 30*53ee8cc1Swenshuai.xi struct in6_addr laddr; /* local tunnel end-point address */ 31*53ee8cc1Swenshuai.xi struct in6_addr raddr; /* remote tunnel end-point address */ 32*53ee8cc1Swenshuai.xi }; 33*53ee8cc1Swenshuai.xi 34*53ee8cc1Swenshuai.xi #endif 35