#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_ */ |