summaryrefslogtreecommitdiffstats
path: root/sys/dev/qlxgbe
diff options
context:
space:
mode:
authorhiren <hiren@FreeBSD.org>2015-04-24 23:26:44 +0000
committerhiren <hiren@FreeBSD.org>2015-04-24 23:26:44 +0000
commitb09afc6f3f088fa610e8e85066b0efc23f29fee1 (patch)
treede613f73923e17e263a2e466febe13b7dc30ceaf /sys/dev/qlxgbe
parent0c3758f009b82212c1c351b8dabdbb5e6b28b85a (diff)
downloadFreeBSD-src-b09afc6f3f088fa610e8e85066b0efc23f29fee1.zip
FreeBSD-src-b09afc6f3f088fa610e8e85066b0efc23f29fee1.tar.gz
MFC r275358 r275483 r276982 - Removing M_FLOWID by hps@
r275358: Start process of removing the use of the deprecated "M_FLOWID" flag from the FreeBSD network code. The flag is still kept around in the "sys/mbuf.h" header file, but does no longer have any users. Instead the "m_pkthdr.rsstype" field in the mbuf structure is now used to decide the meaning of the "m_pkthdr.flowid" field. To modify the "m_pkthdr.rsstype" field please use the existing "M_HASHTYPE_XXX" macros as defined in the "sys/mbuf.h" header file. This patch introduces new behaviour in the transmit direction. Previously network drivers checked if "M_FLOWID" was set in "m_flags" before using the "m_pkthdr.flowid" field. This check has now now been replaced by checking if "M_HASHTYPE_GET(m)" is different from "M_HASHTYPE_NONE". In the future more hashtypes will be added, for example hashtypes for hardware dedicated flows. "M_HASHTYPE_OPAQUE" indicates that the "m_pkthdr.flowid" value is valid and has no particular type. This change removes the need for an "if" statement in TCP transmit code checking for the presence of a valid flowid value. The "if" statement mentioned above is now a direct variable assignment which is then later checked by the respective network drivers like before. r275483: Remove M_FLOWID from SCTP code. r276982: Remove no longer used "M_FLOWID" flag from mbuf.h and update the netisr manpage. Note: The FreeBSD version has been bumped. Reviewed by: hps, tuexen Sponsored by: Limelight Networks
Diffstat (limited to 'sys/dev/qlxgbe')
-rw-r--r--sys/dev/qlxgbe/ql_isr.c4
-rw-r--r--sys/dev/qlxgbe/ql_os.c3
2 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/qlxgbe/ql_isr.c b/sys/dev/qlxgbe/ql_isr.c
index c11e986..6ea608d 100644
--- a/sys/dev/qlxgbe/ql_isr.c
+++ b/sys/dev/qlxgbe/ql_isr.c
@@ -159,7 +159,7 @@ qla_rx_intr(qla_host_t *ha, qla_sgl_rcv_t *sgc, uint32_t sds_idx)
ifp->if_ipackets++;
mpf->m_pkthdr.flowid = sgc->rss_hash;
- mpf->m_flags |= M_FLOWID;
+ M_HASHTYPE_SET(mpf, M_HASHTYPE_OPAQUE);
(*ifp->if_input)(ifp, mpf);
@@ -324,7 +324,7 @@ qla_lro_intr(qla_host_t *ha, qla_sgl_lro_t *sgc, uint32_t sds_idx)
mpf->m_pkthdr.csum_data = 0xFFFF;
mpf->m_pkthdr.flowid = sgc->rss_hash;
- mpf->m_flags |= M_FLOWID;
+ M_HASHTYPE_SET(mpf, M_HASHTYPE_OPAQUE);
ifp->if_ipackets++;
diff --git a/sys/dev/qlxgbe/ql_os.c b/sys/dev/qlxgbe/ql_os.c
index e453c5d..ec92e8f 100644
--- a/sys/dev/qlxgbe/ql_os.c
+++ b/sys/dev/qlxgbe/ql_os.c
@@ -1145,7 +1145,8 @@ qla_send(qla_host_t *ha, struct mbuf **m_headp)
QL_DPRINT8(ha, (ha->pci_dev, "%s: enter\n", __func__));
- if (m_head->m_flags & M_FLOWID)
+ /* check if flowid is set */
+ if (M_HASHTYPE_GET(m_head) != M_HASHTYPE_NONE)
txr_idx = m_head->m_pkthdr.flowid & (ha->hw.num_tx_rings - 1);
tx_idx = ha->hw.tx_cntxt[txr_idx].txr_next;
OpenPOWER on IntegriCloud