On 20.12.2010 17:21, Shtorm wrote: > I had this problem with igb driver, and I found, that lagg selects > outgoing interface based on packet header flowid field if M_FLOWID field > is set. And in the igb driver code flowid is set as > > #if __FreeBSD_version >= 800000 > <------><------><------>rxr->fmp->m_pkthdr.flowid = que->msix; > <------><------><------>rxr->fmp->m_flags |= M_FLOWID; > #endif > > The same thing in em driver with MULTIQUEUE > > That does not give enough number of flows to balance traffic well, so I > commented check in if_lagg.c > > lagg_lb_start(struct lagg_softc *sc, struct mbuf *m) > { > <------>struct lagg_lb *lb = (struct lagg_lb *)sc->sc_psc; > <------>struct lagg_port *lp = NULL; > <------>uint32_t p = 0; > > //<---->if (m->m_flags & M_FLOWID) > //<----><------>p = m->m_pkthdr.flowid; > //<---->else > > and with this change I have much better load distribution across interfaces. > > Hope it helps.
Thanks, I'll try. I have em interfaces on lagg0 where problem is. _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"