11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _IF_TUNNEL_H_ 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _IF_TUNNEL_H_ 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4c19e654ddbe3831252f61e76a74d661e1a755530Herbert Xu#include <linux/ip.h> 5125a77ed9fbd21d1277f53e9ed6b39ad3d34e613Brian Haley#include <linux/in6.h> 6607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#include <uapi/linux/if_tunnel.h> 7aa0010f880ab542da3ad0e72992f2dc518ac68a0Amerigo Wang#include <linux/u64_stats_sync.h> 8aa0010f880ab542da3ad0e72992f2dc518ac68a0Amerigo Wang 9e086cadc08e259150b2ab8f7f4a16dbf9e3c2f22Amerigo Wang/* 10e086cadc08e259150b2ab8f7f4a16dbf9e3c2f22Amerigo Wang * Locking : hash tables are protected by RCU and RTNL 11e086cadc08e259150b2ab8f7f4a16dbf9e3c2f22Amerigo Wang */ 12e086cadc08e259150b2ab8f7f4a16dbf9e3c2f22Amerigo Wang 13e086cadc08e259150b2ab8f7f4a16dbf9e3c2f22Amerigo Wang#define for_each_ip_tunnel_rcu(pos, start) \ 14e086cadc08e259150b2ab8f7f4a16dbf9e3c2f22Amerigo Wang for (pos = rcu_dereference(start); pos; pos = rcu_dereference(pos->next)) 15e086cadc08e259150b2ab8f7f4a16dbf9e3c2f22Amerigo Wang 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* _IF_TUNNEL_H_ */ 17