diff options
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/flow.h | 6 | ||||
-rw-r--r-- | include/net/xfrm.h | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/include/net/flow.h b/include/net/flow.h index ce4b10d8b412..f3cc1f812619 100644 --- a/include/net/flow.h +++ b/include/net/flow.h | |||
@@ -97,4 +97,10 @@ extern void *flow_cache_lookup(struct flowi *key, u16 family, u8 dir, | |||
97 | extern void flow_cache_flush(void); | 97 | extern void flow_cache_flush(void); |
98 | extern atomic_t flow_cache_genid; | 98 | extern atomic_t flow_cache_genid; |
99 | 99 | ||
100 | static inline int flow_cache_uli_match(struct flowi *fl1, struct flowi *fl2) | ||
101 | { | ||
102 | return (fl1->proto == fl2->proto && | ||
103 | !memcmp(&fl1->uli_u, &fl2->uli_u, sizeof(fl1->uli_u))); | ||
104 | } | ||
105 | |||
100 | #endif | 106 | #endif |
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 9561bf817b02..66c2d3eec03c 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
@@ -603,6 +603,10 @@ struct xfrm_dst | |||
603 | struct rt6_info rt6; | 603 | struct rt6_info rt6; |
604 | } u; | 604 | } u; |
605 | 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 | ||
606 | u32 genid; | 610 | u32 genid; |
607 | u32 route_mtu_cached; | 611 | u32 route_mtu_cached; |
608 | u32 child_mtu_cached; | 612 | u32 child_mtu_cached; |
@@ -615,6 +619,12 @@ static inline void xfrm_dst_destroy(struct xfrm_dst *xdst) | |||
615 | dst_release(xdst->route); | 619 | dst_release(xdst->route); |
616 | if (likely(xdst->u.dst.xfrm)) | 620 | if (likely(xdst->u.dst.xfrm)) |
617 | 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 | ||
618 | } | 628 | } |
619 | 629 | ||
620 | 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); |