[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211007121451.GA27153@EXT-6P2T573.localdomain>
Date: Thu, 7 Oct 2021 08:14:51 -0400
From: Stephen Suryaputra <ssuryaextr@...il.com>
To: netdev@...r.kernel.org
Subject: ip_list_rcv() question
Hi,
Under what condition that ip_list_rcv() would restart the sublist, i.e.
that the skb in the list is having different skb->dev?
void ip_list_rcv(struct list_head *head, struct packet_type *pt,
struct net_device *orig_dev)
{
...
list_for_each_entry_safe(skb, next, head, list) {
...
if (curr_dev != dev || curr_net != net) {
/* dispatch old sublist */
...
/* start new sublist */
...
}
...
}
...
}
In my system, the function gets called from the following call chain:
net_rx_action()->napi_poll()->gro_normal_list()
It seems to me that there is one to one relationship between napi_struct
and net_device, but I saw an archived discussion about it might be one
to many. But I didn't see it.
Thanks in advance for the clarifications.
Regards,
Stephen.
Powered by blists - more mailing lists