|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2 |
|
| #
0c9d6620 |
| 27-Oct-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: support RSS
Provide the capability to update the hash key, hash types and RETA table on the fly (without needing to stop/start the device). However, the key length and the number of RETA
net/virtio: support RSS
Provide the capability to update the hash key, hash types and RETA table on the fly (without needing to stop/start the device). However, the key length and the number of RETA entries are fixed to 40B and 128 entries respectively. This is done in order to simplify the design, but may be revisited later as the Virtio spec provides this flexibility.
Note that only VIRTIO_NET_F_RSS support is implemented, VIRTIO_NET_F_HASH_REPORT, which would enable reporting the packet RSS hash calculated by the device into mbuf.rss, is not yet supported.
Regarding the default RSS configuration, it has been chosen to use the default Intel ixgbe key as default key, and default RETA is a simple modulo between the hash and the number of Rx queues.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc1 |
|
| #
6c31a8c2 |
| 11-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: remove legacy Rx descriptor done API
rte_eth_rx_descriptor_status() should be used as a replacement.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigi
ethdev: remove legacy Rx descriptor done API
rte_eth_rx_descriptor_status() should be used as a replacement.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Acked-by: Thomas Monjalon <[email protected]>
show more ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2 |
|
| #
4e8169eb |
| 20-Jul-2021 |
Ivan Ilchenko <[email protected]> |
net/virtio: fix Rx scatter offload
Report Rx scatter offload capability depending on VIRTIO_NET_F_MRG_RXBUF.
If Rx scatter is not requested, ensure that provided Rx buffers on each Rx queue are big
net/virtio: fix Rx scatter offload
Report Rx scatter offload capability depending on VIRTIO_NET_F_MRG_RXBUF.
If Rx scatter is not requested, ensure that provided Rx buffers on each Rx queue are big enough to fit Rx packets up to configured MTU.
Fixes: ce17eddefc20 ("ethdev: introduce Rx queue offloads API") Cc: [email protected]
Signed-off-by: Ivan Ilchenko <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1 |
|
| #
924e6b76 |
| 25-Feb-2021 |
Thomas Monjalon <[email protected]> |
drivers: replace page size definitions with function
The page size is often retrieved from the macro PAGE_SIZE. If PAGE_SIZE is not defined, it is either using hard coded default, or getting the sys
drivers: replace page size definitions with function
The page size is often retrieved from the macro PAGE_SIZE. If PAGE_SIZE is not defined, it is either using hard coded default, or getting the system value from the UNIX-only function sysconf().
Such definitions are replaced with the generic function rte_mem_page_size() defined for each supported OS.
Removing PAGE_SIZE definitions will fix dlb drivers for musl libc, because #ifdef checks were missing, causing redefinition errors.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Andrew Boyer <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: David Marchand <[email protected]> Acked-by: Timothy McDaniel <[email protected]>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2 |
|
| #
7990d039 |
| 26-Jan-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: move virtqueue defines in generic header
This patch moves the virtqueues defines from PCI header to the generic one.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed
net/virtio: move virtqueue defines in generic header
This patch moves the virtqueues defines from PCI header to the generic one.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Chenbo Xia <[email protected]>
show more ...
|
| #
36a7a2e7 |
| 26-Jan-2021 |
Maxime Coquelin <[email protected]> |
net/virtio: move PCI device init in dedicated file
This patch moves the PCI Ethernet device registration bits in a dedicated patch. In following patches, more code will be moved there, with the goal
net/virtio: move PCI device init in dedicated file
This patch moves the PCI Ethernet device registration bits in a dedicated patch. In following patches, more code will be moved there, with the goal of making virtio_ethdev.c truly bus-agnostic.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Chenbo Xia <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc1, v20.11, v20.11-rc5, v20.11-rc4, v20.11-rc3, v20.11-rc2, v20.11-rc1, v20.08, v20.08-rc4, v20.08-rc3, v20.08-rc2, v20.08-rc1, v20.05, v20.05-rc4, v20.05-rc3, v20.05-rc2 |
|
| #
6494b9a9 |
| 29-Apr-2020 |
Marvin Liu <[email protected]> |
net/virtio: add vectorized packed ring Tx
Optimize packed ring Tx path like Rx path. Split Tx path into batch and single Tx functions. Batch function is further optimized by AVX512 instructions.
Si
net/virtio: add vectorized packed ring Tx
Optimize packed ring Tx path like Rx path. Split Tx path into batch and single Tx functions. Batch function is further optimized by AVX512 instructions.
Signed-off-by: Marvin Liu <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| #
77d66da8 |
| 29-Apr-2020 |
Marvin Liu <[email protected]> |
net/virtio: add vectorized packed ring Rx
Optimize packed ring Rx path with SIMD instructions. Solution of optimization is pretty like vhost, is that split path into batch and single functions. Batc
net/virtio: add vectorized packed ring Rx
Optimize packed ring Rx path with SIMD instructions. Solution of optimization is pretty like vhost, is that split path into batch and single functions. Batch function is further optimized by AVX512 instructions.
Signed-off-by: Marvin Liu <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v20.05-rc1 |
|
| #
1357b4b3 |
| 30-Mar-2020 |
Ivan Dyukov <[email protected]> |
net/virtio: support Virtio link speed feature
This patch adds a support of VIRTIO_NET_F_SPEED_DUPLEX feature for virtio driver.
There are two ways to specify speed of the link: 'speed' devarg
net/virtio: support Virtio link speed feature
This patch adds a support of VIRTIO_NET_F_SPEED_DUPLEX feature for virtio driver.
There are two ways to specify speed of the link: 'speed' devarg negotiate speed from qemu via VIRTIO_NET_F_SPEED_DUPLEX The highest priority is devarg. If devarg is not specified, drivers tries to negotiate it from qemu.
Signed-off-by: Ivan Dyukov <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v20.02, v20.02-rc4, v20.02-rc3, v20.02-rc2, v20.02-rc1 |
|
| #
7e72f3ec |
| 13-Jan-2020 |
Cheng Jiang <[email protected]> |
net/virtio: support packed ring notification data
This patch supports the feature that the driver passes extra data (besides identifying the virtqueue) in its device notifications, expanding the not
net/virtio: support packed ring notification data
This patch supports the feature that the driver passes extra data (besides identifying the virtqueue) in its device notifications, expanding the notifications to include the avail index and avail wrap counter.
Signed-off-by: Cheng Jiang <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v19.11, v19.11-rc4, v19.11-rc3, v19.11-rc2, v19.11-rc1 |
|
| #
1d2aa48b |
| 13-Aug-2019 |
Tiwei Bie <[email protected]> |
net/virtio: remove remaining simple Tx related stuff
The simple Tx path in virtio has been removed in below commit. This patch removes an undefined function declaration of simple Tx and all related
net/virtio: remove remaining simple Tx related stuff
The simple Tx path in virtio has been removed in below commit. This patch removes an undefined function declaration of simple Tx and all related descriptions in the doc.
Fixes: 57f818963d80 ("net/virtio: remove simple Tx path") Cc: [email protected]
Signed-off-by: Tiwei Bie <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v19.08, v19.08-rc4, v19.08-rc3, v19.08-rc2, v19.08-rc1 |
|
| #
00a5ea02 |
| 17-Jun-2019 |
Dilshod Urazov <[email protected]> |
net/virtio: add Tx preparation
Virtio requires pseudo-header checksum in TCP/UDP checksum to do offload, but it was lost when Tx prepare is introduced. Also rte_validate_tx_offload() should be used
net/virtio: add Tx preparation
Virtio requires pseudo-header checksum in TCP/UDP checksum to do offload, but it was lost when Tx prepare is introduced. Also rte_validate_tx_offload() should be used to validate Tx offloads.
Also it is incorrect to do virtio_tso_fix_cksum() after prepend to mbuf without taking prepended size into account, since layer 2/3/4 lengths provide incorrect offsets after prepend.
Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation") Cc: [email protected]
Signed-off-by: Dilshod Urazov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Tiwei Bie <[email protected]>
show more ...
|
|
Revision tags: v19.05, v19.05-rc4, v19.05-rc3, v19.05-rc2, v19.05-rc1 |
|
| #
1c8489da |
| 25-Mar-2019 |
Tiwei Bie <[email protected]> |
net/virtio-user: fix multi-process support
This patch fixes the multi-process support for virtio-user. Currently virtio-user just provides some limited secondary process supports. Only some basic op
net/virtio-user: fix multi-process support
This patch fixes the multi-process support for virtio-user. Currently virtio-user just provides some limited secondary process supports. Only some basic operations can be done in secondary process on virtio-user port, e.g. getting port stats. Actions which will trigger the communication with vhost backend can't be done in secondary process for now, as the fds are not synced between processes. The processing of server mode devargs is also moved into virtio_user_dev_init().
Fixes: cdb068f031c6 ("bus/vdev: scan by multi-process channel") Fixes: ee27edbe0c10 ("drivers/net: share vdev data to secondary process") Cc: [email protected]
Signed-off-by: Tiwei Bie <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v19.02, v19.02-rc4, v19.02-rc3, v19.02-rc2 |
|
| #
9230ab8d |
| 09-Jan-2019 |
Ilya Maximets <[email protected]> |
net/virtio: support platform memory ordering
VIRTIO_F_ORDER_PLATFORM is required to use proper memory barriers in case of HW vhost implementations like vDPA.
DMA barriers (rte_cio_*) are sufficent
net/virtio: support platform memory ordering
VIRTIO_F_ORDER_PLATFORM is required to use proper memory barriers in case of HW vhost implementations like vDPA.
DMA barriers (rte_cio_*) are sufficent for that purpose.
Previously known as VIRTIO_F_IO_BARRIER.
Signed-off-by: Ilya Maximets <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]> Acked-by: Michael S. Tsirkin <[email protected]>
show more ...
|
|
Revision tags: v19.02-rc1 |
|
| #
efcda136 |
| 20-Dec-2018 |
Maxime Coquelin <[email protected]> |
net/virtio: add non-mergeable support to in-order path
This patch adds support for in-order path when meargeable buffers feature hasn't been negotiated.
Signed-off-by: Maxime Coquelin <maxime.coque
net/virtio: add non-mergeable support to in-order path
This patch adds support for in-order path when meargeable buffers feature hasn't been negotiated.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Tiwei Bie <[email protected]>
show more ...
|
| #
aea29aa5 |
| 17-Dec-2018 |
Jens Freimann <[email protected]> |
net/virtio: enable packed virtqueues by default
Signed-off-by: Jens Freimann <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
|
| #
a76290c8 |
| 17-Dec-2018 |
Jens Freimann <[email protected]> |
net/virtio: implement Rx path for packed queues
Implement the receive part.
Signed-off-by: Jens Freimann <[email protected]> Signed-off-by: Tiwei Bie <[email protected]> Reviewed-by: Maxime Co
net/virtio: implement Rx path for packed queues
Implement the receive part.
Signed-off-by: Jens Freimann <[email protected]> Signed-off-by: Tiwei Bie <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| #
892dc798 |
| 17-Dec-2018 |
Jens Freimann <[email protected]> |
net/virtio: implement Tx path for packed queues
This implements the transmit path for devices with support for packed virtqueues.
Signed-off-by: Jens Freimann <[email protected]> Signed-off-by:
net/virtio: implement Tx path for packed queues
This implements the transmit path for devices with support for packed virtqueues.
Signed-off-by: Jens Freimann <[email protected]> Signed-off-by: Tiwei Bie <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v18.11, v18.11-rc5, v18.11-rc4, v18.11-rc3, v18.11-rc2, v18.11-rc1 |
|
| #
66908eff |
| 21-Sep-2018 |
Tiwei Bie <[email protected]> |
net/virtio: add missing supported features
The virtio features VIRTIO_NET_F_CSUM, VIRTIO_NET_F_HOST_TSO4 and VIRTIO_NET_F_HOST_TSO6 are supported by the virtio PMD. But they are missing in the suppo
net/virtio: add missing supported features
The virtio features VIRTIO_NET_F_CSUM, VIRTIO_NET_F_HOST_TSO4 and VIRTIO_NET_F_HOST_TSO6 are supported by the virtio PMD. But they are missing in the supported feature set. And since below commit:
commit 4174a7b59d05 ("net/virtio: improve Tx offload features negotiation")
Virtio PMD will announce the Tx offloading capabilities based on the features read from the device. And virtio-user won't report the features which are not in virtio-PMD's supported feature set. So since that commit, virtio-user won't announce the DEV_TX_OFFLOAD_UDP_CKSUM, DEV_TX_OFFLOAD_TCP_CKSUM and DEV_TX_OFFLOAD_TCP_TSO offloading capabilities even if the vhost backend supports them.
This patch adds these missing features, and virtio-user will report them if the backend supports them.
Fixes: 142678d42959 ("net/virtio-user: fix wrongly get/set features") Cc: [email protected]
Signed-off-by: Tiwei Bie <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v18.08, v18.08-rc3, v18.08-rc2 |
|
| #
25760ee8 |
| 25-Jul-2018 |
Tiwei Bie <[email protected]> |
net/virtio: remove unused offloads macro
This macro isn't used any more after below commit:
Fixes: a4996bd89c42 ("ethdev: new Rx/Tx offloads API") Cc: [email protected]
Signed-off-by: Tiwei Bie <tiw
net/virtio: remove unused offloads macro
This macro isn't used any more after below commit:
Fixes: a4996bd89c42 ("ethdev: new Rx/Tx offloads API") Cc: [email protected]
Signed-off-by: Tiwei Bie <[email protected]>
show more ...
|
|
Revision tags: v18.08-rc1 |
|
| #
4174a7b5 |
| 02-Jul-2018 |
Maxime Coquelin <[email protected]> |
net/virtio: improve Tx offload features negotiation
This patch improves the Tx offload features selection depending on whether the application request for offloads.
When the application doesn't req
net/virtio: improve Tx offload features negotiation
This patch improves the Tx offload features selection depending on whether the application request for offloads.
When the application doesn't request for Tx offload features, the corresponding features bits aren't negotiated.
Signed-off-by: Maxime Coquelin <[email protected]> Reviewed-by: Tiwei Bie <[email protected]>
show more ...
|
| #
41e45c90 |
| 02-Jul-2018 |
Marvin Liu <[email protected]> |
net/virtio: advertise support in-order feature
Signed-off-by: Marvin Liu <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
|
| #
e5f456a9 |
| 02-Jul-2018 |
Marvin Liu <[email protected]> |
net/virtio: support in-order Rx and Tx
IN_ORDER Rx function depends on merge-able feature. Descriptors allocation and free will be done in bulk.
Virtio dequeue logic: dequeue_burst_rx(burst mbu
net/virtio: support in-order Rx and Tx
IN_ORDER Rx function depends on merge-able feature. Descriptors allocation and free will be done in bulk.
Virtio dequeue logic: dequeue_burst_rx(burst mbufs) for (each mbuf b) { if (b need merge) { merge remained mbufs add merged mbuf to return mbufs list } else { add mbuf to return mbufs list } } if (last mbuf c need merge) { dequeue_burst_rx(required mbufs) merge last mbuf c } refill_avail_ring_bulk() update_avail_ring() return mbufs list
IN_ORDER Tx function can support offloading features. Packets which matched "can_push" option will be handled by simple xmit function. Those packets can't match "can_push" will be handled by original xmit function with in-order flag.
Virtio enqueue logic: xmit_cleanup(used descs) for (each xmit mbuf b) { if (b can inorder xmit) { add mbuf b to inorder burst list continue } else { xmit inorder burst list xmit mbuf b by original function } } if (inorder burst list not empty) { xmit inorder burst list } update_avail_ring()
Signed-off-by: Marvin Liu <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v18.05, v18.05-rc6, v18.05-rc5, v18.05-rc4, v18.05-rc3, v18.05-rc2, v18.05-rc1 |
|
| #
9c7ce8bd |
| 09-Mar-2018 |
Tiwei Bie <[email protected]> |
net/virtio: move to new offloads API
Ethdev offloads API has changed since:
commit ce17eddefc20 ("ethdev: introduce Rx queue offloads API") commit cba7f53b717d ("ethdev: introduce Tx queue offloads
net/virtio: move to new offloads API
Ethdev offloads API has changed since:
commit ce17eddefc20 ("ethdev: introduce Rx queue offloads API") commit cba7f53b717d ("ethdev: introduce Tx queue offloads API")
Signed-off-by: Tiwei Bie <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
|
Revision tags: v18.02, v18.02-rc4, v18.02-rc3, v18.02-rc2, v18.02-rc1 |
|
| #
7365504f |
| 18-Jan-2018 |
Xiao Wang <[email protected]> |
net/virtio: support guest announce
When live migration is done, for the backup VM, either the virtio frontend or the vhost backend needs to send out gratuitous RARP packet to announce its new networ
net/virtio: support guest announce
When live migration is done, for the backup VM, either the virtio frontend or the vhost backend needs to send out gratuitous RARP packet to announce its new network location.
This patch enables VIRTIO_NET_F_GUEST_ANNOUNCE feature to support live migration scenario where the vhost backend doesn't have the ability to generate RARP packet.
Brief introduction of the work flow: 1. QEMU finishes live migration, pokes the backup VM with an interrupt. 2. Virtio interrupt handler reads out the interrupt status value, and realizes it needs to send out RARP packet to announce its location. 3. Pause device to stop worker thread touching the queues. 4. Inject a RARP packet into a Tx Queue. 5. Ack the interrupt via control queue. 6. Resume device to continue packet processing.
Signed-off-by: Xiao Wang <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]> Acked-by: Yuanhan Liu <[email protected]>
show more ...
|