Author: np
Date: Thu Dec 12 21:33:00 2019
New Revision: 355673
URL: https://svnweb.freebsd.org/changeset/base/355673

Log:
  cxgbe(4): Never use hardware checksumming in netmap tx.
  
  MFC after:    1 week
  Sponsored by: Chelsio Communications

Modified:
  head/sys/dev/cxgbe/t4_netmap.c

Modified: head/sys/dev/cxgbe/t4_netmap.c
==============================================================================
--- head/sys/dev/cxgbe/t4_netmap.c      Thu Dec 12 21:13:20 2019        
(r355672)
+++ head/sys/dev/cxgbe/t4_netmap.c      Thu Dec 12 21:33:00 2019        
(r355673)
@@ -659,7 +659,7 @@ ring_nm_txq_db(struct adapter *sc, struct sge_nm_txq *
  */
 static void
 cxgbe_nm_tx(struct adapter *sc, struct sge_nm_txq *nm_txq,
-    struct netmap_kring *kring, int npkt, int npkt_remaining, int txcsum)
+    struct netmap_kring *kring, int npkt, int npkt_remaining)
 {
        struct netmap_ring *ring = kring->ring;
        struct netmap_slot *slot;
@@ -695,13 +695,9 @@ cxgbe_nm_tx(struct adapter *sc, struct sge_nm_txq *nm_
                         * netmap(4) says "netmap does not use features such as
                         * checksum offloading, TCP segmentation offloading,
                         * encryption, VLAN encapsulation/decapsulation, etc."
-                        *
-                        * So the ncxl interfaces have tx hardware checksumming
-                        * disabled by default.  But you can override netmap by
-                        * enabling IFCAP_TXCSUM on the interface manully.
                         */
-                       cpl->ctrl1 = txcsum ? 0 :
-                           htobe64(F_TXPKT_IPCSUM_DIS | F_TXPKT_L4CSUM_DIS);
+                       cpl->ctrl1 = htobe64(F_TXPKT_IPCSUM_DIS |
+                           F_TXPKT_L4CSUM_DIS);
 
                        usgl = (void *)(cpl + 1);
                        usgl->cmd_nsge = htobe32(V_ULPTX_CMD(ULP_TX_SC_DSGL) |
@@ -815,7 +811,7 @@ cxgbe_netmap_txsync(struct netmap_kring *kring, int fl
        struct sge_nm_txq *nm_txq = &sc->sge.nm_txq[vi->first_nm_txq + 
kring->ring_id];
        const u_int head = kring->rhead;
        u_int reclaimed = 0;
-       int n, d, npkt_remaining, ndesc_remaining, txcsum;
+       int n, d, npkt_remaining, ndesc_remaining;
 
        /*
         * Tx was at kring->nr_hwcur last time around and now we need to advance
@@ -826,7 +822,6 @@ cxgbe_netmap_txsync(struct netmap_kring *kring, int fl
 
        npkt_remaining = head >= kring->nr_hwcur ? head - kring->nr_hwcur :
            kring->nkr_num_slots - kring->nr_hwcur + head;
-       txcsum = ifp->if_capenable & (IFCAP_TXCSUM | IFCAP_TXCSUM_IPV6);
        while (npkt_remaining) {
                reclaimed += reclaim_nm_tx_desc(nm_txq);
                ndesc_remaining = contiguous_ndesc_available(nm_txq);
@@ -850,7 +845,7 @@ cxgbe_netmap_txsync(struct netmap_kring *kring, int fl
 
                /* Send n packets and update nm_txq->pidx and kring->nr_hwcur */
                npkt_remaining -= n;
-               cxgbe_nm_tx(sc, nm_txq, kring, n, npkt_remaining, txcsum);
+               cxgbe_nm_tx(sc, nm_txq, kring, n, npkt_remaining);
        }
        MPASS(npkt_remaining == 0);
        MPASS(kring->nr_hwcur == head);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to