]> git.baikalelectronics.ru Git - kernel.git/commit
macvlan: Support for high multicast packet rate
authorThomas Karlsson <thomas.karlsson@paneda.se>
Wed, 2 Dec 2020 18:49:58 +0000 (19:49 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 3 Dec 2020 16:21:29 +0000 (08:21 -0800)
commitb2f214fb90dd77a4edb0517dbd2d4ff29bcd9ac7
tree6fd44a6c6afc0784de37e344ea1f138134927b96
parent4a881f5b70f0165dc1dfc428dcf84ad7beb289a2
macvlan: Support for high multicast packet rate

Background:
Broadcast and multicast packages are enqueued for later processing.
This queue was previously hardcoded to 1000.

This proved insufficient for handling very high packet rates.
This resulted in packet drops for multicast.
While at the same time unicast worked fine.

The change:
This patch make the queue length adjustable to accommodate
for environments with very high multicast packet rate.
But still keeps the default value of 1000 unless specified.

The queue length is specified as a request per macvlan
using the IFLA_MACVLAN_BC_QUEUE_LEN parameter.

The actual used queue length will then be the maximum of
any macvlan connected to the same port. The actual used
queue length for the port can be retrieved (read only)
by the IFLA_MACVLAN_BC_QUEUE_LEN_USED parameter for verification.

This will be followed up by a patch to iproute2
in order to adjust the parameter from userspace.

Signed-off-by: Thomas Karlsson <thomas.karlsson@paneda.se>
Link: https://lore.kernel.org/r/dd4673b2-7eab-edda-6815-85c67ce87f63@paneda.se
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/macvlan.c
include/linux/if_macvlan.h
include/uapi/linux/if_link.h
tools/include/uapi/linux/if_link.h