From 5c6026e91fd4c8d0d8170ef5bb8f3ba363c35f88 Mon Sep 17 00:00:00 2001 From: Andrew Thompson Date: Thu, 30 Apr 2009 14:25:44 +0000 Subject: [PATCH] Use the flowid if its available for selecting the tx port. --- sys/net/ieee8023ad_lacp.c | 5 ++++- sys/net/if_lagg.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/net/ieee8023ad_lacp.c b/sys/net/ieee8023ad_lacp.c index bd44e234c2b..2284ce2486e 100644 --- a/sys/net/ieee8023ad_lacp.c +++ b/sys/net/ieee8023ad_lacp.c @@ -812,7 +812,10 @@ lacp_select_tx_port(struct lagg_softc *sc, struct mbuf *m) return (NULL); } - hash = lagg_hashmbuf(m, lsc->lsc_hashkey); + if (m->m_flags & M_FLOWID) + hash = m->m_pkthdr.flowid; + else + hash = lagg_hashmbuf(m, lsc->lsc_hashkey); hash %= pm->pm_count; lp = pm->pm_map[hash]; diff --git a/sys/net/if_lagg.c b/sys/net/if_lagg.c index 0479b90fcf9..583cc4135ad 100644 --- a/sys/net/if_lagg.c +++ b/sys/net/if_lagg.c @@ -1604,7 +1604,10 @@ lagg_lb_start(struct lagg_softc *sc, struct mbuf *m) struct lagg_port *lp = NULL; uint32_t p = 0; - p = lagg_hashmbuf(m, lb->lb_key); + if (m->m_flags & M_FLOWID) + p = m->m_pkthdr.flowid; + else + p = lagg_hashmbuf(m, lb->lb_key); p %= sc->sc_count; lp = lb->lb_ports[p];