Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _IF_TUNNEL_H_ |
| 2 | #define _IF_TUNNEL_H_ |
| 3 | |
Herbert Xu | c19e654 | 2008-10-09 11:59:55 -0700 | [diff] [blame] | 4 | #include <linux/ip.h> |
Brian Haley | 125a77e | 2009-10-07 13:57:10 -0700 | [diff] [blame] | 5 | #include <linux/in6.h> |
David Howells | 607ca46 | 2012-10-13 10:46:48 +0100 | [diff] [blame] | 6 | #include <uapi/linux/if_tunnel.h> |
Amerigo Wang | aa0010f | 2012-11-11 21:52:33 +0000 | [diff] [blame] | 7 | #include <linux/u64_stats_sync.h> |
| 8 | |
Amerigo Wang | e086cad | 2012-11-11 21:52:34 +0000 | [diff] [blame] | 9 | /* |
| 10 | * Locking : hash tables are protected by RCU and RTNL |
| 11 | */ |
| 12 | |
| 13 | #define for_each_ip_tunnel_rcu(pos, start) \ |
| 14 | for (pos = rcu_dereference(start); pos; pos = rcu_dereference(pos->next)) |
| 15 | |
Amerigo Wang | aa0010f | 2012-11-11 21:52:33 +0000 | [diff] [blame] | 16 | /* often modified stats are per cpu, other are shared (netdev->stats) */ |
| 17 | struct pcpu_tstats { |
| 18 | u64 rx_packets; |
| 19 | u64 rx_bytes; |
| 20 | u64 tx_packets; |
| 21 | u64 tx_bytes; |
| 22 | struct u64_stats_sync syncp; |
| 23 | }; |
Masahide NAKAMURA | 6fd8bb8 | 2007-01-23 22:17:23 -0800 | [diff] [blame] | 24 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 25 | #endif /* _IF_TUNNEL_H_ */ |