Page MenuHomeFreeBSD

Mock implementation of NETMAP support in ENA
Needs ReviewPublic

Authored by mk_semihalf.com on Tue, Oct 8, 8:20 AM.

Details

Reviewers
cperciva
mw
Summary

Mock implementation of NETMAP routines is located in ena_netmap.c/.h
files. All code is protected under the DEV_NETMAP macro. Makefile was
updated with files and flag.

As ENA driver provide own implementations of (un)likely it must be
undefined before including NETMAP headers.

ena_netmap_attach function is called on the end of NIC attach. It fills
structure with NIC configuration and callbacks. Then provides it to
netmap_attach. Similarly netmap_detach is called during ena_detach.

Three callbacks are used.
nm_register is implemented by ena_netmap_reg. It is called when user
space application open or close NIC in NETMAP mode. Current action is
recognized based on onoff parameter: true means on and false off. As
NICs rings need to be reconfigured ena_down and ena_up are reused.
When user space application wants to receive new packets from NIC
nm_rxsync is called, and when there are new packets ready for Tx
nm_txsync is called.

Submitted by: Rafal Kozik <rk@semihalf.com>

Michal Krawczyk <mk@semihalf.com>

Obtained from: Semihalf
Sponsored by: Amazon, Inc.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

mk_semihalf.com created this revision.Tue, Oct 8, 8:20 AM

Adding netmap module dependency in this patch (it was added in the previous one by accident)