netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC davem] revert: net: Make skb->skb_iif always track skb->dev
@ 2013-01-12 13:48 Oliver Hartkopp
  2013-01-12 18:13 ` Jiri Pirko
  2013-01-12 21:23 ` David Miller
  0 siblings, 2 replies; 24+ messages in thread
From: Oliver Hartkopp @ 2013-01-12 13:48 UTC (permalink / raw)
  To: David Miller; +Cc: Linux Netdev List

Hello Dave,

in your below patch from 23 Jul 2012 you removed the check for an already set
value of skb_iif in net/core/dev.c

I'm currently working on a solution to prevent some routed CAN frames to be
sent back onto the originating network device.

With your patch it is not possible anymore to check on which netdev the
CAN frame has originally been received, as for every routing the frame
goes through netif_receive_skb(), which hard sets

	skb->skb_iif = skb->dev->ifindex

and therefore kills the original incoming interface index.

To me it is not clear why skb_iff is needed anyway as the value should
always be available via skb->dev->ifindex, right?

But if skb_iff has any right to exist it should contain the first incoming
interface on the host IMO.

Please correct my if i'm wrong and/or tell me what your commit message means
in respect to my request and why skb->dev->ifindex is not used instead of
skb_iif. I feel somehow lost about the skb_iif intention ...

Best regards,
Oliver

---


http://git.kernel.org/?p=linux/kernel/git/davem/net-next.git;a=commitdiff;h=b68581778cd0051a3fb9a2b614dee7eccb5127ff

net: Make skb->skb_iif always track skb->dev

Make it follow device decapsulation, from things such as VLAN and
bonding.

The stuff that actually cares about pre-demuxed device pointers, is
handled by the "orig_dev" variable in __netif_receive_skb().  And
the only consumer of that is the po->origdev feature of AF_PACKET
sockets.

Signed-off-by: David S. Miller <davem@davemloft.net>
---

diff --git a/net/core/dev.c b/net/core/dev.c
index cca02ae..0ebaea1 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3173,8 +3173,6 @@ static int __netif_receive_skb(struct sk_buff *skb)
 	if (netpoll_receive_skb(skb))
 		return NET_RX_DROP;
 
-	if (!skb->skb_iif)
-		skb->skb_iif = skb->dev->ifindex;
 	orig_dev = skb->dev;
 
 	skb_reset_network_header(skb);
@@ -3186,6 +3184,7 @@ static int __netif_receive_skb(struct sk_buff *skb)
 	rcu_read_lock();
 
 another_round:
+	skb->skb_iif = skb->dev->ifindex;
 
 	__this_cpu_inc(softnet_data.processed);
 

^ permalink raw reply related	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2013-01-14 20:13 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-12 13:48 [RFC davem] revert: net: Make skb->skb_iif always track skb->dev Oliver Hartkopp
2013-01-12 18:13 ` Jiri Pirko
2013-01-12 18:40   ` Oliver Hartkopp
2013-01-12 19:37     ` Jiri Pirko
2013-01-12 20:14       ` Oliver Hartkopp
2013-01-12 21:23 ` David Miller
2013-01-12 21:36   ` David Miller
2013-01-13  3:06     ` [PATCH net-next] pkt_sched: namespace aware ifb Eric Dumazet
2013-01-13  3:50       ` Benjamin LaHaise
2013-01-13  5:49         ` Eric Dumazet
2013-01-13 14:44           ` Jamal Hadi Salim
2013-01-13 16:41             ` Benjamin LaHaise
2013-01-13 16:57               ` Eric Dumazet
2013-01-13 17:25                 ` Jamal Hadi Salim
2013-01-14  5:40                 ` Eric Dumazet
2013-01-13 17:46             ` [PATCH net-next] ifb: dont hard code inet_net use Eric Dumazet
2013-01-14 13:13               ` Jamal Hadi Salim
2013-01-14 15:15                 ` [PATCH net-next] pkt_sched: namespace aware act_mirred Benjamin LaHaise
2013-01-14 20:10                   ` David Miller
2013-01-14 20:13                 ` [PATCH net-next] ifb: dont hard code inet_net use David Miller
2013-01-13 14:59           ` [PATCH net-next] pkt_sched: namespace aware ifb Benjamin LaHaise
2013-01-13 16:35             ` Eric Dumazet
2013-01-13 11:01     ` [RFC davem] revert: net: Make skb->skb_iif always track skb->dev Oliver Hartkopp
2013-01-13 13:20       ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).