diff options
Diffstat (limited to 'include/net/xfrm.h')
| -rw-r--r-- | include/net/xfrm.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 8287081d77f2..66c2d3eec03c 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
| @@ -423,6 +423,18 @@ struct xfrm_sadinfo | |||
| 423 | u32 sadhmcnt; /* max allowed hash bkts */ | 423 | u32 sadhmcnt; /* max allowed hash bkts */ |
| 424 | u32 sadcnt; /* current running count */ | 424 | u32 sadcnt; /* current running count */ |
| 425 | }; | 425 | }; |
| 426 | |||
| 427 | struct xfrm_spdinfo | ||
| 428 | { | ||
| 429 | u32 incnt; | ||
| 430 | u32 outcnt; | ||
| 431 | u32 fwdcnt; | ||
| 432 | u32 inscnt; | ||
| 433 | u32 outscnt; | ||
| 434 | u32 fwdscnt; | ||
| 435 | u32 spdhcnt; | ||
| 436 | u32 spdhmcnt; | ||
| 437 | }; | ||
| 426 | #ifdef CONFIG_AUDITSYSCALL | 438 | #ifdef CONFIG_AUDITSYSCALL |
| 427 | extern void xfrm_audit_log(uid_t auid, u32 secid, int type, int result, | 439 | extern void xfrm_audit_log(uid_t auid, u32 secid, int type, int result, |
| 428 | struct xfrm_policy *xp, struct xfrm_state *x); | 440 | struct xfrm_policy *xp, struct xfrm_state *x); |
| @@ -591,6 +603,10 @@ struct xfrm_dst | |||
| 591 | struct rt6_info rt6; | 603 | struct rt6_info rt6; |
| 592 | } u; | 604 | } u; |
| 593 | struct dst_entry *route; | 605 | struct dst_entry *route; |
| 606 | #ifdef CONFIG_XFRM_SUB_POLICY | ||
| 607 | struct flowi *origin; | ||
| 608 | struct xfrm_selector *partner; | ||
| 609 | #endif | ||
| 594 | u32 genid; | 610 | u32 genid; |
| 595 | u32 route_mtu_cached; | 611 | u32 route_mtu_cached; |
| 596 | u32 child_mtu_cached; | 612 | u32 child_mtu_cached; |
| @@ -603,6 +619,12 @@ static inline void xfrm_dst_destroy(struct xfrm_dst *xdst) | |||
| 603 | dst_release(xdst->route); | 619 | dst_release(xdst->route); |
| 604 | if (likely(xdst->u.dst.xfrm)) | 620 | if (likely(xdst->u.dst.xfrm)) |
| 605 | xfrm_state_put(xdst->u.dst.xfrm); | 621 | xfrm_state_put(xdst->u.dst.xfrm); |
| 622 | #ifdef CONFIG_XFRM_SUB_POLICY | ||
| 623 | kfree(xdst->origin); | ||
| 624 | xdst->origin = NULL; | ||
| 625 | kfree(xdst->partner); | ||
| 626 | xdst->partner = NULL; | ||
| 627 | #endif | ||
| 606 | } | 628 | } |
| 607 | 629 | ||
| 608 | extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev); | 630 | extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev); |
| @@ -946,6 +968,7 @@ extern struct xfrm_state *xfrm_find_acq_byseq(u32 seq); | |||
| 946 | extern int xfrm_state_delete(struct xfrm_state *x); | 968 | extern int xfrm_state_delete(struct xfrm_state *x); |
| 947 | extern void xfrm_state_flush(u8 proto, struct xfrm_audit *audit_info); | 969 | extern void xfrm_state_flush(u8 proto, struct xfrm_audit *audit_info); |
| 948 | extern void xfrm_sad_getinfo(struct xfrm_sadinfo *si); | 970 | extern void xfrm_sad_getinfo(struct xfrm_sadinfo *si); |
| 971 | extern void xfrm_spd_getinfo(struct xfrm_spdinfo *si); | ||
| 949 | extern int xfrm_replay_check(struct xfrm_state *x, __be32 seq); | 972 | extern int xfrm_replay_check(struct xfrm_state *x, __be32 seq); |
| 950 | extern void xfrm_replay_advance(struct xfrm_state *x, __be32 seq); | 973 | extern void xfrm_replay_advance(struct xfrm_state *x, __be32 seq); |
| 951 | extern void xfrm_replay_notify(struct xfrm_state *x, int event); | 974 | extern void xfrm_replay_notify(struct xfrm_state *x, int event); |
