Hello,

With the disappearance of the trunk(4), we have lost the
loadbalance/roundrobin options. Since the upstream we are seeing our
router send all its trafic only on one interface.

I see in aggr.c's aggr_transmit:

        if (ISSET(m->m_pkthdr.csum_flags, M_FLOWID))
                flow = m->m_pkthdr.ph_flowid >> AGGR_FLOWID_SHIFT;

        ifp0 = map->m_ifp0s[flow % AGGR_MAX_PORTS];

        if (if_enqueue(ifp0, m) != 0)
                counters_inc(ifp->if_counters, ifc_oerrors);

So it seems it would at least follow ph_flowid. But I don't see how to
make it set to a hash of port/ip. In pf.c I can see:

                if (!ISSET(m->m_pkthdr.csum_flags, M_FLOWID)) {
                        m->m_pkthdr.ph_flowid = st->key[PF_SK_WIRE]->hash;
                        SET(m->m_pkthdr.csum_flags, M_FLOWID);
                }

but as a router, we do not enable stateful pf... Isn't there a simple
way to make flowid set to such a hash?

With regards,
Samuel

Reply via email to