Re: [PATCH 2/3] [VLAN]: Update iif when receiving via VLAN device
From: jamal <hidden>
Date: 2006-06-30 14:35:32
On Fri, 2006-30-06 at 16:15 +0200, Thomas Graf wrote:
* jamal [off-list ref] 2006-06-30 09:57quoted
On Fri, 2006-30-06 at 15:08 +0200, Thomas Graf wrote:quoted
That creates a nice loop on ingress. Upon reentering the stack with skb->dev set to eth0 again we'll go through the same ingress filters as the first time and we'll hit ifb0 again over and over.loops are taken care of by other metadata.Not really, assuming a simple setup such as: mirred attached to eth0 redirecting to ifb0 mirred attached to ifb0 redirecting to ifb1 will result in: eth0::tcf_mirred() skb->dev = ifb0, input_dev = eth0 ifb0::tcf_mirred() skb->dev = ifb1, input_dev = ifb0 ifb1::ifb_xmit() skb->dev = ifb0, input_dev = ifb1, set ncls bit ifb0::ifb_xmit() skb->dev = ifb1, input_dev = ifb0 ifb1::ifb_xmit() skb->dev = ifb0, input_dev = ifb1 ... Oh dear... and we don't even have a ttl to catch this.
Did you actually try to run this before you reached this conclusion?
quoted
I am going to ignore the patch until we resolve the issue of iif vs input_dev. Why dont we discuss that?It's starting to get useless to discuss with you.
sigh. ok, why dont you take a deep breath or a break because i think we are not going to make any progress this way. I know you may be feeling frustrated but i am equally if not more frustrated as well. Our conflict comes in the fact that you are trying to change the architecture in the name of fixing bugs. With all due respect, the architecture works. I have invested many many hours testing and verifying. There may be coding bugs - and those need fixing. Kill the bugs.
You agreed in your last posting that the 3rd option, being that not caring about whether a device might disappear but having a way to check for it, is what we agreed on and what makes most sense,
yes, i recalled that as the last discussion we had.
yet you fail to see that using ifindex is exactly what reflects this descision.
The choice is between using an ifindex and a pointer to the device. Why is it solvable via an ifindex but not a device pointer? I may have misunderstood you, so look at this as a fresh opportunity to enlighten me. Forget about all the discussion weve had thus far. cheers, jamal