On Thu, 2012-08-02 at 23:43 -0700, David Miller wrote:
From: Jun Zhao <redacted>
Date: Fri, 3 Aug 2012 14:27:51 +0800
quoted
@@ -1960,7 +1962,7 @@ static int ip6mr_forward2(struct net *net, struct mr6_table *mrt,
IP6CB(skb)->flags |= IP6SKB_FORWARDED;
- return NF_HOOK(NFPROTO_IPV6, NF_INET_FORWARD, skb, skb->dev, dev,
+ return NF_HOOK(NFPROTO_IPV6, NF_INET_FORWARD, skb, indev, dev,
ip6mr_forward2_finish);
This patch has the same problem I mentioned, it means someone who is
now matching on the VIF device will now fail to do son.
You have to understand that you simply cannot change the behavior
here without breaking something for someone.
Hi, David:
Can you give me some more details what I break in this fix?
As my understanding, in the ip6mr_forward2(), vifi is the VIF index for
output, we can get the output device used vif->dev and record input
device before change skb->dev; then used FORWARD chain match the rules.
Tks.