Page MenuHomeFreeBSD

D55988.id174002.diff
No OneTemporary

D55988.id174002.diff

diff --git a/sys/dev/ice/ice_iflib.h b/sys/dev/ice/ice_iflib.h
--- a/sys/dev/ice/ice_iflib.h
+++ b/sys/dev/ice/ice_iflib.h
@@ -353,6 +353,7 @@
struct ice_mirr_if *mirr_if;
int extra_vectors;
int last_rid;
+ u32 hash_init;
};
#endif /* _ICE_IFLIB_H_ */
diff --git a/sys/dev/ice/ice_iflib_txrx.c b/sys/dev/ice/ice_iflib_txrx.c
--- a/sys/dev/ice/ice_iflib_txrx.c
+++ b/sys/dev/ice/ice_iflib_txrx.c
@@ -575,9 +575,11 @@
if (!ice_test_state(&sc->state, ICE_STATE_MULTIPLE_TCS)) {
if (M_HASHTYPE_GET(m)) {
/* Default iflib queue selection method */
- return (m->m_pkthdr.flowid % sc->pf_vsi.num_tx_queues);
+ return (m->m_pkthdr.flowid % vsi->num_tx_queues);
} else
- return (0);
+ return (m_ether_tcpip_hash(
+ MBUF_HASHFLAG_L3 | MBUF_HASHFLAG_L4,
+ m, sc->hash_init) % vsi->num_tx_queues);
}
/* Use default TC unless overridden later */
diff --git a/sys/dev/ice/if_ice_iflib.c b/sys/dev/ice/if_ice_iflib.c
--- a/sys/dev/ice/if_ice_iflib.c
+++ b/sys/dev/ice/if_ice_iflib.c
@@ -887,6 +887,8 @@
!ice_test_state(&sc->state, ICE_STATE_NO_MEDIA))
ice_set_state(&sc->state, ICE_STATE_FIRST_INIT_LINK);
+ sc->hash_init = m_ether_tcpip_hash_init();
+
ice_clear_state(&sc->state, ICE_STATE_ATTACHING);
return 0;

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 10, 12:12 AM (5 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40463111
Default Alt Text
D55988.id174002.diff (1 KB)

Event Timeline