Thread (12 messages) flat view 12 messages, 3 authors, 2012-07-24

Re: [PATCH 2/2] ipv4: Change rt->rt_iif encoding.

From: David Miller <davem@davemloft.net>
Date: 2012-07-24 00:43:15

From: Julian Anastasov <ja@ssi.bg>
Date: Tue, 24 Jul 2012 03:24:38 +0300 (EEST)
On Mon, 23 Jul 2012, David Miller wrote:
quoted
Hmmm, the problem is that when we decapsulate VLAN devices, we're left
with the parent device's index in skb->skb_iif.
	Not sure if it is a problem with VLANs, can be also
with some virtual devices but may be they use dev_forward_skb()
where skb_iif is zeroed.
dev_forward_skb() gives the packet to netif_rx() which will thus send
the packet down to __netif_receive_skb() which will set the
skb->skb_iif to the new device's ifindex.  It will not stay at zero
:-)
	I was also worrying about ip_mc_output looping packets with
skb_iif because skb_clone copies the field but may be such loops
happen only for locally originated traffic where skb_iif starts with
0.
Loopback of multicast packets is done in ip_mc_output(), via
the clone that you mention, via dev_loopback_xmit().

dev_loopback_xmit() gives the packet to netif_rx_ni() which again
lands it back at __netif_receive_skb(), which (with my changes)
will adjust the skb->skb_iif to match whatever sits in skb->dev
at the time.

It should be alright.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help