Page MenuHomeFreeBSD

netmap: align codebase to the current upstream (sha afa26bc3bc416)
ClosedPublic

Authored by vmaffione on Nov 17 2018, 1:46 PM.

Details

Summary

Changelist:

  • Replace netmap passthrough host support with a more general mechanism to call TXSYNC/RXSYNC from an in-kernel event-loop. No kernel threads are used to use this feature: the application is required to spawn a thread (or a process) and issue a SYNC_KLOOP_START (NIOCCTRL) command in the thread body. The kernel loop is executed by the ioctl implementation, which returns to userspace only when a different thread calls SYNC_KLOOP_STOP or the netmap file descriptor is closed.
  • Update the if_ptnet driver to cope with the new data structures, and prune all the obsolete ptnetmap code.
  • Add support for "null" netmap ports, useful to allocate netmap_if, netmap_ring and netmap buffers to be used by specialized applications (e.g. hypervisors). TXSYNC/RXSYNC on these ports have no effect.
  • Various fixes and code refactoring.
Test Plan

Unit tests and integration tests run successful.
Tested if_ptnet over QEMU/KVM in several configurations.
Code used in production on Linux.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

vmaffione created this revision.Nov 17 2018, 1:46 PM
vmaffione updated this revision to Diff 50523.Nov 17 2018, 1:52 PM

Add back $FreeBSD$ strings

vmaffione updated this revision to Diff 51600.Dec 5 2018, 11:47 AM

Import bug fix from upstream.

This revision was not accepted when it landed; it landed in state Needs Review.Dec 5 2018, 11:58 AM
This revision was automatically updated to reflect the committed changes.