xfrm_state.c

#include <linux/workqueue.h>
#include <net/xfrm.h>
#include <linux/pfkeyv2.h>
#include <linux/ipsec.h>
#include <linux/module.h>
#include <linux/cache.h>
#include <linux/audit.h>
#include <asm/uaccess.h>
#include "xfrm_hash.h"

xfrm_state.cのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define xfrm_audit_state_replay(x, s, sq)   do { ; } while (0)

関数

 EXPORT_SYMBOL (xfrm_nl)
 EXPORT_SYMBOL (sysctl_xfrm_aevent_etime)
 EXPORT_SYMBOL (sysctl_xfrm_aevent_rseqth)
static DEFINE_SPINLOCK (xfrm_state_lock)
static struct xfrm_state_afinfoxfrm_state_get_afinfo (unsigned int family)
static void xfrm_state_put_afinfo (struct xfrm_state_afinfo *afinfo)
static unsigned int xfrm_dst_hash (xfrm_address_t *daddr, xfrm_address_t *saddr, u32 reqid, unsigned short family)
static unsigned int xfrm_src_hash (xfrm_address_t *daddr, xfrm_address_t *saddr, unsigned short family)
static unsigned int xfrm_spi_hash (xfrm_address_t *daddr, __be32 spi, u8 proto, unsigned short family)
static void xfrm_hash_transfer (struct hlist_head *list, struct hlist_head *ndsttable, struct hlist_head *nsrctable, struct hlist_head *nspitable, unsigned int nhashmask)
static unsigned long xfrm_hash_new_size (void)
static DEFINE_MUTEX (hash_resize_mutex)
static void xfrm_hash_resize (struct work_struct *__unused)
static DECLARE_WORK (xfrm_hash_work, xfrm_hash_resize)
 DECLARE_WAIT_QUEUE_HEAD (km_waitq)
 EXPORT_SYMBOL (km_waitq)
static DEFINE_RWLOCK (xfrm_state_afinfo_lock)
static HLIST_HEAD (xfrm_state_gc_list)
static DEFINE_SPINLOCK (xfrm_state_gc_lock)
int __xfrm_state_delete (struct xfrm_state *x)
int km_query (struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *pol)
void km_state_expired (struct xfrm_state *x, int hard, u32 pid)
static struct xfrm_state_afinfoxfrm_state_lock_afinfo (unsigned int family)
static void xfrm_state_unlock_afinfo (struct xfrm_state_afinfo *afinfo) __releases(xfrm_state_afinfo_lock)
int xfrm_register_type (const struct xfrm_type *type, unsigned short family)
 EXPORT_SYMBOL (xfrm_register_type)
int xfrm_unregister_type (const struct xfrm_type *type, unsigned short family)
 EXPORT_SYMBOL (xfrm_unregister_type)
static struct xfrm_typexfrm_get_type (u8 proto, unsigned short family)
static void xfrm_put_type (const struct xfrm_type *type)
int xfrm_register_mode (struct xfrm_mode *mode, int family)
 EXPORT_SYMBOL (xfrm_register_mode)
int xfrm_unregister_mode (struct xfrm_mode *mode, int family)
 EXPORT_SYMBOL (xfrm_unregister_mode)
static struct xfrm_modexfrm_get_mode (unsigned int encap, int family)
static void xfrm_put_mode (struct xfrm_mode *mode)
static void xfrm_state_gc_destroy (struct xfrm_state *x)
static void xfrm_state_gc_task (struct work_struct *data)
static unsigned long make_jiffies (long secs)
static void xfrm_timer_handler (unsigned long data)
static void xfrm_replay_timer_handler (unsigned long data)
struct xfrm_statexfrm_state_alloc (void)
 EXPORT_SYMBOL (xfrm_state_alloc)
void __xfrm_state_destroy (struct xfrm_state *x)
 EXPORT_SYMBOL (__xfrm_state_destroy)
 EXPORT_SYMBOL (__xfrm_state_delete)
int xfrm_state_delete (struct xfrm_state *x)
 EXPORT_SYMBOL (xfrm_state_delete)
static int xfrm_state_flush_secctx_check (u8 proto, struct xfrm_audit *audit_info)
int xfrm_state_flush (u8 proto, struct xfrm_audit *audit_info)
 EXPORT_SYMBOL (xfrm_state_flush)
void xfrm_sad_getinfo (struct xfrmk_sadinfo *si)
 EXPORT_SYMBOL (xfrm_sad_getinfo)
static int xfrm_init_tempsel (struct xfrm_state *x, struct flowi *fl, struct xfrm_tmpl *tmpl, xfrm_address_t *daddr, xfrm_address_t *saddr, unsigned short family)
static struct xfrm_state__xfrm_state_lookup (xfrm_address_t *daddr, __be32 spi, u8 proto, unsigned short family)
static struct xfrm_state__xfrm_state_lookup_byaddr (xfrm_address_t *daddr, xfrm_address_t *saddr, u8 proto, unsigned short family)
static struct xfrm_state__xfrm_state_locate (struct xfrm_state *x, int use_spi, int family)
static void xfrm_hash_grow_check (int have_hash_collision)
struct xfrm_statexfrm_state_find (xfrm_address_t *daddr, xfrm_address_t *saddr, struct flowi *fl, struct xfrm_tmpl *tmpl, struct xfrm_policy *pol, int *err, unsigned short family)
struct xfrm_statexfrm_stateonly_find (xfrm_address_t *daddr, xfrm_address_t *saddr, unsigned short family, u8 mode, u8 proto, u32 reqid)
 EXPORT_SYMBOL (xfrm_stateonly_find)
static void __xfrm_state_insert (struct xfrm_state *x)
static void __xfrm_state_bump_genids (struct xfrm_state *xnew)
void xfrm_state_insert (struct xfrm_state *x)
 EXPORT_SYMBOL (xfrm_state_insert)
static struct xfrm_state__find_acq_core (unsigned short family, u8 mode, u32 reqid, u8 proto, xfrm_address_t *daddr, xfrm_address_t *saddr, int create)
static struct xfrm_state__xfrm_find_acq_byseq (u32 seq)
int xfrm_state_add (struct xfrm_state *x)
 EXPORT_SYMBOL (xfrm_state_add)
int xfrm_state_update (struct xfrm_state *x)
 EXPORT_SYMBOL (xfrm_state_update)
int xfrm_state_check_expire (struct xfrm_state *x)
 EXPORT_SYMBOL (xfrm_state_check_expire)
struct xfrm_statexfrm_state_lookup (xfrm_address_t *daddr, __be32 spi, u8 proto, unsigned short family)
 EXPORT_SYMBOL (xfrm_state_lookup)
struct xfrm_statexfrm_state_lookup_byaddr (xfrm_address_t *daddr, xfrm_address_t *saddr, u8 proto, unsigned short family)
 EXPORT_SYMBOL (xfrm_state_lookup_byaddr)
struct xfrm_statexfrm_find_acq (u8 mode, u32 reqid, u8 proto, xfrm_address_t *daddr, xfrm_address_t *saddr, int create, unsigned short family)
 EXPORT_SYMBOL (xfrm_find_acq)
struct xfrm_statexfrm_find_acq_byseq (u32 seq)
 EXPORT_SYMBOL (xfrm_find_acq_byseq)
u32 xfrm_get_acqseq (void)
 EXPORT_SYMBOL (xfrm_get_acqseq)
int xfrm_alloc_spi (struct xfrm_state *x, u32 low, u32 high)
 EXPORT_SYMBOL (xfrm_alloc_spi)
int xfrm_state_walk (u8 proto, int(*func)(struct xfrm_state *, int, void *), void *data)
 EXPORT_SYMBOL (xfrm_state_walk)
void xfrm_replay_notify (struct xfrm_state *x, int event)
int xfrm_replay_check (struct xfrm_state *x, struct sk_buff *skb, __be32 net_seq)
void xfrm_replay_advance (struct xfrm_state *x, __be32 net_seq)
static LIST_HEAD (xfrm_km_list)
static DEFINE_RWLOCK (xfrm_km_lock)
void km_policy_notify (struct xfrm_policy *xp, int dir, struct km_event *c)
void km_state_notify (struct xfrm_state *x, struct km_event *c)
 EXPORT_SYMBOL (km_policy_notify)
 EXPORT_SYMBOL (km_state_notify)
 EXPORT_SYMBOL (km_state_expired)
 EXPORT_SYMBOL (km_query)
int km_new_mapping (struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
 EXPORT_SYMBOL (km_new_mapping)
void km_policy_expired (struct xfrm_policy *pol, int dir, int hard, u32 pid)
 EXPORT_SYMBOL (km_policy_expired)
int km_report (u8 proto, struct xfrm_selector *sel, xfrm_address_t *addr)
 EXPORT_SYMBOL (km_report)
int xfrm_user_policy (struct sock *sk, int optname, u8 __user *optval, int optlen)
 EXPORT_SYMBOL (xfrm_user_policy)
int xfrm_register_km (struct xfrm_mgr *km)
 EXPORT_SYMBOL (xfrm_register_km)
int xfrm_unregister_km (struct xfrm_mgr *km)
 EXPORT_SYMBOL (xfrm_unregister_km)
int xfrm_state_register_afinfo (struct xfrm_state_afinfo *afinfo)
 EXPORT_SYMBOL (xfrm_state_register_afinfo)
int xfrm_state_unregister_afinfo (struct xfrm_state_afinfo *afinfo)
 EXPORT_SYMBOL (xfrm_state_unregister_afinfo)
void xfrm_state_delete_tunnel (struct xfrm_state *x)
 EXPORT_SYMBOL (xfrm_state_delete_tunnel)
int xfrm_state_mtu (struct xfrm_state *x, int mtu)
int xfrm_init_state (struct xfrm_state *x)
 EXPORT_SYMBOL (xfrm_init_state)
void __init xfrm_state_init (void)

変数

struct sockxfrm_nl
u32 sysctl_xfrm_aevent_etime __read_mostly = XFRM_AE_ETIME
static unsigned int xfrm_state_num
static unsigned int xfrm_state_genid
static struct xfrm_state_afinfoxfrm_state_afinfo [NPROTO]
static struct work_struct xfrm_state_gc_work


マクロ定義

#define xfrm_audit_state_replay ( x,
s,
sq   )     do { ; } while (0)

xfrm_state.c68 行で定義されています。

参照元 xfrm_replay_check().


関数

static struct xfrm_state* __find_acq_core ( unsigned short  family,
u8  mode,
u32  reqid,
u8  proto,
xfrm_address_t daddr,
xfrm_address_t saddr,
int  create 
) [static, read]

xfrm_state.c970 行で定義されています。

参照先 xfrm_address_t::a4, xfrm_address_t::a6, add_timer(), AF_INET, AF_INET6, xfrm_state::bydst, xfrm_state::bysrc, xfrm_selector::daddr, xfrm_id::daddr, timer_list::expires, xfrm_state::family, xfrm_lifetime_cfg::hard_add_expires_seconds, HZ, xfrm_state::id, jiffies, xfrm_state::km, xfrm_state::lft, xfrm_state::mode, NULL, xfrm_selector::prefixlen_d, xfrm_selector::prefixlen_s, xfrm_state::props, xfrm_id::proto, xfrm_state::reqid, xfrm_state::saddr, xfrm_selector::saddr, xfrm_state::sel, xfrm_id::spi, xfrm_state::state, sysctl_xfrm_acq_expires, xfrm_state::timer, xfrm_dst_hash(), xfrm_hash_grow_check(), xfrm_src_hash(), XFRM_STATE_ACQ, xfrm_state_alloc(), xfrm_state_hold(), と xfrm_state_num.

参照元 xfrm_find_acq(), と xfrm_state_add().

関数の呼び出しグラフ:

static struct xfrm_state * __xfrm_find_acq_byseq ( u32  seq  )  [static, read]

xfrm_state.c1428 行で定義されています。

参照先 xfrm_state::bydst, xfrm_state::km, NULL, xfrm_state::seq, xfrm_state::state, XFRM_STATE_ACQ, と xfrm_state_hold().

参照元 xfrm_find_acq_byseq(), と xfrm_state_add().

関数の呼び出しグラフ:

static void __xfrm_state_bump_genids ( struct xfrm_state xnew  )  [static]

xfrm_state.c942 行で定義されています。

参照先 xfrm_id::daddr, xfrm_state::family, family, xfrm_state::genid, xfrm_state::id, xfrm_state::props, xfrm_state::reqid, xfrm_state::saddr, u32, xfrm_addr_cmp(), xfrm_dst_hash(), と xfrm_state_genid.

参照元 xfrm_state_add(), と xfrm_state_insert().

関数の呼び出しグラフ:

int __xfrm_state_delete ( struct xfrm_state x  ) 

void __xfrm_state_destroy ( struct xfrm_state x  ) 

xfrm_state.c536 行で定義されています。

参照先 xfrm_state::bydst, xfrm_state::km, schedule_work(), spin_lock_bh, spin_unlock_bh, xfrm_state::state, XFRM_STATE_DEAD, と xfrm_state_gc_work.

参照元 xfrm_state_put().

関数の呼び出しグラフ:

static void __xfrm_state_insert ( struct xfrm_state x  )  [static]

xfrm_state.c910 行で定義されています。

参照先 xfrm_state::bydst, xfrm_state::byspi, xfrm_state::bysrc, xfrm_id::daddr, xfrm_state::family, xfrm_state::genid, HZ, xfrm_state::id, jiffies, km_waitq, mod_timer(), NULL, xfrm_state::props, xfrm_id::proto, xfrm_state::replay_maxage, xfrm_state::reqid, xfrm_state::rtimer, xfrm_state::saddr, xfrm_id::spi, xfrm_state::timer, xfrm_dst_hash(), xfrm_hash_grow_check(), xfrm_spi_hash(), xfrm_src_hash(), xfrm_state_genid, と xfrm_state_num.

参照元 xfrm_state_add(), xfrm_state_insert(), と xfrm_state_update().

関数の呼び出しグラフ:

static struct xfrm_state* __xfrm_state_locate ( struct xfrm_state x,
int  use_spi,
int  family 
) [static, read]

xfrm_state.c747 行で定義されています。

参照先 __xfrm_state_lookup(), __xfrm_state_lookup_byaddr(), xfrm_id::daddr, xfrm_state::id, xfrm_state::props, xfrm_id::proto, xfrm_state::saddr, と xfrm_id::spi.

参照元 xfrm_state_add(), と xfrm_state_update().

関数の呼び出しグラフ:

static struct xfrm_state* __xfrm_state_lookup ( xfrm_address_t daddr,
__be32  spi,
u8  proto,
unsigned short  family 
) [static, read]

xfrm_state.c679 行で定義されています。

参照先 xfrm_address_t::a4, xfrm_address_t::a6, AF_INET, AF_INET6, xfrm_id::daddr, xfrm_state::family, xfrm_state::id, NULL, xfrm_state::props, xfrm_id::proto, xfrm_id::spi, xfrm_spi_hash(), と xfrm_state_hold().

参照元 __xfrm_state_locate(), xfrm_state_find(), と xfrm_state_lookup().

関数の呼び出しグラフ:

static struct xfrm_state* __xfrm_state_lookup_byaddr ( xfrm_address_t daddr,
xfrm_address_t saddr,
u8  proto,
unsigned short  family 
) [static, read]

xfrm_state.c711 行で定義されています。

参照先 xfrm_address_t::a4, xfrm_address_t::a6, AF_INET, AF_INET6, xfrm_id::daddr, xfrm_state::family, xfrm_state::id, NULL, xfrm_state::props, xfrm_id::proto, xfrm_state::saddr, xfrm_src_hash(), と xfrm_state_hold().

参照元 __xfrm_state_locate(), と xfrm_state_lookup_byaddr().

関数の呼び出しグラフ:

DECLARE_WAIT_QUEUE_HEAD ( km_waitq   ) 

static DECLARE_WORK ( xfrm_hash_work  ,
xfrm_hash_resize   
) [static]

static DEFINE_MUTEX ( hash_resize_mutex   )  [static]

static DEFINE_RWLOCK ( xfrm_km_lock   )  [static]

static DEFINE_RWLOCK ( xfrm_state_afinfo_lock   )  [static]

static DEFINE_SPINLOCK ( xfrm_state_gc_lock   )  [static]

static DEFINE_SPINLOCK ( xfrm_state_lock   )  [static]

EXPORT_SYMBOL ( xfrm_init_state   ) 

EXPORT_SYMBOL ( xfrm_state_delete_tunnel   ) 

EXPORT_SYMBOL ( xfrm_state_unregister_afinfo   ) 

EXPORT_SYMBOL ( xfrm_state_register_afinfo   ) 

EXPORT_SYMBOL ( xfrm_unregister_km   ) 

EXPORT_SYMBOL ( xfrm_register_km   ) 

EXPORT_SYMBOL ( xfrm_user_policy   ) 

EXPORT_SYMBOL ( km_report   ) 

EXPORT_SYMBOL ( km_policy_expired   ) 

EXPORT_SYMBOL ( km_new_mapping   ) 

EXPORT_SYMBOL ( km_query   ) 

EXPORT_SYMBOL ( km_state_expired   ) 

EXPORT_SYMBOL ( km_state_notify   ) 

EXPORT_SYMBOL ( km_policy_notify   ) 

EXPORT_SYMBOL ( xfrm_state_walk   ) 

EXPORT_SYMBOL ( xfrm_alloc_spi   ) 

EXPORT_SYMBOL ( xfrm_get_acqseq   ) 

EXPORT_SYMBOL ( xfrm_find_acq_byseq   ) 

EXPORT_SYMBOL ( xfrm_find_acq   ) 

EXPORT_SYMBOL ( xfrm_state_lookup_byaddr   ) 

EXPORT_SYMBOL ( xfrm_state_lookup   ) 

EXPORT_SYMBOL ( xfrm_state_check_expire   ) 

EXPORT_SYMBOL ( xfrm_state_update   ) 

EXPORT_SYMBOL ( xfrm_state_add   ) 

EXPORT_SYMBOL ( xfrm_state_insert   ) 

EXPORT_SYMBOL ( xfrm_stateonly_find   ) 

EXPORT_SYMBOL ( xfrm_sad_getinfo   ) 

EXPORT_SYMBOL ( xfrm_state_flush   ) 

EXPORT_SYMBOL ( xfrm_state_delete   ) 

EXPORT_SYMBOL ( __xfrm_state_delete   ) 

EXPORT_SYMBOL ( __xfrm_state_destroy   ) 

EXPORT_SYMBOL ( xfrm_state_alloc   ) 

EXPORT_SYMBOL ( xfrm_unregister_mode   ) 

EXPORT_SYMBOL ( xfrm_register_mode   ) 

EXPORT_SYMBOL ( xfrm_unregister_type   ) 

EXPORT_SYMBOL ( xfrm_register_type   ) 

EXPORT_SYMBOL ( km_waitq   ) 

EXPORT_SYMBOL ( sysctl_xfrm_aevent_rseqth   ) 

EXPORT_SYMBOL ( sysctl_xfrm_aevent_etime   ) 

EXPORT_SYMBOL ( xfrm_nl   ) 

static HLIST_HEAD ( xfrm_state_gc_list   )  [static]

int km_new_mapping ( struct xfrm_state x,
xfrm_address_t ipaddr,
__be16  sport 
)

xfrm_state.c1734 行で定義されています。

参照先 EINVAL, list, xfrm_mgr::new_mapping, read_lock, と read_unlock.

参照元 esp_input_done2().

void km_policy_expired ( struct xfrm_policy pol,
int  dir,
int  hard,
u32  pid 
)

xfrm_state.c1751 行で定義されています。

参照先 km_event::data, km_event::event, km_event::hard, km_policy_notify(), km_waitq, km_event::pid, と XFRM_MSG_POLEXPIRE.

参照元 xfrm_add_pol_expire(), と xfrm_policy_timer().

関数の呼び出しグラフ:

void km_policy_notify ( struct xfrm_policy xp,
int  dir,
struct km_event c 
)

xfrm_state.c1676 行で定義されています。

参照先 list, xfrm_mgr::notify_policy, read_lock, と read_unlock.

参照元 km_policy_expired(), pfkey_spdadd(), pfkey_spddelete(), pfkey_spdflush(), pfkey_spdget(), xfrm_add_policy(), xfrm_flush_policy(), と xfrm_get_policy().

int km_query ( struct xfrm_state x,
struct xfrm_tmpl t,
struct xfrm_policy pol 
)

int km_report ( u8  proto,
struct xfrm_selector sel,
xfrm_address_t addr 
)

xfrm_state.c1787 行で定義されています。

参照先 EINVAL, list, read_lock, read_unlock, と xfrm_mgr::report.

参照元 mip6_destopt_reject().

void km_state_expired ( struct xfrm_state x,
int  hard,
u32  pid 
)

void km_state_notify ( struct xfrm_state x,
struct km_event c 
)

xfrm_state.c1687 行で定義されています。

参照先 list, xfrm_mgr::notify, read_lock, と read_unlock.

参照元 km_state_expired(), pfkey_add(), pfkey_delete(), pfkey_flush(), xfrm_add_sa(), xfrm_del_sa(), xfrm_flush_sa(), xfrm_new_ae(), と xfrm_replay_notify().

static LIST_HEAD ( xfrm_km_list   )  [static]

static unsigned long make_jiffies ( long  secs  )  [inline, static]

xfrm_state.c420 行で定義されています。

参照先 HZ.

int xfrm_alloc_spi ( struct xfrm_state x,
u32  low,
u32  high 
)

xfrm_state.c1471 行で定義されています。

参照先 xfrm_state::byspi, xfrm_id::daddr, ENOENT, xfrm_state::family, xfrm_state::id, xfrm_state::km, xfrm_state::lock, NULL, xfrm_state::props, xfrm_id::proto, xfrm_id::spi, spin_lock_bh, spin_unlock_bh, xfrm_state::state, u32, xfrm_spi_hash(), XFRM_STATE_DEAD, xfrm_state_lookup(), と xfrm_state_put().

参照元 pfkey_getspi(), と xfrm_alloc_userspi().

関数の呼び出しグラフ:

static unsigned int xfrm_dst_hash ( xfrm_address_t daddr,
xfrm_address_t saddr,
u32  reqid,
unsigned short  family 
) [inline, static]

xfrm_state.c71 行で定義されています。

参照先 __xfrm_dst_hash().

参照元 __find_acq_core(), __xfrm_state_bump_genids(), __xfrm_state_insert(), xfrm_state_find(), と xfrm_stateonly_find().

関数の呼び出しグラフ:

struct xfrm_state* xfrm_find_acq ( u8  mode,
u32  reqid,
u8  proto,
xfrm_address_t daddr,
xfrm_address_t saddr,
int  create,
unsigned short  family 
) [read]

xfrm_state.c1374 行で定義されています。

参照先 __find_acq_core(), spin_lock_bh, と spin_unlock_bh.

参照元 pfkey_getspi(), と xfrm_alloc_userspi().

関数の呼び出しグラフ:

struct xfrm_state* xfrm_find_acq_byseq ( u32  seq  )  [read]

xfrm_state.c1447 行で定義されています。

参照先 __xfrm_find_acq_byseq(), spin_lock_bh, と spin_unlock_bh.

参照元 pfkey_acquire(), pfkey_getspi(), と xfrm_alloc_userspi().

関数の呼び出しグラフ:

u32 xfrm_get_acqseq ( void   ) 

xfrm_state.c1458 行で定義されています。

参照先 DEFINE_SPINLOCK, res, spin_lock_bh, spin_unlock_bh, と u32.

参照元 build_acquire().

static struct xfrm_mode* xfrm_get_mode ( unsigned int  encap,
int  family 
) [static, read]

xfrm_state.c347 行で定義されています。

参照先 mode, xfrm_state_afinfo::mode_map, NULL, xfrm_mode::owner, request_module(), try_module_get(), XFRM_MODE_MAX, xfrm_state_get_afinfo(), と xfrm_state_put_afinfo().

参照元 xfrm_init_state().

関数の呼び出しグラフ:

static struct xfrm_type* xfrm_get_type ( u8  proto,
unsigned short  family 
) [static, read]

xfrm_state.c257 行で定義されています。

参照先 NULL, xfrm_type::owner, request_module(), try_module_get(), type, xfrm_state_afinfo::type_map, xfrm_state_get_afinfo(), と xfrm_state_put_afinfo().

参照元 xfrm_init_state().

関数の呼び出しグラフ:

static void xfrm_hash_grow_check ( int  have_hash_collision  )  [static]

xfrm_state.c758 行で定義されています。

参照先 schedule_work(), と xfrm_state_num.

参照元 __find_acq_core(), __xfrm_state_insert(), と xfrm_state_find().

関数の呼び出しグラフ:

static unsigned long xfrm_hash_new_size ( void   )  [static]

xfrm_state.c123 行で定義されています。

参照元 xfrm_hash_resize().

static void xfrm_hash_resize ( struct work_struct __unused  )  [static]

xfrm_state.c131 行で定義されています。

参照先 i, mutex_lock(), mutex_unlock(), spin_lock_bh, spin_unlock_bh, xfrm_hash_alloc(), xfrm_hash_free(), xfrm_hash_new_size(), と xfrm_hash_transfer().

関数の呼び出しグラフ:

static void xfrm_hash_transfer ( struct hlist_head *  list,
struct hlist_head *  ndsttable,
struct hlist_head *  nsrctable,
struct hlist_head *  nspitable,
unsigned int  nhashmask 
) [static]

xfrm_state.c92 行で定義されています。

参照先 __xfrm_dst_hash(), __xfrm_spi_hash(), __xfrm_src_hash(), xfrm_state::bydst, xfrm_state::byspi, xfrm_state::bysrc, xfrm_id::daddr, xfrm_state::family, xfrm_state::id, xfrm_state::props, xfrm_id::proto, xfrm_state::reqid, xfrm_state::saddr, xfrm_id::spi, tmp, と x.

参照元 xfrm_hash_resize().

関数の呼び出しグラフ:

int xfrm_init_state ( struct xfrm_state x  ) 

xfrm_state.c1947 行で定義されています。

参照先 AF_INET, AF_INET6, AF_UNSPEC, EAFNOSUPPORT, EPROTONOSUPPORT, error, xfrm_state::family, xfrm_selector::family, xfrm_mode::flags, xfrm_state::id, xfrm_state_afinfo::init_flags, xfrm_type::init_state, xfrm_state::inner_mode, xfrm_state::inner_mode_iaf, xfrm_state::km, xfrm_state::mode, NULL, xfrm_state::outer_mode, xfrm_state::props, xfrm_id::proto, xfrm_state::sel, xfrm_state::state, xfrm_state::type, xfrm_get_mode(), xfrm_get_type(), XFRM_MODE_FLAG_TUNNEL, xfrm_put_mode(), xfrm_state_get_afinfo(), xfrm_state_put_afinfo(), と XFRM_STATE_VALID.

参照元 ipcomp6_tunnel_create(), ipcomp_tunnel_create(), pfkey_msg2xfrm_state(), と xfrm_state_construct().

関数の呼び出しグラフ:

static int xfrm_init_tempsel ( struct xfrm_state x,
struct flowi fl,
struct xfrm_tmpl tmpl,
xfrm_address_t daddr,
xfrm_address_t saddr,
unsigned short  family 
) [static]

xfrm_state.c666 行で定義されています。

参照先 xfrm_state_afinfo::init_tempsel, xfrm_state_get_afinfo(), と xfrm_state_put_afinfo().

参照元 xfrm_state_find().

関数の呼び出しグラフ:

static void xfrm_put_mode ( struct xfrm_mode mode  )  [static]

xfrm_state.c375 行で定義されています。

参照先 module_put(), と xfrm_mode::owner.

参照元 xfrm_init_state(), と xfrm_state_gc_destroy().

関数の呼び出しグラフ:

static void xfrm_put_type ( const struct xfrm_type type  )  [static]

xfrm_state.c284 行で定義されています。

参照先 module_put(), と xfrm_type::owner.

参照元 xfrm_state_gc_destroy().

関数の呼び出しグラフ:

int xfrm_register_km ( struct xfrm_mgr km  ) 

xfrm_state.c1846 行で定義されています。

参照先 xfrm_mgr::list, write_lock_bh, と write_unlock_bh.

参照元 ipsec_pfkey_init(), と xfrm_user_init().

int xfrm_register_mode ( struct xfrm_mode mode,
int  family 
)

xfrm_state.c289 行で定義されています。

参照先 xfrm_mode::afinfo, EAFNOSUPPORT, EEXIST, EINVAL, xfrm_mode::encap, ENOENT, err, xfrm_state_afinfo::mode_map, NULL, out, xfrm_state_afinfo::owner, try_module_get(), XFRM_MODE_MAX, xfrm_state_lock_afinfo(), と xfrm_state_unlock_afinfo().

参照元 xfrm4_beet_init(), xfrm4_mode_tunnel_init(), xfrm4_transport_init(), xfrm6_beet_init(), xfrm6_mode_tunnel_init(), xfrm6_ro_init(), と xfrm6_transport_init().

関数の呼び出しグラフ:

int xfrm_register_type ( const struct xfrm_type type,
unsigned short  family 
)

xfrm_state.c219 行で定義されています。

参照先 EAFNOSUPPORT, EEXIST, err, NULL, xfrm_type::proto, xfrm_state_afinfo::type_map, xfrm_state_lock_afinfo(), と xfrm_state_unlock_afinfo().

参照元 ah4_init(), ah6_init(), esp4_init(), esp6_init(), ipcomp4_init(), ipcomp6_init(), ipip_init(), mip6_init(), と xfrm6_tunnel_init().

関数の呼び出しグラフ:

void xfrm_replay_advance ( struct xfrm_state x,
__be32  net_seq 
)

xfrm_state.c1652 行で定義されています。

参照先 xfrm_replay_state::bitmap, xfrm_state::props, xfrm_state::replay, xfrm_replay_state::seq, seq, U, u32, xfrm_aevent_is_on(), xfrm_replay_notify(), と XFRM_REPLAY_UPDATE.

参照元 xfrm_input().

関数の呼び出しグラフ:

int xfrm_replay_check ( struct xfrm_state x,
struct sk_buff skb,
__be32  net_seq 
)

xfrm_state.c1622 行で定義されています。

参照先 xfrm_replay_state::bitmap, EINVAL, xfrm_state::props, xfrm_stats::replay, xfrm_state::replay, xfrm_stats::replay_window, xfrm_state::replay_window, xfrm_replay_state::seq, seq, xfrm_state::stats, U, u32, と xfrm_audit_state_replay.

参照元 xfrm_input().

void xfrm_replay_notify ( struct xfrm_state x,
int  event 
)

xfrm_state.c1559 行で定義されています。

参照先 km_event::aevent, xfrm_replay_state::bitmap, km_event::data, km_event::event, jiffies, km_state_notify(), memcpy, mod_timer(), xfrm_replay_state::oseq, xfrm_state::preplay, xfrm_state::replay, xfrm_state::replay_maxage, xfrm_state::replay_maxdiff, xfrm_state::rtimer, xfrm_replay_state::seq, xfrm_state::xflags, XFRM_MSG_NEWAE, XFRM_REPLAY_TIMEOUT, XFRM_REPLAY_UPDATE, と XFRM_TIME_DEFER.

参照元 xfrm_output_one(), xfrm_replay_advance(), と xfrm_replay_timer_handler().

関数の呼び出しグラフ:

static void xfrm_replay_timer_handler ( unsigned long  data  )  [static]

xfrm_state.c1606 行で定義されています。

参照先 xfrm_state::km, xfrm_state::lock, spin_lock, spin_unlock, xfrm_state::state, xfrm_state::xflags, xfrm_aevent_is_on(), xfrm_replay_notify(), XFRM_REPLAY_TIMEOUT, XFRM_STATE_VALID, と XFRM_TIME_DEFER.

参照元 xfrm_state_alloc().

関数の呼び出しグラフ:

void xfrm_sad_getinfo ( struct xfrmk_sadinfo si  ) 

xfrm_state.c655 行で定義されています。

参照先 xfrmk_sadinfo::sadcnt, xfrmk_sadinfo::sadhcnt, xfrmk_sadinfo::sadhmcnt, spin_lock_bh, spin_unlock_bh, と xfrm_state_num.

参照元 build_sadinfo().

static unsigned int xfrm_spi_hash ( xfrm_address_t daddr,
__be32  spi,
u8  proto,
unsigned short  family 
) [inline, static]

xfrm_state.c87 行で定義されています。

参照先 __xfrm_spi_hash().

参照元 __xfrm_state_insert(), __xfrm_state_lookup(), xfrm_alloc_spi(), と xfrm_state_find().

関数の呼び出しグラフ:

static unsigned int xfrm_src_hash ( xfrm_address_t daddr,
xfrm_address_t saddr,
unsigned short  family 
) [inline, static]

xfrm_state.c79 行で定義されています。

参照先 __xfrm_src_hash().

参照元 __find_acq_core(), __xfrm_state_insert(), __xfrm_state_lookup_byaddr(), と xfrm_state_find().

関数の呼び出しグラフ:

int xfrm_state_add ( struct xfrm_state x  ) 

xfrm_state.c1057 行で定義されています。

参照先 __find_acq_core(), __xfrm_find_acq_byseq(), __xfrm_state_bump_genids(), __xfrm_state_insert(), __xfrm_state_locate(), xfrm_id::daddr, EEXIST, xfrm_state::family, family, xfrm_state::id, IPSEC_PROTO_ANY, xfrm_state::km, xfrm_state::mode, NULL, out, xfrm_state::props, xfrm_id::proto, xfrm_state::reqid, xfrm_state::saddr, xfrm_state::seq, spin_lock_bh, spin_unlock_bh, xfrm_addr_cmp(), xfrm_id_proto_match(), xfrm_state_delete(), と xfrm_state_put().

参照元 pfkey_add(), と xfrm_add_sa().

関数の呼び出しグラフ:

struct xfrm_state* xfrm_state_alloc ( void   )  [read]

xfrm_state.c506 行で定義されています。

参照先 atomic_set, xfrm_state::bydst, xfrm_state::byspi, xfrm_state::bysrc, get_seconds(), GFP_ATOMIC, NULL, xfrm_state::refcnt, setup_timer(), spin_lock_init, xfrm_state::timer, xfrm_state::tunnel_users, x, XFRM_INF, xfrm_replay_timer_handler(), と xfrm_timer_handler().

参照元 __find_acq_core(), ipcomp6_tunnel_create(), ipcomp_tunnel_create(), pfkey_msg2xfrm_state(), xfrm_add_acquire(), xfrm_state_construct(), と xfrm_state_find().

関数の呼び出しグラフ:

int xfrm_state_check_expire ( struct xfrm_state x  ) 

xfrm_state.c1322 行で定義されています。

参照先 xfrm_lifetime_cur::bytes, xfrm_state::curlft, xfrm_state::dying, EINVAL, get_seconds(), xfrm_lifetime_cfg::hard_byte_limit, xfrm_lifetime_cfg::hard_packet_limit, jiffies, xfrm_state::km, km_state_expired(), xfrm_state::lft, mod_timer(), xfrm_lifetime_cur::packets, xfrm_lifetime_cfg::soft_byte_limit, xfrm_lifetime_cfg::soft_packet_limit, xfrm_state::state, xfrm_state::timer, xfrm_lifetime_cur::use_time, XFRM_STATE_EXPIRED, と XFRM_STATE_VALID.

参照元 xfrm6_input_addr(), xfrm_input(), xfrm_output_one(), と xfrm_state_update().

関数の呼び出しグラフ:

int xfrm_state_delete ( struct xfrm_state x  ) 

xfrm_state.c573 行で定義されています。

参照先 __xfrm_state_delete(), err, xfrm_state::lock, spin_lock_bh, と spin_unlock_bh.

参照元 pfkey_delete(), xfrm_del_sa(), xfrm_state_add(), xfrm_state_delete_tunnel(), xfrm_state_flush(), と xfrm_state_update().

関数の呼び出しグラフ:

void xfrm_state_delete_tunnel ( struct xfrm_state x  ) 

xfrm_state.c1919 行で定義されています。

参照先 atomic_dec, atomic_read, NULL, xfrm_state::tunnel, xfrm_state::tunnel_users, xfrm_state_delete(), と xfrm_state_put().

参照元 ipcomp6_destroy(), と ipcomp_destroy().

関数の呼び出しグラフ:

struct xfrm_state* xfrm_state_find ( xfrm_address_t daddr,
xfrm_address_t saddr,
struct flowi fl,
struct xfrm_tmpl tmpl,
struct xfrm_policy pol,
int *  err,
unsigned short  family 
) [read]

xfrm_state.c767 行で定義されています。

参照先 __xfrm_state_lookup(), xfrm_lifetime_cur::add_time, add_timer(), xfrm_state::bydst, xfrm_state::byspi, xfrm_state::bysrc, xfrm_state::curlft, xfrm_id::daddr, xfrm_state::dying, EAGAIN, EEXIST, ENOMEM, error, ESRCH, timer_list::expires, xfrm_state::family, xfrm_selector::family, xfrm_state::flags, xfrm_lifetime_cfg::hard_add_expires_seconds, HZ, xfrm_tmpl::id, xfrm_state::id, jiffies, xfrm_state::km, km_query(), xfrm_state::lft, xfrm_tmpl::mode, xfrm_state::mode, NULL, out, xfrm_state::props, xfrm_id::proto, xfrm_tmpl::reqid, xfrm_state::reqid, flowi::secid, xfrm_policy::security, security_xfrm_state_alloc_acquire(), security_xfrm_state_pol_flow_match(), xfrm_state::sel, xfrm_id::spi, spin_lock_bh, spin_unlock_bh, xfrm_state::state, sysctl_xfrm_acq_expires, xfrm_state::timer, xfrm_dst_hash(), xfrm_hash_grow_check(), xfrm_init_tempsel(), xfrm_selector_match(), xfrm_spi_hash(), xfrm_src_hash(), XFRM_STATE_ACQ, xfrm_state_addr_check(), xfrm_state_alloc(), XFRM_STATE_DEAD, XFRM_STATE_ERROR, XFRM_STATE_EXPIRED, xfrm_state_hold(), xfrm_state_num, xfrm_state_put(), XFRM_STATE_VALID, と XFRM_STATE_WILDRECV.

参照元 xfrm_tmpl_resolve_one().

関数の呼び出しグラフ:

int xfrm_state_flush ( u8  proto,
struct xfrm_audit audit_info 
)

xfrm_state.c616 行で定義されています。

参照先 xfrm_state::bydst, xfrm_state::id, km_waitq, xfrm_audit::loginuid, out, xfrm_id::proto, restart(), xfrm_audit::secid, spin_lock_bh, spin_unlock_bh, xfrm_audit_state_delete, xfrm_id_proto_match(), xfrm_state_delete(), xfrm_state_flush_secctx_check(), xfrm_state_hold(), xfrm_state_kern(), と xfrm_state_put().

参照元 pfkey_flush(), と xfrm_flush_sa().

関数の呼び出しグラフ:

static int xfrm_state_flush_secctx_check ( u8  proto,
struct xfrm_audit audit_info 
) [inline, static]

xfrm_state.c610 行で定義されています。

参照元 xfrm_state_flush().

static void xfrm_state_gc_destroy ( struct xfrm_state x  )  [static]

xfrm_state.c380 行で定義されています。

参照先 xfrm_state::aalg, xfrm_state::calg, xfrm_state::coaddr, del_timer_sync, xfrm_type::destructor, xfrm_state::ealg, xfrm_state::encap, xfrm_state::inner_mode, xfrm_state::inner_mode_iaf, kfree(), xfrm_state::outer_mode, xfrm_state::rtimer, security_xfrm_state_free(), xfrm_state::timer, xfrm_state::type, xfrm_put_mode(), と xfrm_put_type().

参照元 xfrm_state_gc_task().

関数の呼び出しグラフ:

static void xfrm_state_gc_task ( struct work_struct data  )  [static]

xfrm_state.c403 行で定義されています。

参照先 km_waitq, spin_lock_bh, spin_unlock_bh, tmp, x, と xfrm_state_gc_destroy().

参照元 xfrm_state_init().

関数の呼び出しグラフ:

static struct xfrm_state_afinfo * xfrm_state_get_afinfo ( unsigned int  family  )  [static, read]

xfrm_state.c1900 行で定義されています。

参照先 NPROTO, NULL, read_lock, と read_unlock.

参照元 xfrm_get_mode(), xfrm_get_type(), xfrm_init_state(), と xfrm_init_tempsel().

void __init xfrm_state_init ( void   ) 

xfrm_state.c2032 行で定義されています。

参照先 INIT_WORK, panic(), xfrm_hash_alloc(), xfrm_state_gc_task(), と xfrm_state_gc_work.

参照元 xfrm_init().

関数の呼び出しグラフ:

void xfrm_state_insert ( struct xfrm_state x  ) 

xfrm_state.c960 行で定義されています。

参照先 __xfrm_state_bump_genids(), __xfrm_state_insert(), spin_lock_bh, と spin_unlock_bh.

参照元 ipcomp6_tunnel_attach(), と ipcomp_tunnel_attach().

関数の呼び出しグラフ:

static struct xfrm_state_afinfo* xfrm_state_lock_afinfo ( unsigned int  family  )  [static, read]

xfrm_state.c201 行で定義されています。

参照先 NPROTO, NULL, write_lock_bh, と write_unlock_bh.

参照元 xfrm_register_mode(), xfrm_register_type(), xfrm_unregister_mode(), と xfrm_unregister_type().

struct xfrm_state* xfrm_state_lookup ( xfrm_address_t daddr,
__be32  spi,
u8  proto,
unsigned short  family 
) [read]

xfrm_state.c1348 行で定義されています。

参照先 __xfrm_state_lookup(), spin_lock_bh, と spin_unlock_bh.

参照元 ah4_err(), ah6_err(), esp4_err(), esp6_err(), ipcomp4_err(), ipcomp6_err(), ipcomp6_tunnel_attach(), ipcomp_tunnel_attach(), pfkey_xfrm_state_lookup(), xfrm_add_sa_expire(), xfrm_alloc_spi(), xfrm_get_ae(), xfrm_input(), xfrm_new_ae(), と xfrm_user_state_lookup().

関数の呼び出しグラフ:

struct xfrm_state* xfrm_state_lookup_byaddr ( xfrm_address_t daddr,
xfrm_address_t saddr,
u8  proto,
unsigned short  family 
) [read]

xfrm_state.c1361 行で定義されています。

参照先 __xfrm_state_lookup_byaddr(), spin_lock_bh, と spin_unlock_bh.

参照元 xfrm6_input_addr(), と xfrm_user_state_lookup().

関数の呼び出しグラフ:

int xfrm_state_mtu ( struct xfrm_state x,
int  mtu 
)

xfrm_state.c1933 行で定義されています。

参照先 xfrm_type::get_mtu, xfrm_state::header_len, xfrm_state::km, xfrm_state::lock, xfrm_state::props, res, spin_lock_bh, spin_unlock_bh, xfrm_state::state, xfrm_state::type, と XFRM_STATE_VALID.

参照元 xfrm_bundle_ok(), と xfrm_init_pmtu().

static void xfrm_state_put_afinfo ( struct xfrm_state_afinfo afinfo  )  [static]

xfrm_state.c1912 行で定義されています。

参照先 read_unlock.

参照元 xfrm_get_mode(), xfrm_get_type(), xfrm_init_state(), と xfrm_init_tempsel().

int xfrm_state_register_afinfo ( struct xfrm_state_afinfo afinfo  ) 

xfrm_state.c1864 行で定義されています。

参照先 EAFNOSUPPORT, EINVAL, ENOBUFS, xfrm_state_afinfo::family, NPROTO, NULL, write_lock_bh, と write_unlock_bh.

参照元 xfrm4_state_init(), と xfrm6_state_init().

static void xfrm_state_unlock_afinfo ( struct xfrm_state_afinfo afinfo  )  [static]

xfrm_state.c213 行で定義されています。

参照先 write_unlock_bh.

参照元 xfrm_register_mode(), xfrm_register_type(), xfrm_unregister_mode(), と xfrm_unregister_type().

int xfrm_state_unregister_afinfo ( struct xfrm_state_afinfo afinfo  ) 

xfrm_state.c1881 行で定義されています。

参照先 EAFNOSUPPORT, EINVAL, xfrm_state_afinfo::family, NPROTO, NULL, write_lock_bh, と write_unlock_bh.

参照元 xfrm6_state_fini().

int xfrm_state_update ( struct xfrm_state x  ) 

xfrm_state.c1258 行で定義されています。

参照先 __xfrm_state_insert(), __xfrm_state_locate(), xfrm_state::coaddr, xfrm_state::curlft, xfrm_state::dying, EEXIST, EINVAL, xfrm_state::encap, ESRCH, xfrm_state::family, HZ, xfrm_state::id, IPSEC_PROTO_ANY, jiffies, xfrm_state::km, xfrm_state::lft, xfrm_state::lock, memcmp, memcpy, mod_timer(), NULL, out, xfrm_state::props, xfrm_id::proto, xfrm_state::sel, spin_lock_bh, spin_unlock_bh, xfrm_state::state, xfrm_state::timer, xfrm_lifetime_cur::use_time, xfrm_id_proto_match(), XFRM_STATE_ACQ, xfrm_state_check_expire(), xfrm_state_delete(), xfrm_state_kern(), xfrm_state_put(), と XFRM_STATE_VALID.

参照元 pfkey_add(), と xfrm_add_sa().

関数の呼び出しグラフ:

int xfrm_state_walk ( u8  proto,
int(*)(struct xfrm_state *, int, void *)  func,
void *  data 
)

xfrm_state.c1524 行で定義されています。

参照先 count, ENOENT, func, xfrm_state::id, last, NULL, out, xfrm_id::proto, spin_lock_bh, spin_unlock_bh, と xfrm_id_proto_match().

参照元 pfkey_dump(), と xfrm_dump_sa().

関数の呼び出しグラフ:

struct xfrm_state* xfrm_stateonly_find ( xfrm_address_t daddr,
xfrm_address_t saddr,
unsigned short  family,
u8  mode,
u8  proto,
u32  reqid 
) [read]

xfrm_state.c879 行で定義されています。

参照先 NULL, spin_lock, spin_unlock, xfrm_dst_hash(), xfrm_state_addr_check(), xfrm_state_hold(), XFRM_STATE_VALID, と XFRM_STATE_WILDRECV.

関数の呼び出しグラフ:

static void xfrm_timer_handler ( unsigned long  data  )  [static]

xfrm_state.c428 行で定義されています。

参照先 __xfrm_state_delete(), xfrm_lifetime_cur::add_time, xfrm_state::curlft, current, xfrm_state::dying, err, get_seconds(), xfrm_lifetime_cfg::hard_add_expires_seconds, xfrm_lifetime_cfg::hard_use_expires_seconds, xfrm_state::id, jiffies, xfrm_state::km, km_state_expired(), km_waitq, xfrm_state::lft, xfrm_state::lock, make_jiffies(), mod_timer(), next(), now, out, xfrm_lifetime_cfg::soft_add_expires_seconds, xfrm_lifetime_cfg::soft_use_expires_seconds, xfrm_id::spi, spin_lock, spin_unlock, xfrm_state::state, xfrm_state::timer, xfrm_lifetime_cur::use_time, warn, x, xfrm_audit_state_delete, XFRM_STATE_ACQ, XFRM_STATE_DEAD, と XFRM_STATE_EXPIRED.

参照元 xfrm_state_alloc().

関数の呼び出しグラフ:

int xfrm_unregister_km ( struct xfrm_mgr km  ) 

xfrm_state.c1855 行で定義されています。

参照先 xfrm_mgr::list, list_del(), write_lock_bh, と write_unlock_bh.

参照元 ipsec_pfkey_exit(), と xfrm_user_exit().

関数の呼び出しグラフ:

int xfrm_unregister_mode ( struct xfrm_mode mode,
int  family 
)

xfrm_state.c321 行で定義されています。

参照先 xfrm_mode::afinfo, EAFNOSUPPORT, EINVAL, xfrm_mode::encap, ENOENT, err, xfrm_state_afinfo::mode_map, module_put(), NULL, xfrm_state_afinfo::owner, XFRM_MODE_MAX, xfrm_state_lock_afinfo(), と xfrm_state_unlock_afinfo().

参照元 xfrm4_beet_exit(), xfrm4_mode_tunnel_exit(), xfrm4_transport_exit(), xfrm6_beet_exit(), xfrm6_mode_tunnel_exit(), xfrm6_ro_exit(), と xfrm6_transport_exit().

関数の呼び出しグラフ:

int xfrm_unregister_type ( const struct xfrm_type type,
unsigned short  family 
)

xfrm_state.c238 行で定義されています。

参照先 EAFNOSUPPORT, ENOENT, err, NULL, xfrm_type::proto, xfrm_state_afinfo::type_map, xfrm_state_lock_afinfo(), と xfrm_state_unlock_afinfo().

参照元 ah4_fini(), ah4_init(), ah6_fini(), ah6_init(), esp4_fini(), esp4_init(), esp6_fini(), esp6_init(), ipcomp4_fini(), ipcomp4_init(), ipcomp6_fini(), ipcomp6_init(), ipip_fini(), ipip_init(), mip6_fini(), mip6_init(), xfrm6_tunnel_fini(), と xfrm6_tunnel_init().

関数の呼び出しグラフ:

int xfrm_user_policy ( struct sock sk,
int  optname,
u8 __user *  optval,
int  optlen 
)

xfrm_state.c1806 行で定義されています。

参照先 xfrm_mgr::compile_policy, copy_from_user, EFAULT, EINVAL, EMSGSIZE, ENOMEM, GFP_KERNEL, kfree(), kmalloc(), list, NULL, out, PAGE_SIZE, read_lock, read_unlock, u8, xfrm_pol_put(), と xfrm_sk_policy_insert().

関数の呼び出しグラフ:


変数

unsigned int xfrm_state_hashmax __read_mostly = XFRM_AE_ETIME [read]

xfrm_state.c30 行で定義されています。

struct sock* xfrm_nl

xfrm_state.c27 行で定義されています。

参照元 xfrm_aevent_state_notify(), xfrm_alloc_userspi(), xfrm_exp_policy_notify(), xfrm_exp_state_notify(), xfrm_get_ae(), xfrm_get_policy(), xfrm_get_sa(), xfrm_get_sadinfo(), xfrm_get_spdinfo(), xfrm_notify_policy(), xfrm_notify_policy_flush(), xfrm_notify_sa(), xfrm_notify_sa_flush(), xfrm_send_acquire(), xfrm_send_report(), xfrm_user_exit(), xfrm_user_init(), と xfrm_user_rcv_msg().

struct xfrm_state_afinfo* xfrm_state_afinfo[NPROTO] [static]

xfrm_state.c190 行で定義されています。

struct work_struct xfrm_state_gc_work [static]

xfrm_state.c192 行で定義されています。

参照元 __xfrm_state_destroy(), と xfrm_state_init().

unsigned int xfrm_state_genid [static]

xfrm_state.c59 行で定義されています。

参照元 __xfrm_state_bump_genids(), と __xfrm_state_insert().

unsigned int xfrm_state_num [static]

xfrm_state.c58 行で定義されています。

参照元 __find_acq_core(), __xfrm_state_delete(), __xfrm_state_insert(), xfrm_hash_grow_check(), xfrm_sad_getinfo(), と xfrm_state_find().


Generated on Fri May 2 18:20:23 2008 for LinuxKernel by doxygen 1.5.4