X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Fnetvsc.rst;h=19f9940fe6e1ba80815632302041f271f4593012;hb=a124f9e9591bf2b22b20e2d117775b0ff0b9f684;hp=345f393c24ba6b3f64de76d75ccb8434359aef7e;hpb=4b048f352c0126f6f7b8ab36e6ad7bb33703ceac;p=dpdk.git diff --git a/doc/guides/nics/netvsc.rst b/doc/guides/nics/netvsc.rst index 345f393c24..19f9940fe6 100644 --- a/doc/guides/nics/netvsc.rst +++ b/doc/guides/nics/netvsc.rst @@ -28,19 +28,16 @@ In this release, the hyper PMD driver provides the basic functionality of packet * VLAN tags are always stripped and presented in mbuf tci field. -* The Hyper-V driver does not use or support Link State or Rx interrupt. +* The Hyper-V driver does not use or support interrupts. Link state change + callback is done via change events in the packet ring. * The maximum number of queues is limited by the host (currently 64). When used with 4.16 kernel only a single queue is available. -.. note:: - This driver is intended for use with **Hyper-V only** and is - not recommended for use on Azure because accelerated Networking - (SR-IOV) is not supported. - - On Azure, use the :doc:`vdev_netvsc` which - automatically configures the necessary TAP and failsave drivers. - +* This driver supports SR-IOV network acceleration. + If SR-IOV is enabled then the driver will transparently manage the interface, + and send and receive packets using the VF path. + The VDEV_NETVSC and FAILSAFE drivers are *not* used when using netvsc PMD. Installation ------------ @@ -92,7 +89,7 @@ operations: .. Note:: - The dpkd-devbind.py script can not be used since it only handles PCI devices. + The dpdk-devbind.py script can not be used since it only handles PCI devices. Prerequisites @@ -103,3 +100,44 @@ The following prerequisites apply: * Linux kernel support for UIO on vmbus is done with the uio_hv_generic driver. Full support of multiple queues requires the 4.17 kernel. It is possible to use the netvsc PMD with 4.16 kernel but it is limited to a single queue. + + +Netvsc PMD arguments +-------------------- + +The user can specify below argument in devargs. + +#. ``latency``: + + A netvsc device uses a mailbox page to indicate to the host that there + is something in the transmit queue. The host scans this page at a + periodic interval. This parameter allows adjusting the value that + is used by the host. Smaller values improve transmit latency, and larger + values save CPU cycles. This parameter is in microseconds. + If the value is too large or too small it will be + ignored by the host. (Default: 50) + +#. ``rx_copybreak``: + + The rx_copybreak sets the threshold where the driver uses an external + mbuf to avoid having to copy data. Setting 0 for copybreak will cause + driver to always create an external mbuf. Setting a value greater than + the MTU would prevent it from ever making an external mbuf and always + copy. The default value is 256 (bytes). + +#. ``tx_copybreak``: + + The tx_copybreak sets the threshold where the driver aggregates + multiple small packets into one request. If tx_copybreak is 0 then + each packet goes as a VMBus request (no copying). If tx_copybreak is + set larger than the MTU, then all packets smaller than the chunk size + of the VMBus send buffer will be copied; larger packets always have to + go as a single direct request. The default value is 512 (bytes). + +#. ``rx_extmbuf_enable``: + The rx_extmbuf_enable is used to control if netvsc should use external + mbuf for receiving packets. The default value is 0. (netvsc doesn't use + external mbuf, it always allocates mbuf and copy received data to mbuf) + A non-zero value tells netvsc to attach external buffers to mbuf on + receiving packets, thus avoid copying memory. Use of external buffers + requires the application is able to read data from external mbuf.