ip6_tunnel.h revision f22640712fe7508df78b0eda397c4bc35a9ce936
1288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA#ifndef _IP6_TUNNEL_H 2288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA#define _IP6_TUNNEL_H 3288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA 467881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger#include <linux/types.h> 567881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger 6288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA#define IPV6_TLV_TNL_ENCAP_LIMIT 4 7288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4 8288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA 9288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA/* don't add encapsulation limit if one isn't present in inner packet */ 10288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA#define IP6_TNL_F_IGN_ENCAP_LIMIT 0x1 11288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA/* copy the traffic class field from the inner packet */ 12288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA#define IP6_TNL_F_USE_ORIG_TCLASS 0x2 13288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA/* copy the flowlabel from the inner packet */ 14288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA#define IP6_TNL_F_USE_ORIG_FLOWLABEL 0x4 15288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA/* being used for Mobile IPv6 */ 16288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA#define IP6_TNL_F_MIP6_DEV 0x8 17288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA/* copy DSCP from the outer packet */ 18288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA#define IP6_TNL_F_RCV_DSCP_COPY 0x10 199044a4547d73df5c41fd53c83e5ccc2a59200797Stephen Hemminger/* copy fwmark from inner packet */ 209044a4547d73df5c41fd53c83e5ccc2a59200797Stephen Hemminger#define IP6_TNL_F_USE_ORIG_FWMARK 0x20 21288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA 22288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURAstruct ip6_tnl_parm { 23288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA char name[IFNAMSIZ]; /* name of tunnel device */ 24288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA int link; /* ifindex of underlying L2 interface */ 25288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA __u8 proto; /* tunnel protocol */ 26288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA __u8 encap_limit; /* encapsulation limit for tunnel */ 27288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA __u8 hop_limit; /* hop limit for tunnel */ 28ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __be32 flowinfo; /* traffic class and flowlabel for tunnel */ 29288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA __u32 flags; /* tunnel flags */ 30288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA struct in6_addr laddr; /* local tunnel end-point address */ 31288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA struct in6_addr raddr; /* remote tunnel end-point address */ 32288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA}; 33288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA 34f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemmingerstruct ip6_tnl_parm2 { 35f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger char name[IFNAMSIZ]; /* name of tunnel device */ 36f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger int link; /* ifindex of underlying L2 interface */ 37f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger __u8 proto; /* tunnel protocol */ 38f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger __u8 encap_limit; /* encapsulation limit for tunnel */ 39f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger __u8 hop_limit; /* hop limit for tunnel */ 40f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger __be32 flowinfo; /* traffic class and flowlabel for tunnel */ 41f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger __u32 flags; /* tunnel flags */ 42f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger struct in6_addr laddr; /* local tunnel end-point address */ 43f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger struct in6_addr raddr; /* remote tunnel end-point address */ 44f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger 45f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger __be16 i_flags; 46f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger __be16 o_flags; 47f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger __be32 i_key; 48f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger __be32 o_key; 49f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger}; 50f22640712fe7508df78b0eda397c4bc35a9ce936Stephen Hemminger 51288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURA#endif 52