History log of /dpdk/drivers/net/virtio/virtio_ethdev.h (Results 1 – 25 of 53)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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 ...


123