use high bits from the mbuf flowid to pick a port to transmit on.
authordlg <dlg@openbsd.org>
Mon, 18 Mar 2024 06:05:23 +0000 (06:05 +0000)
committerdlg <dlg@openbsd.org>
Mon, 18 Mar 2024 06:05:23 +0000 (06:05 +0000)
commita717bb6c38096e149136b0eef90a30d50895e9d8
treede83b2e5fe25717ad29dc185ac5ba6ef387e06da
parentd1ea0a7c7de994c94e080237116e3e91989b4d68
use high bits from the mbuf flowid to pick a port to transmit on.

a port here is a physical interface used by an aggr.

this leaves the low bits for a physical interface to use to pick a
tx ring. without this, aggr used low bits for port selection, which
takes bits away from the ring selection, which can lead to uneven
distribution of packets over tx rings.

ive been running this in production for well over a year now.
sys/net/if_aggr.c