Subject: Re: [PATCH 3/3] [NET_DOC] Document some simple rules for actions

From: jamal <[email-masked]>
Date: Tue, 16 Oct 2007 09:09:42 -0400

On Tue, 2007-16-10 at 20:51 +0800, Herbert Xu wrote:

> But I still think the distinction between skb_clone and
> skb_copy_header is wrong.
> 
> When you munge a packet, it's still going to go back up
> the stack and be processed along the same path.  Therefore
> you should be calling pskb_expand_head.

Dang, just noticed i said skb_expand() in the doc - is that the 
issue? I will resend that one patch.
We do call pskb_expand_head() - example look at act_pedit.c

> In other words, this does not explain why skb_copy/pskb_copy
> and skb_copy_expand should differ from skb_clone.  As far as
> I can see all these functions should behave in the same manner
> with respect to tc_verd

We need to avoid actions from infinetely looping (eg when they ask for
being reclassified) in a directed graph. That loop ttl count  must be
reset to zero if we branch, because that is a new directed path. This is
always true and therefore that field must always be reset. 
I have a feeling i am going on a tangent if that doesnt respond to your
comment above.

cheers,
jamal