ip6_tunnel.h 969 B

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef _NET_IP6_TUNNEL_H
  2. #define _NET_IP6_TUNNEL_H
  3. #include <linux/ipv6.h>
  4. #include <linux/netdevice.h>
  5. #include <linux/ip6_tunnel.h>
  6. /* capable of sending packets */
  7. #define IP6_TNL_F_CAP_XMIT 0x10000
  8. /* capable of receiving packets */
  9. #define IP6_TNL_F_CAP_RCV 0x20000
  10. /* determine capability on a per-packet basis */
  11. #define IP6_TNL_F_CAP_PER_PACKET 0x40000
  12. /* IPv6 tunnel */
  13. struct ip6_tnl {
  14. struct ip6_tnl __rcu *next; /* next tunnel in list */
  15. struct net_device *dev; /* virtual device associated with tunnel */
  16. struct ip6_tnl_parm parms; /* tunnel configuration parameters */
  17. struct flowi fl; /* flowi template for xmit */
  18. struct dst_entry *dst_cache; /* cached dst */
  19. u32 dst_cookie;
  20. };
  21. /* Tunnel encapsulation limit destination sub-option */
  22. struct ipv6_tlv_tnl_enc_lim {
  23. __u8 type; /* type-code for option */
  24. __u8 length; /* option length */
  25. __u8 encap_limit; /* tunnel encapsulation limit */
  26. } __packed;
  27. #endif