Author: luigi
Date: Sun Feb 24 18:26:17 2013
New Revision: 247230
URL: http://svnweb.freebsd.org/changeset/base/247230

Log:
  MFC some flags and minor things related to "transparent mode"
  that i forgot in previous commits.

Modified:
  stable/9/sys/dev/netmap/ixgbe_netmap.h
  stable/9/sys/net/netmap.h

Modified: stable/9/sys/dev/netmap/ixgbe_netmap.h
==============================================================================
--- stable/9/sys/dev/netmap/ixgbe_netmap.h      Sun Feb 24 18:13:57 2013        
(r247229)
+++ stable/9/sys/dev/netmap/ixgbe_netmap.h      Sun Feb 24 18:26:17 2013        
(r247230)
@@ -63,9 +63,6 @@
  *     This is tricky, much better to use TDH for now.
  */
 SYSCTL_DECL(_dev_netmap);
-static int ix_write_len;
-SYSCTL_INT(_dev_netmap, OID_AUTO, ix_write_len,
-    CTLFLAG_RW, &ix_write_len, 0, "write rx len");
 static int ix_rx_miss, ix_rx_miss_bufs, ix_use_dd, ix_crcstrip;
 SYSCTL_INT(_dev_netmap, OID_AUTO, ix_crcstrip,
     CTLFLAG_RW, &ix_crcstrip, 0, "strip CRC on rx frames");
@@ -236,7 +233,7 @@ ixgbe_netmap_txsync(struct ifnet *ifp, u
         * seems very expensive, so we interrupt once every half ring,
         * or when requested with NS_REPORT
         */
-       int report_frequency = kring->nkr_num_slots >> 1;
+       u_int report_frequency = kring->nkr_num_slots >> 1;
 
        if (k > lim)
                return netmap_ring_reinit(kring);
@@ -485,12 +482,9 @@ ixgbe_netmap_rxsync(struct ifnet *ifp, u
         * rxr->next_to_check is set to 0 on a ring reinit
         */
        if (netmap_no_pendintr || force_update) {
-               /* XXX apparently the length field in advanced descriptors
-                * does not include the CRC irrespective of the setting
-                * of CRCSTRIP. The data sheets say differently.
-                * Very strange.
-                */
                int crclen = ix_crcstrip ? 0 : 4;
+               uint16_t slot_flags = kring->nkr_slot_flags;
+
                l = rxr->next_to_check;
                j = netmap_idx_n2k(kring, l);
 
@@ -501,8 +495,7 @@ ixgbe_netmap_rxsync(struct ifnet *ifp, u
                        if ((staterr & IXGBE_RXD_STAT_DD) == 0)
                                break;
                        ring->slot[j].len = le16toh(curr->wb.upper.length) - 
crclen;
-                       if (ix_write_len)
-                               D("rx[%d] len %d", j, ring->slot[j].len);
+                       ring->slot[j].flags = slot_flags;
                        bus_dmamap_sync(rxr->ptag,
                            rxr->rx_buffers[l].pmap, BUS_DMASYNC_POSTREAD);
                        j = (j == lim) ? 0 : j + 1;

Modified: stable/9/sys/net/netmap.h
==============================================================================
--- stable/9/sys/net/netmap.h   Sun Feb 24 18:13:57 2013        (r247229)
+++ stable/9/sys/net/netmap.h   Sun Feb 24 18:26:17 2013        (r247230)
@@ -144,8 +144,11 @@ struct netmap_slot {
                                 * e.g. by generating an interrupt
                                 */
 #define        NS_FORWARD      0x0004  /* pass packet to the other endpoint
-                                * (host stack or device
+                                * (host stack or device)
                                 */
+#define        NS_NO_LEARN     0x0008
+#define        NS_PORT_SHIFT   8
+#define        NS_PORT_MASK    (0xff << NS_PORT_SHIFT)
 };
 
 /*
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to