diff options
Diffstat (limited to 'static/freebsd/man4/ena.4 3.html')
| -rw-r--r-- | static/freebsd/man4/ena.4 3.html | 564 |
1 files changed, 564 insertions, 0 deletions
diff --git a/static/freebsd/man4/ena.4 3.html b/static/freebsd/man4/ena.4 3.html new file mode 100644 index 00000000..28354471 --- /dev/null +++ b/static/freebsd/man4/ena.4 3.html @@ -0,0 +1,564 @@ +<table class="head"> + <tr> + <td class="head-ltitle">ENA(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">ENA(4)</td> + </tr> +</table> +<div class="manual-text"> +<section class="Sh"> +<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> +<p class="Pp"><code class="Nm">ena</code> — <span class="Nd">AWS EC2 + Elastic Network Adapter (ENA) driver</span></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> +<p class="Pp">To compile this driver into the kernel, place the following line + in the kernel configuration file:</p> +<div class="Bd Pp Bd-indent"><code class="Cd">device ena</code></div> +<p class="Pp">Alternatively, to load the driver as a module at boot time, place + the following line in <a class="Xr">loader.conf(5)</a>:</p> +<div class="Bd Pp Bd-indent Li"> +<pre>if_ena_load="YES"</pre> +</div> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp">The ENA is a networking interface designed to make good use of + modern CPU features and system architectures.</p> +<p class="Pp">The ENA device exposes a lightweight management interface with a + minimal set of memory mapped registers and extendable command set through an + Admin Queue.</p> +<p class="Pp">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.</p> +<p class="Pp">Some ENA devices support SR-IOV. This driver is used for both the + SR-IOV Physical Function (PF) and Virtual Function (VF) devices.</p> +<p class="Pp">The ENA devices enable high speed and low overhead network traffic + processing by providing multiple Tx/Rx queue pairs (the maximum number is + advertised by the device via the Admin Queue), a dedicated MSI-X interrupt + vector per Tx/Rx queue pair, and CPU cacheline optimized data placement.</p> +<p class="Pp">When RSS is enabled, each Tx/Rx queue pair is bound to a + corresponding CPU core and its NUMA domain. The order of those bindings is + based on the RSS bucket mapping. For builds with RSS support disabled, the + CPU and NUMA management is left to the kernel. Receive-side scaling (RSS) is + supported for multi-core scaling.</p> +<p class="Pp">The <code class="Nm">ena</code> 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.</p> +<p class="Pp">Some of the ENA devices support a working mode called Low-latency + Queue (LLQ), which saves several more microseconds.</p> +<p class="Pp">Support for the <a class="Xr">netmap(4)</a> framework is provided + by the <code class="Nm">ena</code> driver. Kernel must be built with the + DEV_NETMAP option to be able to use this feature.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HARDWARE"><a class="permalink" href="#HARDWARE">HARDWARE</a></h1> +<p class="Pp">The <code class="Nm">ena</code> driver supports the following PCI + vendor ID/device IDs:</p> +<p class="Pp"></p> +<ul class="Bl-bullet Bl-compact"> + <li>1d0f:0ec2 - ENA PF</li> + <li>1d0f:1ec2 - ENA PF with LLQ support</li> + <li>1d0f:ec20 - ENA VF</li> + <li>1d0f:ec21 - ENA VF with LLQ support</li> +</ul> +</section> +<section class="Sh"> +<h1 class="Sh" id="LOADER_TUNABLES"><a class="permalink" href="#LOADER_TUNABLES">LOADER + TUNABLES</a></h1> +<p class="Pp">The <code class="Nm">ena</code> driver's behavior can be changed + using run-time or boot-time sysctl arguments. The boot-time arguments can be + set at the <a class="Xr">loader(8)</a> prompt before booting the kernel, or + stored in the <a class="Xr">loader.conf(5)</a>. The run-time arguments can + be set using the <a class="Xr">sysctl(8)</a> command.</p> +<p class="Pp">Boot-time tunables:</p> +<dl class="Bl-tag"> + <dt id="hw.ena.enable_9k_mbufs"><var class="Va">hw.ena.enable_9k_mbufs</var></dt> + <dd>Use 9k mbufs for the Rx descriptors. The default is 0. If the node value + is set to 1, 9k mbufs will be used for the Rx buffers. If set to 0, page + size mbufs will be used instead. + <p class="Pp">Using 9k buffers for Rx can improve Rx throughput, but in low + memory conditions it might increase allocation time, as the system has + to look for 3 contiguous pages. This can further lead to OS instability, + together with ENA driver reset and NVMe timeouts. If network performance + is critical and memory capacity is sufficient, the 9k mbufs can be + used.</p> + </dd> + <dt id="hw.ena.force_large_llq_header"><var class="Va">hw.ena.force_large_llq_header</var></dt> + <dd>Force the driver to use large (224 bytes) or regular (96 bytes) LLQ header + size. The default value is 2 and the recommended LLQ header size will be + used. If the node value is set to 0, the regular size LLQ header will be + used, which is 96B. In some cases, the packet header can be bigger than + this (for example - IPv6 with multiple extensions). In such a situation, + the large LLQ header size which is 224B should be used, and can be forced + by setting this node value to 1. Using large LLQ header size will take + effect only if the device supports both LLQ and large LLQ headers. + Otherwise, it will fallback to the no LLQ mode or regular header size. + <p class="Pp">Increasing LLQ header size reduces the size of the Tx queue by + half, so it may affect the number of dropped Tx packets.</p> + </dd> +</dl> +<p class="Pp">Run-time tunables:</p> +<dl class="Bl-tag"> + <dt id="hw.ena.log_level"><var class="Va">hw.ena.log_level</var></dt> + <dd>Controls extra logging verbosity of the driver. The default is 2. The + higher the logging level, the more logs will be printed out. 0 means all + extra logs are disabled and only error logs will be printed out. Default + value (2) reports errors, warnings and is verbose about driver operation. + <p class="Pp">The possible flags are:</p> + <p class="Pp"></p> + <ul class="Bl-bullet Bl-compact"> + <li>0 - ENA_ERR - Enable driver error messages and ena_com error + logs.</li> + <li>1 - ENA_WARN - Enable logs for non-critical errors.</li> + <li>2 - ENA_INFO - Make the driver more verbose about its actions.</li> + <li>3 - ENA_DBG - Enable debug logs.</li> + </ul> + <p class="Pp">NOTE: In order to enable logging on the Tx/Rx data path, + driver must be compiled with ENA_LOG_IO_ENABLE compilation flag.</p> + <p class="Pp">Example: To enable logs for errors and warnings, the following + command should be used:</p> + <div class="Bd Pp Bd-indent Li"> + <pre>sysctl hw.ena.log_level=1</pre> + </div> + </dd> + <dt id="dev.ena.X.io_queues_nb"><var class="Va">dev.ena.X.io_queues_nb</var></dt> + <dd>Number of the currently allocated and used IO queues. The default is + max_num_io_queues. Controls the number of IO queue pairs (Tx/Rx). As this + call has to reallocate the queues, it will reset the interface and restart + all the queues - this means that everything, which was currently held in + the queue, will be lost, leading to potential packet drops. + <p class="Pp">This call can fail if the system isn't able to provide the + driver with enough resources. In that situation, the driver will try to + revert the previous number of the IO queues. If this also fails, the + device reset will be triggered.</p> + <p class="Pp">Example: To use only 2 Tx and Rx queues for the device ena1, + the following command should be used:</p> + <div class="Bd Pp Bd-indent Li"> + <pre>sysctl dev.ena.1.io_queues_nb=2</pre> + </div> + </dd> + <dt id="dev.ena.X.rx_queue_size"><var class="Va">dev.ena.X.rx_queue_size</var></dt> + <dd>Size of the Rx queue. The default is 1024. Controls the number of IO + descriptors for each Rx queue. The user may want to increase the Rx queue + size if they observe a high number of Rx drops in the driver's statistics. + For performance reasons, the Rx queue size must be a power of 2. + <p class="Pp">This call can fail if the system isn't able to provide the + driver with enough resources. In that situation, the driver will try to + revert to the previous number of the descriptors. If this also fails, + the device reset will be triggered.</p> + <p class="Pp">Example: To increase Rx ring size to 8K descriptors for the + device ena0, the following command should be used:</p> + <div class="Bd Pp Bd-indent Li"> + <pre>sysctl dev.ena.0.rx_queue_size=8192</pre> + </div> + </dd> + <dt id="dev.ena.X.buf_ring_size"><var class="Va">dev.ena.X.buf_ring_size</var></dt> + <dd>Size of the Tx buffer ring (drbr). The default is 4096. Input must be a + power of 2. Controls the number of mbufs that can be held in the Tx buffer + ring. The drbr is used as a multiple-producer, single-consumer lockless + ring for buffering extra mbufs coming from the stack in case the Tx + procedure is busy sending the packets, or the Tx ring is full. Increasing + the size of the buffer ring may reduce the number of Tx packets being + dropped in case of a big Tx burst, which cannot be handled by the IO queue + immediately. Each Tx queue has its own drbr. + <p class="Pp">It is recommended to keep the drbr with at least the default + value, but in case the system lacks the resources, it can be reduced. + This call can fail if the system is not able to provide the driver with + enough resources. In that situation, the driver will try to revert to + the previous number of the drbr and trigger the device reset.</p> + <p class="Pp">Example: To set drbr size for interface ena0 to 2048, the + following command should be used:</p> + <div class="Bd Pp Bd-indent Li"> + <pre>sysctl dev.ena.0.buf_ring_size=2048</pre> + </div> + </dd> + <dt id="dev.ena.X.eni_metrics.sample_interval"><var class="Va">dev.ena.X.eni_metrics.sample_interval</var></dt> + <dd>Interval in seconds for updating ENI metrics. The default is 0. Determines + how often (if ever) the ENI metrics should be updated. The ENI metrics are + being updated asynchronously in a timer service in order to avoid admin + queue overload by sysctl node reading. The value in this node controls the + interval between issuing admin commands to the device, which will update + the ENI metrics values. + <p class="Pp">If some application is periodically monitoring the + eni_metrics, then the ENI metrics interval can be adjusted accordingly. + Value 0 turns off the update completely. Value 1 is the minimum interval + and is equal to 1 second. The maximum allowed update interval is 1 + hour.</p> + <p class="Pp">Example: To update ENI metrics for the device ena1 every 10 + seconds, the following command should be used:</p> + <div class="Bd Pp Bd-indent Li"> + <pre>sysctl dev.ena.1.eni_metrics.sample_interval=10</pre> + </div> + </dd> + <dt id="dev.ena.X.rss.indir_table_size"><var class="Va">dev.ena.X.rss.indir_table_size</var></dt> + <dd>RSS indirection table size. The default is 128. Returns the number of + entries in the RSS indirection table. + <p class="Pp">Example: To read the RSS indirection table size, the following + command should be used:</p> + <div class="Bd Pp Bd-indent Li"> + <pre>sysctl dev.ena.0.rss.indir_table_size</pre> + </div> + </dd> + <dt id="dev.ena.X.rss.indir_table"><var class="Va">dev.ena.X.rss.indir_table</var></dt> + <dd>RSS indirection table mapping. The default is x:y key-pairs of + indir_table_size length. Updates selected indices of the RSS indirection + table. + <p class="Pp">The entry string consists of one or more x:y keypairs, where x + stands for the table index and y for its new value. Table indices that + don't need to be updated can be omitted from the string and will retain + their existing values.</p> + <p class="Pp">If an index is entered more than once, the last value is + used.</p> + <p class="Pp">Example: To update two selected indices in the RSS indirection + table, e.g. setting index 0 to queue 5 and then index 5 to queue 0, the + following command should be used:</p> + <div class="Bd Pp Bd-indent Li"> + <pre>sysctl dev.ena.0.rss.indir_table="0:5 5:0"</pre> + </div> + </dd> + <dt id="dev.ena.X.rss.key"><var class="Va">dev.ena.X.rss.key</var></dt> + <dd>RSS hash key. The default is 40 bytes long randomly generated hash key. + Controls the RSS Toeplitz hash algorithm key value. + <p class="Pp">Only available when driver compiled without the kernel side + RSS support.</p> + <p class="Pp">Example: To change the RSS hash key value to</p> + <p class="Pp">0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2, + <br/> + 0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0, + <br/> + 0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4, + <br/> + 0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c, + <br/> + 0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa</p> + <p class="Pp">the following command should be used:</p> + <div class="Bd Pp Bd-indent Li"> + <pre>sysctl dev.ena.0.rss.key=6d5a56da255b0ec24167253d43a38fb0d0ca2bcbae7b30b477cb2da38030f20c6a42b73bbeac01fa</pre> + </div> + </dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="DIAGNOSTICS"><a class="permalink" href="#DIAGNOSTICS">DIAGNOSTICS</a></h1> +<section class="Ss"> +<h2 class="Ss" id="Device_initialization_phase"><a class="permalink" href="#Device_initialization_phase">Device + initialization phase</a></h2> +<dl class="Bl-diag"> + <dt>ena%d: failed to init mmio read less</dt> + <dd> + <p class="Pp">Error occurred during initialization of the mmio register read + request.</p> + </dd> + <dt>ena%d: Can not reset device</dt> + <dd> + <p class="Pp">Device could not be reset. + <br/> + Device may not be responding or is already during reset.</p> + </dd> + <dt>ena%d: device version is too low</dt> + <dd> + <p class="Pp">Version of the controller is too old and it is not supported + by the driver.</p> + </dd> + <dt>ena%d: Invalid dma width value %d</dt> + <dd> + <p class="Pp">The controller is unable to request dma transaction width. + <br/> + Device stopped responding or it demanded invalid value.</p> + </dd> + <dt>ena%d: Can not initialize ena admin queue with device</dt> + <dd> + <p class="Pp">Initialization of the Admin Queue failed. + <br/> + Device may not be responding or there was a problem with initialization of + the resources.</p> + </dd> + <dt>ena%d: Cannot get attribute for ena device rc: %d</dt> + <dd> + <p class="Pp">Failed to get attributes of the device from the + controller.</p> + </dd> + <dt>ena%d: Cannot configure aenq groups rc: %d</dt> + <dd> + <p class="Pp">Errors occurred when trying to configure AENQ groups.</p> + </dd> +</dl> +</section> +<section class="Ss"> +<h2 class="Ss" id="Driver_initialization/shutdown_phase"><a class="permalink" href="#Driver_initialization/shutdown_phase">Driver + initialization/shutdown phase</a></h2> +<dl class="Bl-diag"> + <dt>ena%d: PCI resource allocation failed!</dt> + <dd></dd> + <dt>ena%d: failed to pmap registers bar</dt> + <dd></dd> + <dt>ena%d: can not allocate ifnet structure</dt> + <dd></dd> + <dt>ena%d: Error with network interface setup</dt> + <dd></dd> + <dt>ena%d: Failed to enable and set the admin interrupts</dt> + <dd></dd> + <dt>ena%d: Error, MSI-X is already enabled</dt> + <dd></dd> + <dt>ena%d: Failed to enable MSIX, vectors %d rc %d</dt> + <dd></dd> + <dt>ena%d: Not enough number of MSI-X allocated: %d</dt> + <dd></dd> + <dt>ena%d: Error with MSI-X enablement</dt> + <dd></dd> + <dt>ena%d: could not allocate irq vector: %d</dt> + <dd></dd> + <dt>ena%d: unable to allocate bus resource: registers!</dt> + <dd></dd> + <dt>ena%d: unable to allocate bus resource: msix!</dt> + <dd> + <p class="Pp">Resource allocation failed when initializing the device. + <br/> + Driver will not be attached.</p> + </dd> + <dt>ena%d: ENA device init failed (err: %d)</dt> + <dd></dd> + <dt>ena%d: Cannot initialize device</dt> + <dd> + <p class="Pp">Device initialization failed. + <br/> + Driver will not be attached.</p> + </dd> + <dt>ena%d: failed to register interrupt handler for irq %ju: %d</dt> + <dd> + <p class="Pp">Error occurred when trying to register Admin Queue interrupt + handler.</p> + </dd> + <dt>ena%d: Cannot setup mgmnt queue intr</dt> + <dd> + <p class="Pp">Error occurred during configuration of the Admin Queue + interrupts.</p> + </dd> + <dt>ena%d: Enable MSI-X failed</dt> + <dd> + <p class="Pp">Configuration of the MSI-X for Admin Queue failed. + <br/> + There could be lack of resources or interrupts could not have been + configured. + <br/> + Driver will not be attached.</p> + </dd> + <dt>ena%d: VLAN is in use, detach first</dt> + <dd> + <p class="Pp">VLANs are being used when trying to detach the driver. + <br/> + VLANs must be detached first and then detach routine have to be called + again.</p> + </dd> + <dt>ena%d: Unmapped RX DMA tag associations</dt> + <dd></dd> + <dt>ena%d: Unmapped TX DMA tag associations</dt> + <dd> + <p class="Pp">Error occurred when trying to destroy RX/TX DMA tag.</p> + </dd> + <dt>ena%d: Cannot init indirect table</dt> + <dd></dd> + <dt>ena%d: Cannot fill indirect table</dt> + <dd></dd> + <dt>ena%d: Cannot fill hash function</dt> + <dd></dd> + <dt>ena%d: Cannot fill hash control</dt> + <dd></dd> + <dt>ena%d: WARNING: RSS was not properly initialized, it will affect + bandwidth</dt> + <dd> + <p class="Pp">Error occurred during initialization of one of RSS resources. + <br/> + The device will work with reduced performance because all RX packets will + be passed to queue 0 and there will be no hash information.</p> + </dd> + <dt>ena%d: LLQ is not supported. Fallback to host mode policy.</dt> + <dd></dd> + <dt>ena%d: Failed to configure the device mode. Fallback to host mode + policy.</dt> + <dd></dd> + <dt>ena%d: unable to allocate LLQ bar resource. Fallback to host mode + policy.</dt> + <dd> + <p class="Pp">Error occurred during Low-latency Queue mode setup. + <br/> + The device will work, but without the LLQ performance gain.</p> + </dd> + <dt>ena%d: failed to enable write combining.</dt> + <dd> + <p class="Pp">Error occurred while setting the Write Combining mode, + required for the LLQ.</p> + </dd> + <dt>ena%d: failed to tear down irq: %d</dt> + <dd></dd> + <dt>ena%d: dev has no parent while releasing res for irq: %d</dt> + <dd>Release of the interrupts failed.</dd> +</dl> +</section> +<section class="Ss"> +<h2 class="Ss" id="Additional_diagnostic"><a class="permalink" href="#Additional_diagnostic">Additional + diagnostic</a></h2> +<dl class="Bl-diag"> + <dt>ena%d: Invalid MTU setting. new_mtu: %d max_mtu: %d min mtu: %d</dt> + <dd> + <p class="Pp">Requested MTU value is not supported and will not be set.</p> + </dd> + <dt>ena%d: Failed to set MTU to %d</dt> + <dd> + <p class="Pp">This message appears when either MTU change feature is not + supported, or device communication error has occurred.</p> + </dd> + <dt>ena%d: Keep alive watchdog timeout.</dt> + <dd> + <p class="Pp">Device stopped responding and will be reset.</p> + </dd> + <dt>ena%d: Found a Tx that wasn't completed on time, qid %d, index %d.</dt> + <dd> + <p class="Pp">Packet was pushed to the NIC but not sent within given time + limit. + <br/> + It may be caused by hang of the IO queue.</p> + </dd> + <dt>ena%d: The number of lost tx completion is above the threshold (%d > + %d). Reset the device</dt> + <dd> + <p class="Pp">If too many Tx weren't completed on time the device is going + to be reset. + <br/> + It may be caused by hanged queue or device.</p> + </dd> + <dt>ena%d: Trigger reset is on</dt> + <dd> + <p class="Pp">Device will be reset. + <br/> + Reset is triggered either by watchdog or if too many TX packets were not + completed on time.</p> + </dd> + <dt>ena%d: device reset scheduled but trigger_reset is off</dt> + <dd> + <p class="Pp">Reset task has been triggered, but the driver did not request + it. + <br/> + Device reset will not be performed.</p> + </dd> + <dt>ena%d: Device reset failed</dt> + <dd> + <p class="Pp">Error occurred while trying to reset the device.</p> + </dd> + <dt>ena%d: Cannot initialize device</dt> + <dd></dd> + <dt>ena%d: Error, mac address are different</dt> + <dd></dd> + <dt>ena%d: Error, device max mtu is smaller than ifp MTU</dt> + <dd></dd> + <dt>ena%d: Validation of device parameters failed</dt> + <dd></dd> + <dt>ena%d: Enable MSI-X failed</dt> + <dd></dd> + <dt>ena%d: Failed to create I/O queues</dt> + <dd></dd> + <dt>ena%d: Reset attempt failed. Can not reset the device</dt> + <dd> + <p class="Pp">Error occurred while trying to restore the device after + reset.</p> + </dd> + <dt>ena%d: Device reset completed successfully, Driver info: %s</dt> + <dd> + <p class="Pp">Device has been correctly restored after reset and is ready to + use.</p> + </dd> + <dt>ena%d: Allocation for Tx Queue %u failed</dt> + <dd></dd> + <dt>ena%d: Allocation for Rx Queue %u failed</dt> + <dd></dd> + <dt>ena%d: Unable to create Rx DMA map for buffer %d</dt> + <dd></dd> + <dt>ena%d: Failed to create io TX queue #%d rc: %d</dt> + <dd></dd> + <dt>ena%d: Failed to get TX queue handlers. TX queue num %d rc: %d</dt> + <dd></dd> + <dt>ena%d: Failed to create io RX queue[%d] rc: %d</dt> + <dd></dd> + <dt>ena%d: Failed to get RX queue handlers. RX queue num %d rc: %d</dt> + <dd></dd> + <dt>ena%d: could not allocate irq vector: %d</dt> + <dd></dd> + <dt>ena%d: failed to register interrupt handler for irq %ju: %d</dt> + <dd> + <p class="Pp">IO resources initialization failed. + <br/> + Interface will not be brought up.</p> + </dd> + <dt>ena%d: LRO[%d] Initialization failed!</dt> + <dd> + <p class="Pp">Initialization of the LRO for the RX ring failed.</p> + </dd> + <dt>ena%d: failed to alloc buffer for rx queue</dt> + <dd></dd> + <dt>ena%d: failed to add buffer for rx queue %d</dt> + <dd></dd> + <dt>ena%d: refilled rx qid %d with only %d mbufs (from %d)</dt> + <dd> + <p class="Pp">Allocation of resources used on RX path failed. + <br/> + If happened during initialization of the IO queue, the interface will not + be brought up.</p> + </dd> + <dt>ena%d: NULL mbuf in rx_info</dt> + <dd> + <p class="Pp">Error occurred while assembling mbuf from descriptors.</p> + </dd> + <dt>ena%d: tx_info doesn't have valid mbuf</dt> + <dd></dd> + <dt>ena%d: Invalid req_id: %hu</dt> + <dd></dd> + <dt>ena%d: failed to prepare tx bufs</dt> + <dd> + <p class="Pp">Error occurred while preparing a packet for transmission.</p> + </dd> + <dt>ena%d: ioctl promisc/allmulti</dt> + <dd> + <p class="Pp">IOCTL request for the device to work in promiscuous/allmulti + mode. + <br/> + See <a class="Xr">ifconfig(8)</a> for more details.</p> + </dd> +</dl> +</section> +</section> +<section class="Sh"> +<h1 class="Sh" id="SUPPORT"><a class="permalink" href="#SUPPORT">SUPPORT</a></h1> +<p class="Pp">If an issue is identified with the released source code with a + supported adapter, please email the specific information related to the + issue to + <<a class="Mt" href="mailto:akiyano@amazon.com">akiyano@amazon.com</a>>, + <<a class="Mt" href="mailto:osamaabb@amazon.com">osamaabb@amazon.com</a>> + and + <<a class="Mt" href="mailto:darinzon@amazon.com">darinzon@amazon.com</a>>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE + ALSO</a></h1> +<p class="Pp"><a class="Xr">netmap(4)</a>, <a class="Xr">vlan(4)</a>, + <a class="Xr">ifconfig(8)</a></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> +<p class="Pp">The <code class="Nm">ena</code> driver first appeared in + <span class="Ux">FreeBSD 11.1</span>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> +<p class="Pp">The <code class="Nm">ena</code> driver was developed by Amazon and + originally written by <span class="An">Semihalf</span>.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">November 14, 2024</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
