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