summaryrefslogtreecommitdiffstats
path: root/sys/net/ieee8023ad_lacp.c
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2014-01-02 01:51:54 +0000
committerscottl <scottl@FreeBSD.org>2014-01-02 01:51:54 +0000
commite03e146ca12bca5391db40352403862016385e6c (patch)
tree6cc4d93696808af4b7417fc9b52f6c6142c9813a /sys/net/ieee8023ad_lacp.c
parentcbabeda6695b7f6d82b13bdb27960b68b9357554 (diff)
downloadFreeBSD-src-e03e146ca12bca5391db40352403862016385e6c.zip
FreeBSD-src-e03e146ca12bca5391db40352403862016385e6c.tar.gz
MFC r260070
Multi-queue NIC drivers and multi-port lagg tend to use the same lower bits of the flowid as each other, resulting in a poor distribution of packets among queues in certain cases. Work around this by adding a set of sysctls for controlling a bit-shift on the flowid when doing multi-port aggrigation in lagg and lacp. By default, lagg/lacp will now use bits 16 and higher instead of 0 and higher. Obtained from: Netflix
Diffstat (limited to 'sys/net/ieee8023ad_lacp.c')
-rw-r--r--sys/net/ieee8023ad_lacp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/net/ieee8023ad_lacp.c b/sys/net/ieee8023ad_lacp.c
index 8dbadd4..aef3740 100644
--- a/sys/net/ieee8023ad_lacp.c
+++ b/sys/net/ieee8023ad_lacp.c
@@ -874,7 +874,7 @@ lacp_select_tx_port(struct lagg_softc *sc, struct mbuf *m)
}
if (sc->use_flowid && (m->m_flags & M_FLOWID))
- hash = m->m_pkthdr.flowid;
+ hash = m->m_pkthdr.flowid >> sc->flowid_shift;
else
hash = lagg_hashmbuf(sc, m, lsc->lsc_hashkey);
hash %= pm->pm_count;
OpenPOWER on IntegriCloud