svn commit: r247230 - in stable/9/sys: dev/netmap net
Luigi Rizzo
luigi at FreeBSD.org
Sun Feb 24 18:26:18 UTC 2013
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)
};
/*
More information about the svn-src-stable-9
mailing list