| #ifndef _IF_TUNNEL_H_ | 
 | #define _IF_TUNNEL_H_ | 
 |  | 
 | #include <linux/ip.h> | 
 | #include <linux/in6.h> | 
 | #include <uapi/linux/if_tunnel.h> | 
 | #include <linux/u64_stats_sync.h> | 
 |  | 
 | /* | 
 |  * Locking : hash tables are protected by RCU and RTNL | 
 |  */ | 
 |  | 
 | #define for_each_ip_tunnel_rcu(pos, start) \ | 
 | 	for (pos = rcu_dereference(start); pos; pos = rcu_dereference(pos->next)) | 
 |  | 
 | /* often modified stats are per cpu, other are shared (netdev->stats) */ | 
 | struct pcpu_tstats { | 
 | 	u64	rx_packets; | 
 | 	u64	rx_bytes; | 
 | 	u64	tx_packets; | 
 | 	u64	tx_bytes; | 
 | 	struct u64_stats_sync	syncp; | 
 | }; | 
 |  | 
 | #endif /* _IF_TUNNEL_H_ */ |