diff options
author | Jamal Hadi Salim <hadi@cyberus.ca> | 2007-04-29 00:20:32 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-04-29 00:20:32 -0400 |
commit | ecfd6b183780c6d9e85873693b3ce6c5f4d08b58 (patch) | |
tree | 8ee1330176e3011d3fdf86e70b5933b50302b7e7 /net/xfrm/xfrm_policy.c | |
parent | 5632c5152aa621885d87ea0b8fdd5a6bb9f69c6f (diff) |
[XFRM]: Export SPD info
With this patch you can use iproute2 in user space to efficiently see
how many policies exist in different directions.
Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
-rw-r--r-- | net/xfrm/xfrm_policy.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 762926009c04..dbf9d96a2f0b 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
@@ -579,8 +579,22 @@ static inline int xfrm_byidx_should_resize(int total) | |||
579 | return 0; | 579 | return 0; |
580 | } | 580 | } |
581 | 581 | ||
582 | static DEFINE_MUTEX(hash_resize_mutex); | 582 | void xfrm_spd_getinfo(struct xfrm_spdinfo *si) |
583 | { | ||
584 | read_lock_bh(&xfrm_policy_lock); | ||
585 | si->incnt = xfrm_policy_count[XFRM_POLICY_IN]; | ||
586 | si->outcnt = xfrm_policy_count[XFRM_POLICY_OUT]; | ||
587 | si->fwdcnt = xfrm_policy_count[XFRM_POLICY_FWD]; | ||
588 | si->inscnt = xfrm_policy_count[XFRM_POLICY_IN+XFRM_POLICY_MAX]; | ||
589 | si->outscnt = xfrm_policy_count[XFRM_POLICY_OUT+XFRM_POLICY_MAX]; | ||
590 | si->fwdscnt = xfrm_policy_count[XFRM_POLICY_FWD+XFRM_POLICY_MAX]; | ||
591 | si->spdhcnt = xfrm_idx_hmask; | ||
592 | si->spdhmcnt = xfrm_policy_hashmax; | ||
593 | read_unlock_bh(&xfrm_policy_lock); | ||
594 | } | ||
595 | EXPORT_SYMBOL(xfrm_spd_getinfo); | ||
583 | 596 | ||
597 | static DEFINE_MUTEX(hash_resize_mutex); | ||
584 | static void xfrm_hash_resize(struct work_struct *__unused) | 598 | static void xfrm_hash_resize(struct work_struct *__unused) |
585 | { | 599 | { |
586 | int dir, total; | 600 | int dir, total; |