1 #ifndef __NETNS_XFRM_H 2 #define __NETNS_XFRM_H 3 4 #include <linux/list.h> 5 #include <linux/wait.h> 6 #include <linux/workqueue.h> 7 #include <linux/xfrm.h> 8 9 struct ctl_table_header; 10 11 struct xfrm_policy_hash { 12 struct hlist_head *table; 13 unsigned int hmask; 14 }; 15 16 struct netns_xfrm { 17 struct list_head state_all; 18 /* 19 * Hash table to find appropriate SA towards given target (endpoint of 20 * tunnel or destination of transport mode) allowed by selector. 21 * 22 * Main use is finding SA after policy selected tunnel or transport 23 * mode. Also, it can be used by ah/esp icmp error handler to find 24 * offending SA. 25 */ 26 struct hlist_head *state_bydst; 27 struct hlist_head *state_bysrc; 28 struct hlist_head *state_byspi; 29 unsigned int state_hmask; 30 unsigned int state_num; 31 struct work_struct state_hash_work; 32 struct hlist_head state_gc_list; 33 struct work_struct state_gc_work; 34 35 wait_queue_head_t km_waitq; 36 37 struct list_head policy_all; 38 struct hlist_head *policy_byidx; 39 unsigned int policy_idx_hmask; 40 struct hlist_head policy_inexact[XFRM_POLICY_MAX * 2]; 41 struct xfrm_policy_hash policy_bydst[XFRM_POLICY_MAX * 2]; 42 unsigned int policy_count[XFRM_POLICY_MAX * 2]; 43 struct work_struct policy_hash_work; 44 45 struct sock *nlsk; 46 47 u32 sysctl_aevent_etime; 48 u32 sysctl_aevent_rseqth; 49 int sysctl_larval_drop; 50 u32 sysctl_acq_expires; 51 #ifdef CONFIG_SYSCTL 52 struct ctl_table_header *sysctl_hdr; 53 #endif 54 }; 55 56 #endif 57