<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/netmap/if_lem_netmap.h, branch releng/10.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2015-02-14T19:41:26Z</updated>
<entry>
<title>sync the code with the version in head. which the exception of</title>
<updated>2015-02-14T19:41:26Z</updated>
<author>
<name>Luigi Rizzo</name>
<email>luigi@FreeBSD.org</email>
</author>
<published>2015-02-14T19:41:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a4f75310c142e8ae7279e23f965ce606f2db8bd6'/>
<id>urn:sha1:a4f75310c142e8ae7279e23f965ce606f2db8bd6</id>
<content type='text'>
svn 275358 (M_FLOWID deprecation, only a couple of lines)
which cannot be merged.

if_lem_netmap.h, if_re_netmap.h:
- use the same (commented out) function to update the stat counters
  as in HEAD. This is a no-op here

netmap.c
- merge 274459 (support for private knote lock)
  and minor changes on nm_config and comments

netmap_freebsd.c
- merge 274459 (support for private knote lock)
- merge 274354 (initialize color if passed as argument)

netmap_generic.c
- fix a comment

netmap_kern.h
- revise the lock macros, using sx locks;
  merge 274459 (private knote lock)

netmap_monitor.c
- use full memory barriers

netmap_pipe.c
- use full memory barriers, use length from the correct queue
  (mostly cosmetic, since the queues typically have the same size)
</content>
</entry>
<entry>
<title>MFC 270063: update of netmap code</title>
<updated>2014-08-20T23:34:36Z</updated>
<author>
<name>Luigi Rizzo</name>
<email>luigi@FreeBSD.org</email>
</author>
<published>2014-08-20T23:34:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=609deef53d143a87415f58ae8d9915879345d227'/>
<id>urn:sha1:609deef53d143a87415f58ae8d9915879345d227</id>
<content type='text'>
(vtnet and cxgbe not merged yet because we need some other mfc first)
</content>
</entry>
<entry>
<title>MFH: sync the netmap code with the one in HEAD</title>
<updated>2014-02-18T05:01:04Z</updated>
<author>
<name>Luigi Rizzo</name>
<email>luigi@FreeBSD.org</email>
</author>
<published>2014-02-18T05:01:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2d47b4a1972fddbb8a4c9e26afbf09e373c6ba19'/>
<id>urn:sha1:2d47b4a1972fddbb8a4c9e26afbf09e373c6ba19</id>
<content type='text'>
(enhanced VALE switch, netmap pipes, emulated netmap mode).
See details in the log for svn 261909.
</content>
</entry>
<entry>
<title>whitespace changes:</title>
<updated>2013-04-29T18:00:53Z</updated>
<author>
<name>Luigi Rizzo</name>
<email>luigi@FreeBSD.org</email>
</author>
<published>2013-04-29T18:00:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d4b42e08696b1dc7089bfd21edd6f0f621f30b0d'/>
<id>urn:sha1:d4b42e08696b1dc7089bfd21edd6f0f621f30b0d</id>
<content type='text'>
remove $Id$ lines, and add blank lines around some #if / #elif /#endif
</content>
</entry>
<entry>
<title>add some definition and driver changes in preparation for</title>
<updated>2013-01-17T22:14:58Z</updated>
<author>
<name>Luigi Rizzo</name>
<email>luigi@FreeBSD.org</email>
</author>
<published>2013-01-17T22:14:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1dce924d2528107dd2c49bf68434bca3135b2fbf'/>
<id>urn:sha1:1dce924d2528107dd2c49bf68434bca3135b2fbf</id>
<content type='text'>
two upcoming features:

semi-transparent mode:
    when a device is opened in this mode, the
    user program will be able to mark slots that must be forwarded
    to the "other" side (i.e. from NIC to host stack, or viceversa),
    and the forwarding will occur automatically at the next netmap syscall.
    This saves the need to open another file descriptor and do
    the forwarding manually.

direct-forwarding mode:
    when operating with a VALE port, the user can specify in the slot
    the actual destination port, overriding the forwarding decision
    made by a lookup of the destination MAC. This can be useful to
    implement packet dispatchers.

No API changes will be introduced.
No new functionality in this patch yet.
</content>
</entry>
<entry>
<title>A bunch of netmap fixes:</title>
<updated>2012-02-27T19:05:01Z</updated>
<author>
<name>Luigi Rizzo</name>
<email>luigi@FreeBSD.org</email>
</author>
<published>2012-02-27T19:05:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=64ae02c36579bad7d5e682589a0bc1023e359f9d'/>
<id>urn:sha1:64ae02c36579bad7d5e682589a0bc1023e359f9d</id>
<content type='text'>
USERSPACE:
1. add support for devices with different number of rx and tx queues;

2. add better support for zero-copy operation, adding an extra field
   to the netmap ring to indicate how many buffers we have already processed
   but not yet released (with help from Eddie Kohler);

3. The two changes above unfortunately require an API change, so while
   at it add a version field and some spares to the ioctl() argument
   to help detect mismatches.

4. update the manual page for the two changes above;

5. update sample applications in tools/tools/netmap

KERNEL:

1. simplify the internal structures moving the global wait queues
   to the 'struct netmap_adapter';

2. simplify the functions that map kring&lt;-&gt;nic ring indexes

3. normalize device-specific code, helps mainteinance;

4. start exploring the impact of micro-optimizations (prefetch etc.)
   in the ixgbe driver.
   Use 'legacy' descriptors on the tx ring and prefetch slots gives
   about 20% speedup at 900 MHz. Another 7-10% would come from removing
   the explict calls to bus_dmamap* in the core (they are effectively
   NOPs in this case, but it takes expensive load of the per-buffer
   dma maps to figure out that they are all NULL.

   Rx performance not investigated.

I am postponing the MFC so i can import a few more improvements
before merging.
</content>
</entry>
<entry>
<title>Various cleanups for readability (no functional changes)</title>
<updated>2012-02-17T14:09:04Z</updated>
<author>
<name>Luigi Rizzo</name>
<email>luigi@FreeBSD.org</email>
</author>
<published>2012-02-17T14:09:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=babc7c12587be4f23bd76e6072081d920ded1a47'/>
<id>urn:sha1:babc7c12587be4f23bd76e6072081d920ded1a47</id>
<content type='text'>
- remove the KEVENT code, which was incomplete and not compiled anyways;
- change some while() loops into for()
- adjust indentation
- remove extra whitespace

MFC after:	1 week
</content>
</entry>
<entry>
<title>(This commit only touches code within the DEV_NETMAP blocks)</title>
<updated>2012-02-15T23:13:29Z</updated>
<author>
<name>Luigi Rizzo</name>
<email>luigi@FreeBSD.org</email>
</author>
<published>2012-02-15T23:13:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5644ccec612ab2b8c38f1752bb75919f86970a27'/>
<id>urn:sha1:5644ccec612ab2b8c38f1752bb75919f86970a27</id>
<content type='text'>
Introduce some functions to map NIC ring indexes into netmap ring
indexes and vice versa. This way we can implement the bound
checks only in one place (and hopefully in a correct way).

On passing, make the code and comments more uniform across the
various drivers.
</content>
</entry>
<entry>
<title>reduce the differences between these three files.</title>
<updated>2012-02-15T18:59:26Z</updated>
<author>
<name>Luigi Rizzo</name>
<email>luigi@FreeBSD.org</email>
</author>
<published>2012-02-15T18:59:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4b0a80098875c40c404626086a7aaa7ab15831ea'/>
<id>urn:sha1:4b0a80098875c40c404626086a7aaa7ab15831ea</id>
<content type='text'>
The three drivers (em, lem and igb) are extremely similar, too bad
that the structures use different names and we cannot share the code.
</content>
</entry>
<entry>
<title>- use struct ifnet as explicit type of the argument to the</title>
<updated>2012-02-13T18:56:34Z</updated>
<author>
<name>Luigi Rizzo</name>
<email>luigi@FreeBSD.org</email>
</author>
<published>2012-02-13T18:56:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1a26580ee8c9e9d9506189d58f31e240c5c74e3b'/>
<id>urn:sha1:1a26580ee8c9e9d9506189d58f31e240c5c74e3b</id>
<content type='text'>
  txsync() and rxsync() callbacks, removing some variables made
  useless by this change;

- add generic lock and irq handling routines. These can be useful
  in case there are no driver locks that we can reuse;

- add a few macros to reduce differences with the Linux version.
</content>
</entry>
</feed>
