Re: ip_list_rcv() question
From: Stephen Suryaputra <hidden>
Date: 2021-10-14 14:42:41
On Wed, Oct 13, 2021 at 05:17:51PM +0100, Edward Cree wrote:
On 07/10/2021 13:14, Stephen Suryaputra wrote:quoted
Under what condition that ip_list_rcv() would restart the sublist, i.e. that the skb in the list is having different skb->dev?IIRC, something earlier in the call chain (possibly __netif_receive_skb_core()?) can change skb->dev to something other than the device that originally received the packet (orig_dev). I think it's if the packet gets handled/transformed by a software netdevice (maybe a VLAN device?). But really when I wrote ip_list_rcv() I just worked on the basis that "I don't know it can't change, so I shall assume it can".
I see now that vlan_do_receive() changes the skb->dev. It didn't occur to me because __netif_receive_skb_list_core() has a similar logic for dispatching sublists. But still the skb->dev could be different that orig_dev. Thanks.