| #
43fd3624 |
| 21-Jan-2025 |
Andre Muezerie <andremue@linux.microsoft.com> |
drivers: replace GCC pragma with cast
"GCC diagnostic ignored" pragmas have been commonly sprinkled over the code. Clang supports GCC's pragma for compatibility with existing source code, so #pragma
drivers: replace GCC pragma with cast
"GCC diagnostic ignored" pragmas have been commonly sprinkled over the code. Clang supports GCC's pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonyms for Clang (https://clang.llvm.org/docs/UsersManual.html).
Now that effort is being made to make the code compatible with MSVC these expressions would become more complex. It makes sense to hide this complexity behind macros. This makes maintenance easier as these macros are defined in a single place. As a plus the code becomes more readable as well.
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com> Acked-by: Morten Brørup <mb@smartsharesystems.com>
show more ...
|
|
Revision tags: v24.11, v24.11-rc4, v24.11-rc3, v24.11-rc2, v24.11-rc1, v24.07, v24.07-rc4, v24.07-rc3, v24.07-rc2, v24.07-rc1, v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2, v24.03-rc1, v23.11, v23.11-rc4, v23.11-rc3, v23.11-rc2, v23.11-rc1, v23.07, v23.07-rc4, v23.07-rc3, v23.07-rc2, v23.07-rc1, v23.03, v23.03-rc4, v23.03-rc3, v23.03-rc2, v23.03-rc1 |
|
| #
4e6bcde9 |
| 09-Feb-2023 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
net/virtio: remove port ID info from Rx queue
The port ID information is duplicated in several places. This patch removes it from the virtnet_rx struct as it can be found in virtio_hw struct.
Signe
net/virtio: remove port ID info from Rx queue
The port ID information is duplicated in several places. This patch removes it from the virtnet_rx struct as it can be found in virtio_hw struct.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
show more ...
|
|
Revision tags: v22.11, v22.11-rc4, v22.11-rc3, v22.11-rc2, v22.11-rc1, v22.07, v22.07-rc4, v22.07-rc3, v22.07-rc2, v22.07-rc1, 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, v21.11-rc1, v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1, v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2 |
|
| #
df96fd0d |
| 29-Jan-2021 |
Bruce Richardson <bruce.richardson@intel.com> |
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by:
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Steven Webster <steven.webster@windriver.com>
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, v20.05-rc1, v20.02, v20.02-rc4, v20.02-rc3 |
|
| #
ce6427dd |
| 09-Feb-2020 |
Thomas Monjalon <thomas@monjalon.net> |
replace cold attributes
The new macro __rte_cold, for compiler hinting, is now used where appropriate for consistency.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: David Christ
replace cold attributes
The new macro __rte_cold, for compiler hinting, is now used where appropriate for consistency.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
show more ...
|
|
Revision tags: v20.02-rc2, v20.02-rc1, v19.11, v19.11-rc4, v19.11-rc3, v19.11-rc2, v19.11-rc1, v19.08, v19.08-rc4, v19.08-rc3, v19.08-rc2, v19.08-rc1, v19.05, v19.05-rc4, v19.05-rc3, v19.05-rc2, v19.05-rc1, v19.02, v19.02-rc4, v19.02-rc3, v19.02-rc2, v19.02-rc1, v18.11, v18.11-rc5, v18.11-rc4, v18.11-rc3, v18.11-rc2, v18.11-rc1 |
|
| #
81bede55 |
| 05-Oct-2018 |
Keith Wiles <keith.wiles@intel.com> |
eal: add macro for attribute weak
eal: add shorthand __rte_weak macro qat: update code to use __rte_weak macro avf: update code to use __rte_weak macro fm10k: update code to use __rte_weak macro i40
eal: add macro for attribute weak
eal: add shorthand __rte_weak macro qat: update code to use __rte_weak macro avf: update code to use __rte_weak macro fm10k: update code to use __rte_weak macro i40e: update code to use __rte_weak macro ixgbe: update code to use __rte_weak macro mlx5: update code to use __rte_weak macro virtio: update code to use __rte_weak macro acl: update code to use __rte_weak macro bpf: update code to use __rte_weak macro
Signed-off-by: Keith Wiles <keith.wiles@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
|
Revision tags: v18.08, v18.08-rc3, v18.08-rc2, v18.08-rc1 |
|
| #
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 ...
|
|
Revision tags: v18.05, v18.05-rc6, v18.05-rc5, v18.05-rc4, v18.05-rc3, v18.05-rc2, v18.05-rc1, v18.02 |
|
| #
47857470 |
| 12-Feb-2018 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
net/virtio: fix resuming port with Rx vector path
Since commit efc83a1e7fc3 ("net/virtio: fix queue setup consistency"), when resuming a virtio port, the rx rings are refilled with new mbufs until t
net/virtio: fix resuming port with Rx vector path
Since commit efc83a1e7fc3 ("net/virtio: fix queue setup consistency"), when resuming a virtio port, the rx rings are refilled with new mbufs until they are full (vq->vq_free_cnt == 0). This is done without ensuring that the descriptor index remains a multiple of RTE_VIRTIO_VPMD_RX_REARM_THRESH, which is a prerequisite when using the vector mode. This can cause an out of bound access in the rx ring.
This commit changes the vector refill method from virtqueue_enqueue_recv_refill_simple() to virtio_rxq_rearm_vec(), which properly checks that the refill is done by batch of RTE_VIRTIO_VPMD_RX_REARM_THRESH.
As virtqueue_enqueue_recv_refill_simple() is no more used, this patch also removes the function.
Fixes: efc83a1e7fc3 ("net/virtio: fix queue setup consistency") Cc: stable@dpdk.org
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
show more ...
|
| #
9fedc2da |
| 12-Feb-2018 |
Olivier Matz <olivier.matz@6wind.com> |
net/virtio: fix mbuf data offset for simple Rx
The mbuf->data_off was was not properly set for the first received mbufs. Fix this by setting it in virtqueue_enqueue_recv_refill_simple(), which is us
net/virtio: fix mbuf data offset for simple Rx
The mbuf->data_off was was not properly set for the first received mbufs. Fix this by setting it in virtqueue_enqueue_recv_refill_simple(), which is used to enqueue the first mbuf in the ring.
The function virtio_rxq_rearm_vec(), which is used to rearm the ring with new mbufs, is valid and does not need to be updated.
Fixes: cab0461234e7 ("virtio: fill Rx avail ring with blank mbufs") Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
|
Revision tags: v18.02-rc4, v18.02-rc3, v18.02-rc2, v18.02-rc1 |
|
| #
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 ...
|
|
Revision tags: v17.11, v17.11-rc4, v17.11-rc3 |
|
| #
4c00cfdc |
| 04-Nov-2017 |
Thomas Monjalon <thomas@monjalon.net> |
remove useless memzone includes
The memzone header is often included without good reason.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
|
|
Revision tags: v17.11-rc2, v17.11-rc1 |
|
| #
0c4f909c |
| 07-Sep-2017 |
Olivier Matz <olivier.matz@6wind.com> |
net/virtio: fix mbuf port for simple Rx function
The mbuf->port was was not properly set for the first received mbufs. Fix this by setting it in virtqueue_enqueue_recv_refill_simple(), which is used
net/virtio: fix mbuf port for simple Rx function
The mbuf->port was was not properly set for the first received mbufs. Fix this by setting it in virtqueue_enqueue_recv_refill_simple(), which is used to enqueue the first mbuf in the ring.
The function virtio_rxq_rearm_vec(), which is used to rearm the ring with new mbufs, is correct and does not need to be updated.
Fixes: cab0461234e7 ("virtio: fill Rx avail ring with blank mbufs") Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
show more ...
|
|
Revision tags: v17.08, v17.08-rc4, v17.08-rc3, v17.08-rc2, v17.08-rc1, v17.05, v17.05-rc4, v17.05-rc3, v17.05-rc2 |
|
| #
b7be4f46 |
| 19-Apr-2017 |
Zhiyong Yang <zhiyong.yang@intel.com> |
net/virtio: support to turn on/off traffic flow
Current virtio_dev_stop only disables interrupt and marks link down, When it is invoked, tx/rx traffic flows still work. This is a strange behavior. T
net/virtio: support to turn on/off traffic flow
Current virtio_dev_stop only disables interrupt and marks link down, When it is invoked, tx/rx traffic flows still work. This is a strange behavior. The patch supports the switch of flow.
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
show more ...
|
|
Revision tags: v17.05-rc1, v17.02, v17.02-rc3, v17.02-rc2, v17.02-rc1, v16.11, v16.11-rc3, v16.11-rc2, v16.11-rc1, v16.07, v16.07-rc5, v16.07-rc4, v16.07-rc3, v16.07-rc2 |
|
| #
f412f14f |
| 05-Jul-2016 |
Jerin Jacob <jerin.jacob@caviumnetworks.com> |
net/virtio: move SSE based Rx code to separate file
Split out SSE instruction based virtio simple Rx implementation to a separate file
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Ac
net/virtio: move SSE based Rx code to separate file
Split out SSE instruction based virtio simple Rx implementation to a separate file
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
| #
17483cb2 |
| 05-Jul-2016 |
Jerin Jacob <jerin.jacob@caviumnetworks.com> |
net/virtio: cleanup conditional compilation
Removed unnecessary compile time dependency on "use_simple_rxtx".
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Yuanhan Liu <yuan
net/virtio: cleanup conditional compilation
Removed unnecessary compile time dependency on "use_simple_rxtx".
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
| #
0af54f09 |
| 26-Sep-2016 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
net: fix clang build
Interestingly, clang and gcc has different prototype for _mm_prefetch(). For gcc, we have
_mm_prefetch (const void *__P, enum _mm_hint __I)
While for clang, it's
#defin
net: fix clang build
Interestingly, clang and gcc has different prototype for _mm_prefetch(). For gcc, we have
_mm_prefetch (const void *__P, enum _mm_hint __I)
While for clang, it's
#define _mm_prefetch(a, sel) (__builtin_prefetch((void *)(a), 0, (sel)))
That's how the following error comes with clang:
error: cast from 'const void *' to 'void *' drops const qualifier [-Werror,-Wcast-qual] _mm_prefetch((const void *)rused, _MM_HINT_T0); /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/xmmintrin.h:684:58: note: expanded from macro '_mm_prefetch' #define _mm_prefetch(a, sel) (__builtin_prefetch((void *)(a), 0, (sel)))
What's weird is that the build was actaully Okay before. I met it while apply Jerin's vector support for ARM patch set: he just move this piece of code to another file, nothing else changed.
This patch fix the issue when Jerin's patchset is applied. Thus, I think it's still needed.
Similarly, make the same change to other _mm_prefetch users, just in case this weird issue shows up again somehow later.
Fixes: fc3d66212fed ("virtio: add vector Rx") Fixes: c95584dc2b18 ("ixgbe: new vectorized functions for Rx/Tx") Fixes: 9ed94e5bb04e ("i40e: add vector Rx") Fixes: 7092be8437bd ("fm10k: add vector Rx")
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: Jing Chen <jing.d.chen@intel.com>
show more ...
|
| #
25f80d10 |
| 19-Jul-2016 |
Olivier Matz <olivier.matz@6wind.com> |
net/virtio: fix packet corruption
The support of virtio-user changed the way the mbuf dma address is retrieved, using a physical address in case of virtio-pci and a virtual address in case of virtio
net/virtio: fix packet corruption
The support of virtio-user changed the way the mbuf dma address is retrieved, using a physical address in case of virtio-pci and a virtual address in case of virtio-user.
This change introduced some possible memory corruption in packets, replacing: m->buf_physaddr + RTE_PKTMBUF_HEADROOM by: m->buf_physaddr + m->data_off (through a macro)
This patch fixes this issue, restoring the original behavior.
By the way, it also rework the macros, adding a "VIRTIO_" prefix and API comments.
Fixes: f24f8f9fee8a ("net/virtio: allow virtual address to fill vring descriptors")
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
| #
dbd8bdfc |
| 07-Jul-2016 |
Ferruh Yigit <ferruh.yigit@intel.com> |
net/virtio: fix 32-bit build with gcc 6
This is for target i686-native-linuxapp-gcc and gcc6,
Compilation error is:
In file included from include/rte_mempool.h:77:0, from drivers/net/virtio/vi
net/virtio: fix 32-bit build with gcc 6
This is for target i686-native-linuxapp-gcc and gcc6,
Compilation error is:
In file included from include/rte_mempool.h:77:0, from drivers/net/virtio/virtio_rxtx_simple.c: In function `virtio_xmit_pkts_simple': include/rte_memcpy.h:551:2: error: array subscript is above array bounds rte_mov16((uint8_t *)dst + 1 * 16, (const uint8_t *)src + 1 * 16); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Call stack is as following:
virtio_xmit_pkts_simple virtio_xmit_cleanup rte_mempool_put_bulk rte_mempool_generic_put __mempool_generic_put rte_memcpy
The array used as source buffer in virtio_xmit_cleanup (free) is a pointer array with 32 elements, in 32bit this makes 128 bytes.
in rte_memcpy() implementation, there a code piece as following: if (size > 256) { rte_move128(...); rte_move128(...); <--- [1] .... }
The compiler traces the array all through the call stack and knows the size of array is 128 and generates a warning on above [1] which tries to access beyond byte 128. But unfortunately it ignores the "(size > 256)" check.
Giving a hint to compiler that variable "size" is related to the size of the source buffer fixes compiler warning.
Fixes: 863bfb474493 ("mempool: optimize copy in cache")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
|
Revision tags: v16.07-rc1 |
|
| #
b81026f1 |
| 19-Jun-2016 |
Huawei Xie <huawei.xie@intel.com> |
net/virtio: fix used index retrieved only once
In the following loop: while (vq->vq_used_cons_idx != vq->vq_ring.used->idx) { ... } There is no external function call or any expl
net/virtio: fix used index retrieved only once
In the following loop: while (vq->vq_used_cons_idx != vq->vq_ring.used->idx) { ... } There is no external function call or any explict memory barrier in the loop, the re-read of used->idx might be optimized and only be retrieved once.
Use of voaltile normally should be prohibited, and access_once is Linux kernel's style to handle this issue; Once we have that macro in DPDK, we could change to that style.
virtio_recv_mergable_pkts might also have the same issue, so fix it as well.
Fixes: 823ad647950a ("virtio: support multiple queues") Fixes: 13ce5e7eb94f ("virtio: mergeable buffers")
Signed-off-by: Huawei Xie <huawei.xie@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
| #
f24f8f9f |
| 15-Jun-2016 |
Jianfeng Tan <jianfeng.tan@intel.com> |
net/virtio: allow virtual address to fill vring descriptors
This patch is related to how to calculate relative address for vhost backend.
The principle is that: based on one or multiple shared memo
net/virtio: allow virtual address to fill vring descriptors
This patch is related to how to calculate relative address for vhost backend.
The principle is that: based on one or multiple shared memory regions, vhost maintains a reference system with the frontend start address, backend start address, and length for each segment, so that each frontend address (GPA, Guest Physical Address) can be translated into vhost-recognizable backend address. To make the address translation efficient, we need to maintain as few regions as possible. In the case of VM, GPA is always locally continuous. But for some other case, like virtio-user, GPA continuous is not guaranteed, therefore, we use virtual address here.
It basically means: a. when set_base_addr, VA address is used; b. when preparing RX's descriptors, VA address is used; c. when transmitting packets, VA is filled in TX's descriptors; d. in TX and CQ's header, VA is used.
Signed-off-by: Huawei Xie <huawei.xie@intel.com> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Neil Horman <nhorman@tuxdriver.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
| #
01ad44fd |
| 01-Jun-2016 |
Huawei Xie <huawei.xie@intel.com> |
net/virtio: split Rx/Tx queue
We keep a common vq structure, containing only vq related fields, and then split others into RX, TX and control queue respectively.
Signed-off-by: Huawei Xie <huawei.x
net/virtio: split Rx/Tx queue
We keep a common vq structure, containing only vq related fields, and then split others into RX, TX and control queue respectively.
Signed-off-by: Huawei Xie <huawei.xie@intel.com> [Jianfeng Tan: found and fixed 2 bugs] Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
show more ...
|
|
Revision tags: v16.04, v16.04-rc4, v16.04-rc3, v16.04-rc2, v16.04-rc1 |
|
| #
d6b324c0 |
| 04-Mar-2016 |
Ravi Kerur <rkerur@gmail.com> |
mbuf: get DMA address
Macros RTE_MBUF_DATA_DMA_ADDR and RTE_MBUF_DATA_DMA_ADDR_DEFAULT are defined in each PMD driver file. Convert macros to inline functions and move them to common lib/librte_mbuf
mbuf: get DMA address
Macros RTE_MBUF_DATA_DMA_ADDR and RTE_MBUF_DATA_DMA_ADDR_DEFAULT are defined in each PMD driver file. Convert macros to inline functions and move them to common lib/librte_mbuf/rte_mbuf.h file. PMD drivers include rte_mbuf.h file directly/indirectly hence no additioanl header file inclusion is necessary.
Signed-off-by: Ravi Kerur <rkerur@gmail.com> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
show more ...
|
| #
1905e101 |
| 02-Feb-2016 |
Yuanhan Liu <yuanhan.liu@linux.intel.com> |
virtio: retrieve header size from device setting
The mergeable virtio net hdr format has been the standard and the only virtio net hdr format since virtio 1.0. Therefore, we can not hardcode hdr_siz
virtio: retrieve header size from device setting
The mergeable virtio net hdr format has been the standard and the only virtio net hdr format since virtio 1.0. Therefore, we can not hardcode hdr_size to "sizeof(struct virtio_net_hdr)" any more at virtio_recv_pkts(), otherwise, there would be a mismatch of hdr size from rte_vhost_enqueue_burst() and virtio_recv_pkts(), leading a packet corruption.
Instead, we should retrieve it from hw->vtnet_hdr_size; we will do proper settings at eth_virtio_dev_init() in later patches.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Tested-by: Qian Xu <qian.q.xu@intel.com> Reviewed-by: Tetsuya Mukawa <mukawa@igel.co.jp> Tested-by: Tetsuya Mukawa <mukawa@igel.co.jp> Acked-by: Huawei Xie <huawei.xie@intel.com>
show more ...
|
|
Revision tags: v2.2.0, v2.2.0-rc4, v2.2.0-rc3, v2.2.0-rc2, v2.2.0-rc1 |
|
| #
c121c8d6 |
| 29-Oct-2015 |
Huawei Xie <huawei.xie@intel.com> |
virtio: add simple Tx
Bulk free of mbufs when clean used ring. Shift operation of idx could be saved if vq_free_cnt means free slots rather than free descriptors.
TODO: rearrange vq data structure,
virtio: add simple Tx
Bulk free of mbufs when clean used ring. Shift operation of idx could be saved if vq_free_cnt means free slots rather than free descriptors.
TODO: rearrange vq data structure, pack the stats var together so that we could use one vec instruction to update all of them.
Signed-off-by: Huawei Xie <huawei.xie@intel.com> Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
show more ...
|