Re: [RFC 2.6.10 5/22] xfrm: Attempt to offload bundled xfrm_states for outbound xfrms
From: Francois Romieu (romieu_at_fr.zoreil.com)
Date: 12/31/04
- Previous message: Jesper Juhl: "Re: waiting 10s before mounting root filesystem?"
- In reply to: David Dillow: "[RFC 2.6.10 5/22] xfrm: Attempt to offload bundled xfrm_states for outbound xfrms"
- Next in thread: David Dillow: "Re: [RFC 2.6.10 5/22] xfrm: Attempt to offload bundled xfrm_states for outbound xfrms"
- Reply: David Dillow: "Re: [RFC 2.6.10 5/22] xfrm: Attempt to offload bundled xfrm_states for outbound xfrms"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Fri, 31 Dec 2004 00:34:43 +0100 To: David Dillow <dave@thedillows.org>
David Dillow <dave@thedillows.org> :
[...]
> diff -Nru a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
> --- a/net/xfrm/xfrm_policy.c 2004-12-30 01:11:18 -05:00
> +++ b/net/xfrm/xfrm_policy.c 2004-12-30 01:11:18 -05:00
> @@ -705,6 +705,31 @@
> };
> }
>
> +static void xfrm_accel_bundle(struct dst_entry *dst)
> +{
> + struct xfrm_bundle_list bundle, *xbl, *tmp;
> + struct net_device *dev = dst->dev;
> + INIT_LIST_HEAD(&bundle.node);
> +
> + if (dev && netif_running(dev) && (dev->features & NETIF_F_IPSEC)) {
> + while (dst) {
> + xbl = kmalloc(sizeof(*xbl), GFP_ATOMIC);
> + if (!xbl)
> + goto out;
> +
> + xbl->dst = dst;
> + list_add_tail(&xbl->node, &bundle.node);
> + dst = dst->child;
> + }
> +
> + dev->xfrm_bundle_add(dev, &bundle);
> + }
> +
> +out:
> + list_for_each_entry_safe(xbl, tmp, &bundle.node, node)
> + kfree(xbl);
> +}
If the driver knows the max depth which is allowed, why not have it
allocate its own bundle-like struct during initialization one for once ?
Instead of pushing the bundle list, dst is walked by the code of
the device's own xyz_xfrm_bundle_add into the said circular list,
entries get overwriten if the dst chain is longer and when the end of
dst is reached, the bundle-like list is walked in reverse order.
It avoids a few failure points imho.
-- Ueimor - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
- Previous message: Jesper Juhl: "Re: waiting 10s before mounting root filesystem?"
- In reply to: David Dillow: "[RFC 2.6.10 5/22] xfrm: Attempt to offload bundled xfrm_states for outbound xfrms"
- Next in thread: David Dillow: "Re: [RFC 2.6.10 5/22] xfrm: Attempt to offload bundled xfrm_states for outbound xfrms"
- Reply: David Dillow: "Re: [RFC 2.6.10 5/22] xfrm: Attempt to offload bundled xfrm_states for outbound xfrms"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]