public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
* ip_list_rcv() question
@ 2021-10-07 12:14 Stephen Suryaputra
  2021-10-13 16:17 ` Edward Cree
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Suryaputra @ 2021-10-07 12:14 UTC (permalink / raw)
  To: netdev

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.

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

end of thread, other threads:[~2021-10-14 14:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-07 12:14 ip_list_rcv() question Stephen Suryaputra
2021-10-13 16:17 ` Edward Cree
2021-10-14 14:42   ` Stephen Suryaputra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox