#
7e72f3ec |
| 13-Jan-2020 |
Cheng Jiang <cheng1.jiang@intel.com> |
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 <cheng1.jiang@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
35b2d13f |
| 21-May-2019 |
Olivier Matz <olivier.matz@6wind.com> |
net: add rte prefix to ether defines
Add 'RTE_' prefix to defines: - rename ETHER_ADDR_LEN as RTE_ETHER_ADDR_LEN. - rename ETHER_TYPE_LEN as RTE_ETHER_TYPE_LEN. - rename ETHER_CRC_LEN as RTE_ETHER_C
net: add rte prefix to ether defines
Add 'RTE_' prefix to defines: - rename ETHER_ADDR_LEN as RTE_ETHER_ADDR_LEN. - rename ETHER_TYPE_LEN as RTE_ETHER_TYPE_LEN. - rename ETHER_CRC_LEN as RTE_ETHER_CRC_LEN. - rename ETHER_HDR_LEN as RTE_ETHER_HDR_LEN. - rename ETHER_MIN_LEN as RTE_ETHER_MIN_LEN. - rename ETHER_MAX_LEN as RTE_ETHER_MAX_LEN. - rename ETHER_MTU as RTE_ETHER_MTU. - rename ETHER_MAX_VLAN_FRAME_LEN as RTE_ETHER_MAX_VLAN_FRAME_LEN. - rename ETHER_MAX_VLAN_ID as RTE_ETHER_MAX_VLAN_ID. - rename ETHER_MAX_JUMBO_FRAME_LEN as RTE_ETHER_MAX_JUMBO_FRAME_LEN. - rename ETHER_MIN_MTU as RTE_ETHER_MIN_MTU. - rename ETHER_LOCAL_ADMIN_ADDR as RTE_ETHER_LOCAL_ADMIN_ADDR. - rename ETHER_GROUP_ADDR as RTE_ETHER_GROUP_ADDR. - rename ETHER_TYPE_IPv4 as RTE_ETHER_TYPE_IPv4. - rename ETHER_TYPE_IPv6 as RTE_ETHER_TYPE_IPv6. - rename ETHER_TYPE_ARP as RTE_ETHER_TYPE_ARP. - rename ETHER_TYPE_VLAN as RTE_ETHER_TYPE_VLAN. - rename ETHER_TYPE_RARP as RTE_ETHER_TYPE_RARP. - rename ETHER_TYPE_QINQ as RTE_ETHER_TYPE_QINQ. - rename ETHER_TYPE_ETAG as RTE_ETHER_TYPE_ETAG. - rename ETHER_TYPE_1588 as RTE_ETHER_TYPE_1588. - rename ETHER_TYPE_SLOW as RTE_ETHER_TYPE_SLOW. - rename ETHER_TYPE_TEB as RTE_ETHER_TYPE_TEB. - rename ETHER_TYPE_LLDP as RTE_ETHER_TYPE_LLDP. - rename ETHER_TYPE_MPLS as RTE_ETHER_TYPE_MPLS. - rename ETHER_TYPE_MPLSM as RTE_ETHER_TYPE_MPLSM. - rename ETHER_VXLAN_HLEN as RTE_ETHER_VXLAN_HLEN. - rename ETHER_ADDR_FMT_SIZE as RTE_ETHER_ADDR_FMT_SIZE. - rename VXLAN_GPE_TYPE_IPV4 as RTE_VXLAN_GPE_TYPE_IPV4. - rename VXLAN_GPE_TYPE_IPV6 as RTE_VXLAN_GPE_TYPE_IPV6. - rename VXLAN_GPE_TYPE_ETH as RTE_VXLAN_GPE_TYPE_ETH. - rename VXLAN_GPE_TYPE_NSH as RTE_VXLAN_GPE_TYPE_NSH. - rename VXLAN_GPE_TYPE_MPLS as RTE_VXLAN_GPE_TYPE_MPLS. - rename VXLAN_GPE_TYPE_GBP as RTE_VXLAN_GPE_TYPE_GBP. - rename VXLAN_GPE_TYPE_VBNG as RTE_VXLAN_GPE_TYPE_VBNG. - rename ETHER_VXLAN_GPE_HLEN as RTE_ETHER_VXLAN_GPE_HLEN.
Do not update the command line library to avoid adding a dependency to librte_net.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
9230ab8d |
| 09-Jan-2019 |
Ilya Maximets <i.maximets@samsung.com> |
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 <i.maximets@samsung.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
e9f4feb7 |
| 17-Dec-2018 |
Jens Freimann <jfreimann@redhat.com> |
net/virtio: add packed virtqueue helpers
Add helper functions to set/clear and check descriptor flags.
Signed-off-by: Jens Freimann <jfreimann@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coque
net/virtio: add packed virtqueue helpers
Add helper functions to set/clear and check descriptor flags.
Signed-off-by: Jens Freimann <jfreimann@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
4c3f5822 |
| 17-Dec-2018 |
Jens Freimann <jfreimann@redhat.com> |
net/virtio: add packed virtqueue defines
Signed-off-by: Jens Freimann <jfreimann@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
#
2a821d81 |
| 17-Jul-2017 |
Chas Williams <ciwillia@brocade.com> |
net/virtio: do not re-enter clean up routines
.dev_uninit calls .dev_stop and .dev_close. The work that is done in those routines doesn't need repeated. Use started and opened to track the adapter
net/virtio: do not re-enter clean up routines
.dev_uninit calls .dev_stop and .dev_close. The work that is done in those routines doesn't need repeated. Use started and opened to track the adapter's status.
Fixes: c1f86306a026 ("virtio: add new driver") Cc: stable@dpdk.org
Signed-off-by: Chas Williams <ciwillia@brocade.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
f79052fc |
| 25-Oct-2018 |
Tiwei Bie <tiwei.bie@intel.com> |
net/virtio: drop duplicated reset method
Drop the duplicated reset() method in virtio_pci_ops. Currently vtpci_reset() is implemented on set_status() and get_status() directly. The reset() method in
net/virtio: drop duplicated reset method
Drop the duplicated reset() method in virtio_pci_ops. Currently vtpci_reset() is implemented on set_status() and get_status() directly. The reset() method in virtio_pci_ops isn't used and its implementation in the legacy device isn't right.
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
db8d6790 |
| 02-Jul-2018 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
net/virtio: improve offload check performance
Instead of checking the multiple Virtio features bits for every packet, let's do the check once at configure time and store it in virtio_hw struct.
Sig
net/virtio: improve offload check performance
Instead of checking the multiple Virtio features bits for every packet, let's do the check once at configure time and store it in virtio_hw struct.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
show more ...
|
#
57f81896 |
| 02-Jul-2018 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
net/virtio: remove simple Tx path
The simple Tx path does not comply with the Virtio specification. Now that VIRTIO_F_IN_ORDER feature is supported by the Virtio PMD, let's use this optimized path i
net/virtio: remove simple Tx path
The simple Tx path does not comply with the Virtio specification. Now that VIRTIO_F_IN_ORDER feature is supported by the Virtio PMD, let's use this optimized path instead.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
show more ...
|
#
9f233f54 |
| 02-Jul-2018 |
Marvin Liu <yong.liu@intel.com> |
net/virtio: add in-order feature bit definition
If VIRTIO_F_IN_ORDER has been negotiated, driver will use descriptors in ring order: starting from offset 0 in the table, and wrapping around at the e
net/virtio: add in-order feature bit definition
If VIRTIO_F_IN_ORDER has been negotiated, driver will use descriptors in ring order: starting from offset 0 in the table, and wrapping around at the end of the table. Also introduce use_inorder_[rt]x flag for selection of IN_ORDER [RT]x handlers.
Signed-off-by: Marvin Liu <yong.liu@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
ffc905f3 |
| 22-Jan-2018 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: separate driver APIs
Create a rte_ethdev_driver.h file and move PMD specific APIs here. Drivers updated to include this new header file.
There is no update in header content and since ethde
ethdev: separate driver APIs
Create a rte_ethdev_driver.h file and move PMD specific APIs here. Drivers updated to include this new header file.
There is no update in header content and since ethdev.h included by ethdev_driver.h, nothing changed from driver point of view, only logically grouping of APIs. From applications point of view they can't access to driver specific APIs anymore and they shouldn't.
More PMD specific data structures still remain in ethdev.h because of inline functions in header use them. Those will be handled separately.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
1978a9dc |
| 10-Jan-2018 |
Xiao Wang <xiao.w.wang@intel.com> |
net/virtio: add packet injection method
This patch adds dev_pause, dev_resume and inject_pkts APIs to allow driver to pause the worker threads and inject special packets into Tx queue. The next patc
net/virtio: add packet injection method
This patch adds dev_pause, dev_resume and inject_pkts APIs to allow driver to pause the worker threads and inject special packets into Tx queue. The next patch will be based on this.
Signed-off-by: Xiao Wang <xiao.w.wang@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
5566a3e3 |
| 19-Dec-2017 |
Bruce Richardson <bruce.richardson@intel.com> |
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@in
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
fe19d49c |
| 09-Nov-2017 |
Zhiyong Yang <zhiyong.yang@intel.com> |
net/virtio: fix Rx interrupt with VFIO
When running l3fwd-power to test virtio rxq interrupt using vfio pci noiommu mode, startup fails. In the function virtio_read_caps, the code if (flags & PCI_MS
net/virtio: fix Rx interrupt with VFIO
When running l3fwd-power to test virtio rxq interrupt using vfio pci noiommu mode, startup fails. In the function virtio_read_caps, the code if (flags & PCI_MSIX_ENABLE) intends to double check if vfio msix is enabled or not. However, it is not enable at that time. So use_msix is assigned to "0", not "1", which causes the failure of configuring rxq intr in l3fwd-power. This patch adds the function "vtpci_msix_detect" to detect the status of msix when interrupt changes happen. In the meanwhile, virtio_intr_enable/disable are introduced to wrap rte_intr_enable/disable to enhance the ability to detect msix. use_msix can indicate three different msix status by: VIRTIO_MSIX_NONE (0) VIRTIO_MSIX_DISABLED (1) VIRTIO_MSIX_ENABLED (2)
Fixes: cb482cb3a305 ("net/virtio: fix MAC address read") Cc: stable@dpdk.org
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com> Acked-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
c752998b |
| 26-Oct-2017 |
Gaetan Rivet <gaetan.rivet@6wind.com> |
pci: introduce library and driver
The PCI lib defines the types and methods allowing to use PCI elements.
The PCI bus implements a bus driver for PCI devices by constructing rte_bus elements using
pci: introduce library and driver
The PCI lib defines the types and methods allowing to use PCI elements.
The PCI bus implements a bus driver for PCI devices by constructing rte_bus elements using the PCI lib.
Move the relevant code out of the EAL to its expected place.
Libraries, drivers, unit tests and applications are updated to use the new rte_bus_pci.h header when necessary.
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
09649363 |
| 07-Sep-2017 |
Olivier Matz <olivier.matz@6wind.com> |
net/virtio: keep Rx handler whatever the Tx queue config
Split use_simple_rxtx into use_simple_rx and use_simple_tx, and ensure that only use_simple_tx is updated when txq flags forces to use the st
net/virtio: keep Rx handler whatever the Tx queue config
Split use_simple_rxtx into use_simple_rx and use_simple_tx, and ensure that only use_simple_tx is updated when txq flags forces to use the standard Tx handler.
This change is also useful for next commit (disable simple Rx path when Rx checksum is requested).
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
show more ...
|
#
f8244c63 |
| 29-Sep-2017 |
Zhiyong Yang <zhiyong.yang@intel.com> |
ethdev: increase port id range
Extend port_id definition from uint8_t to uint16_t in lib and drivers data structures, specifically rte_eth_dev_data. Modify the APIs, drivers and app using port_id at
ethdev: increase port id range
Extend port_id definition from uint8_t to uint16_t in lib and drivers data structures, specifically rte_eth_dev_data. Modify the APIs, drivers and app using port_id at the same time.
Fix some checkpatch issues from the original code and remove some unnecessary cast operations.
release_17_11 and deprecation docs have been updated in this patch.
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
a60a0c15 |
| 27-Apr-2017 |
Jianfeng Tan <jianfeng.tan@intel.com> |
net/virtio: fix LSC setting
LSC flag is set in several places, but only the last one takes effect; so we remove the redundant ones and just keep the last one.
This also fixes the bug that dev_flags
net/virtio: fix LSC setting
LSC flag is set in several places, but only the last one takes effect; so we remove the redundant ones and just keep the last one.
This also fixes the bug that dev_flags being overwritten by rte_eth_copy_pci_info(), which resets it to 0 unconditionally.
Cc: stable@dpdk.org
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
aa9f0606 |
| 14-Apr-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
net/virtio: fix link status always being up
The virtio port link status will always be UP, even the port is stopped:
testpmd> port stop 0 Stopping ports... Checking link statuses...
net/virtio: fix link status always being up
The virtio port link status will always be UP, even the port is stopped:
testpmd> port stop 0 Stopping ports... Checking link statuses... Port 0 Link Up - speed 10000 Mbps - full-duplex Done
The link status is queried by link_update callback when LSC is disabled. Which in turn queries the "status" field. However, the "status" is read-only. I couldn't think of some proper ways to change the status without doing device reset.
Instead of doing (the heavy) reset at stop, this patch introduced a flag, which is set to 1 and 0 on start and stop, respectively. When it's set to 0, the link status is set to DOWN unconditionally.
Fixes: a85786dc816f ("virtio: fix states handling during initialization") Cc: stable@dpdk.org
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
49d26d9e |
| 12-Mar-2017 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
net/virtio: support MTU feature
This patch implements support for the Virtio MTU feature. When negotiated, the host shares its maximum supported MTU, which is used as initial MTU and as maximum MTU
net/virtio: support MTU feature
This patch implements support for the Virtio MTU feature. When negotiated, the host shares its maximum supported MTU, which is used as initial MTU and as maximum MTU the application can set.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
2269b9ae |
| 14-Mar-2017 |
Wenfeng Liu <liuwf@arraynetworks.com.cn> |
net/virtio-user: fix overflow
virtio-user limits the qeueue number to 8 but provides no limit check against the queue number input from user. If a bigger queue number (> 8) is given, there is an ove
net/virtio-user: fix overflow
virtio-user limits the qeueue number to 8 but provides no limit check against the queue number input from user. If a bigger queue number (> 8) is given, there is an overflow issue. Doing a sanity check could avoid it.
Fixes: 37a7eb2ae816 ("net/virtio-user: add device emulation layer") Cc: stable@dpdk.org
Signed-off-by: Wenfeng Liu <liuwf@arraynetworks.com.cn> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
c49526ac |
| 17-Jan-2017 |
Jianfeng Tan <jianfeng.tan@intel.com> |
net/virtio: add PCI operation for queue/irq binding
Add handler in virtio_pci_ops to set queue/irq bind.
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Tested-by: Lei Yao <lei.a.yao@intel.com
net/virtio: add PCI operation for queue/irq binding
Add handler in virtio_pci_ops to set queue/irq bind.
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Tested-by: Lei Yao <lei.a.yao@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
981e61f5 |
| 17-Jan-2017 |
Jianfeng Tan <jianfeng.tan@intel.com> |
net/virtio: invoke method directly for setting IRQ config
We need to define a prototype for such wrapper, which makes thing too complicated. Remove wrapper and call set_config_irq directly.
Suggest
net/virtio: invoke method directly for setting IRQ config
We need to define a prototype for such wrapper, which makes thing too complicated. Remove wrapper and call set_config_irq directly.
Suggested-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Tested-by: Lei Yao <lei.a.yao@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
9470427c |
| 12-Jan-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
net/virtio: do not store PCI device pointer at shared memory
hw->dev, a pointer to pci_dev, was actually not used, until the refactor of decouping from PCI device. This would somehow break the multi
net/virtio: do not store PCI device pointer at shared memory
hw->dev, a pointer to pci_dev, was actually not used, until the refactor of decouping from PCI device. This would somehow break the multiple process again, since "hw" is stored at shared memory, while "pci_dev" is not: the primary and secondary process could have different address for it, while just one value is allowed.
Thus we should not store it to "hw", instead, we could retrieve it from the "eth_dev->device" field.
Fixes: ae34410a8a8a ("ethdev: move info filling of PCI into drivers") Fixes: eac901ce29be ("ethdev: decouple from PCI device")
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
#
61e3ee17 |
| 12-Jan-2017 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
net/virtio: access interrupt handler directly
Since commit 0e1b45a284b4 ("ethdev: decouple interrupt handling from PCI device"), intr_handle is stored at eth_dev struct, that we could use it directl
net/virtio: access interrupt handler directly
Since commit 0e1b45a284b4 ("ethdev: decouple interrupt handling from PCI device"), intr_handle is stored at eth_dev struct, that we could use it directly. Thus there is no need to get it from hw.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|