Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ENA(4)		       FreeBSD Kernel Interfaces Manual			ENA(4)

NAME
     ena -- FreeBSD kernel driver for Elastic Network Adapter (ENA) family

SYNOPSIS
     To	compile	this driver into the kernel, place the following line in your
     kernel configuration file:

	   device ena

     Alternatively, to load the	driver as a module at boot time, place the
     following line in loader.conf(5):

	   if_ena_load="YES"

DESCRIPTION
     The ENA is	a networking interface designed	to make	good use of modern CPU
     features and system architectures.

     The ENA device exposes a lightweight management interface with a minimal
     set of memory mapped registers and	extendable command set through an
     Admin Queue.

     The driver	supports a range of ENA	devices, is link-speed independent
     (i.e., the	same driver is used for	10GbE, 25GbE, 40GbE, etc.), and	has a
     negotiated	and extendable feature set.

     Some ENA devices support SR-IOV. This driver is used for both the SR-IOV
     Physical Function (PF) and	Virtual	Function (VF) devices.

     The ENA devices enable high speed and low overhead	network	traffic	pro-
     cessing by	providing multiple Tx/Rx queue pairs (the maximum number is
     advertised	by the device via the Admin Queue), a dedicated	MSI-X inter-
     rupt vector per Tx/Rx queue pair, and CPU cacheline optimized data	place-
     ment.

     The ena driver supports industry standard TCP/IP offload features such as
     checksum offload and TCP transmit segmentation offload (TSO).  Receive-
     side scaling (RSS)	is supported for multi-core scaling.

     The ena driver and	its corresponding devices implement health monitoring
     mechanisms	such as	watchdog, enabling the device and driver to recover in
     a manner transparent to the application, as well as debug logs.

     Some of the ENA devices support a working mode called Low-latency Queue
     (LLQ), which saves	several	more microseconds. This	feature	will be	imple-
     mented for	driver in future releases.

HARDWARE
     Supported PCI vendor ID/device IDs:

     +o	 1d0f:0ec2 - ENA PF
     +o	 1d0f:1ec2 - ENA PF with LLQ support
     +o	 1d0f:ec20 - ENA VF
     +o	 1d0f:ec21 - ENA VF with LLQ support

DIAGNOSTICS
   Device initialization phase:
     ena%d: failed to init mmio	read less

     Error occured during initialization of the	mmio register read request.

     ena%d: Can	not reset device

     Device could not be reset;	device may not be responding or	is already
     during reset.

     ena%d: device version is too low

     Version of	the controller is too low and it is not	supported by the
     driver.

     ena%d: Invalid dma	width value %d

     The controller is able to request dma transcation width. Device stopped
     responding	or it demanded invalid value.

     ena%d: Can	not initialize ena admin queue with device

     Initialization of the Admin Queue failed; device may not be responding or
     there was a problem with initialization of	the resources.

     ena%d: Cannot get attribute for ena device	rc: %d

     Failed to get attributes of the device from the controller.

     ena%d: Cannot configure aenq groups rc: %d

     Errors occured when trying	to configure AENQ groups.

   Driver initialisation/shutdown phase:
     ena%d: PCI	resource allocation failed!
     ena%d: allocating ena_dev failed
     ena%d: failed to pmap registers bar
     ena%d: Error while	setting	up bufring
     ena%d: Error with initialization of IO rings
     ena%d: can	not allocate ifnet structure
     ena%d: Error with network interface setup
     ena%d: Failed to enable and set the admin interrupts
     ena%d: Failed to allocate %d, vectors %d
     ena%d: Failed to enable MSIX, vectors %d rc %d
     ena%d: Error with MSI-X enablement
     ena%d: could not allocate irq vector: %d
     ena%d: Unable to allocate bus resource: registers

     Resource allocation failed	when initializing the device; driver will not
     be	attached.

     ena%d: ENA	device init failed (err: %d)

     Device initialization failed; driver will not be attached.

     ena%d: could not activate irq vector: %d

     Error occured when	trying to activate interrupt vectors for Admin Queue.

     ena%d: failed to register interrupt handler for irq %ju: %d

     Error occured when	trying to register Admin Queue interrupt handler.

     ena%d: Cannot setup mgmnt queue intr

     Error occured during configuration	of the Admin Queue interrupts.

     ena%d: Enable MSI-X failed

     Configuration of the MSI-X	for Admin Queue	failed;	there could be lack of
     resources or interrupts could not have been configured; driver will not
     be	attached.

     ena%d: VLAN is in use, detach first

     VLANs are being used when trying to detach	the driver; VLANs should be
     detached first and	then detach routine should be called again.

     ena%d: Unmapped RX	DMA tag	associations
     ena%d: Unmapped TX	DMA tag	associations

     Error occured when	trying to destroy RX/TX	DMA tag.

     ena%d: Cannot init	RSS
     ena%d: Cannot fill	indirect table
     ena%d: Cannot fill	indirect table
     ena%d: Cannot fill	hash function
     ena%d: Cannot fill	hash control
     ena%d: WARNING: RSS was not properly initialized, it will affect
     bandwidth

     Error occured during initialization of one	of RSS resources; device is
     still going to work but it	will affect performance	because	all RX packets
     will be passed to queue 0 and there will be no hash information.

     ena%d: failed to tear down	irq: %d
     ena%d: dev	has no parent while releasing res for irq: %d  Release of the
     interrupts	failed.

   Additional diagnostic:
     ena%d: Cannot get attribute for ena device

     This message appears when trying to change	MTU and	driver is unable to
     get attributes from the device.

     ena%d: Invalid MTU	setting. new_mtu: %d

     Requested MTU value is not	supported and will not be set.

     ena%d: keep alive watchdog	timeout

     Device stopped responding and will	be reset.

     ena%d: Found a Tx that wasn't completed on	time, qid %d, index %d.

     Packet was	pushed to the NIC but not sent within given time limit;	it may
     be	caused by hang of the IO queue.

     ena%d: The	number of lost tx completion is	aboce the threshold (%d	> %d).
     Reset the device

     If	too many Tx wasn't completed on	time the device	is going to be reset;
     it	may be caused by hanged	queue or device.

     ena%d: trigger reset is on

     Device will be reset; reset is triggered either by	watchdog or if too
     many TX packets were not completed	on time.

     ena%d: invalid value recvd

     Link status received from the device in the AENQ handler is invalid.

     ena%d: Allocation for Tx Queue %u failed
     ena%d: Allocation for Rx Queue %u failed
     ena%d: Unable to create Rx	DMA map	for buffer %d
     ena%d: Failed to create io	TX queue #%d rc: %d
     ena%d: Failed to get TX queue handlers. TX	queue num %d rc: %d
     ena%d: Failed to create io	RX queue[%d] rc: %d
     ena%d: Failed to get RX queue handlers. RX	queue num %d rc: %d
     ena%d: failed to request irq
     ena%d: could not allocate irq vector: %d
     ena%d: failed to register interrupt handler for irq %ju: %d

     IO	resources initialization failed. Interface will	not be brought up.

     ena%d: LRO[%d] Initialization failed!

     Initialization of the LRO for the RX ring failed.

     ena%d: failed to alloc buffer for rx queue
     ena%d: failed to add buffer for rx	queue %d
     ena%d: refilled rx	queue %d with %d pages only

     Allocation	of resources used on RX	path failed; if	happened during	ini-
     tialization of the	IO queue, the interface	will not be brought up.

     ena%d: ioctl promisc/allmulti

     IOCTL request for the device to work in promiscuous/allmulti mode;	see
     ifconfig(8) for more details.

     ena%d: too	many fragments.	Last fragment: %d!

     Packet with unsupported number of segments	was queued for sending to the
     device; packet will be dropped.

SUPPORT
     If	an issue is identified with the	released source	code with a supported
     adapter email the specific	information related to the issue to
     <mk@semihalf.com> and <mw@semihalf.com>.

SEE ALSO
     vlan(4), ifconfig(8)

AUTHORS
     The ena driver was	written	by Semihalf.

FreeBSD	11.1			 May 04, 2017			  FreeBSD 11.1

NAME | SYNOPSIS | DESCRIPTION | HARDWARE | DIAGNOSTICS | SUPPORT | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ena&manpath=FreeBSD+11.1-RELEASE+and+Ports>

home | help