git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/ice: enable flow redirect on switch
[dpdk.git]
/
drivers
/
net
/
virtio
/
virtio_rxtx.c
diff --git
a/drivers/net/virtio/virtio_rxtx.c
b/drivers/net/virtio/virtio_rxtx.c
index
405c313
..
0604105
100644
(file)
--- a/
drivers/net/virtio/virtio_rxtx.c
+++ b/
drivers/net/virtio/virtio_rxtx.c
@@
-635,7
+635,7
@@
virtqueue_enqueue_xmit_inorder(struct virtnet_tx *txvq,
struct vring_desc *start_dp;
struct virtio_net_hdr *hdr;
uint16_t idx;
struct vring_desc *start_dp;
struct virtio_net_hdr *hdr;
uint16_t idx;
-
u
int16_t head_size = vq->hw->vtnet_hdr_size;
+ int16_t head_size = vq->hw->vtnet_hdr_size;
uint16_t i = 0;
idx = vq->vq_desc_head_idx;
uint16_t i = 0;
idx = vq->vq_desc_head_idx;
@@
-648,8
+648,8
@@
virtqueue_enqueue_xmit_inorder(struct virtnet_tx *txvq,
dxp->ndescs = 1;
virtio_update_packet_stats(&txvq->stats, cookies[i]);
dxp->ndescs = 1;
virtio_update_packet_stats(&txvq->stats, cookies[i]);
- hdr =
(struct virtio_net_hdr *)(char *)cookies[i]->buf_addr +
-
cookies[i]->data_off - head_size
;
+ hdr =
rte_pktmbuf_mtod_offset(cookies[i],
+
struct virtio_net_hdr *, -head_size)
;
/* if offload disabled, hdr is not zeroed yet, do it now */
if (!vq->hw->has_tx_offload)
/* if offload disabled, hdr is not zeroed yet, do it now */
if (!vq->hw->has_tx_offload)
@@
-682,7
+682,7
@@
virtqueue_enqueue_xmit_packed_fast(struct virtnet_tx *txvq,
struct vring_packed_desc *dp;
struct vq_desc_extra *dxp;
uint16_t idx, id, flags;
struct vring_packed_desc *dp;
struct vq_desc_extra *dxp;
uint16_t idx, id, flags;
-
u
int16_t head_size = vq->hw->vtnet_hdr_size;
+ int16_t head_size = vq->hw->vtnet_hdr_size;
struct virtio_net_hdr *hdr;
id = in_order ? vq->vq_avail_idx : vq->vq_desc_head_idx;
struct virtio_net_hdr *hdr;
id = in_order ? vq->vq_avail_idx : vq->vq_desc_head_idx;
@@
-696,8
+696,8
@@
virtqueue_enqueue_xmit_packed_fast(struct virtnet_tx *txvq,
flags = vq->vq_packed.cached_flags;
/* prepend cannot fail, checked by caller */
flags = vq->vq_packed.cached_flags;
/* prepend cannot fail, checked by caller */
- hdr =
(struct virtio_net_hdr *)(char *)cookie->buf_addr +
-
cookie->data_off - head_size
;
+ hdr =
rte_pktmbuf_mtod_offset(cookie, struct virtio_net_hdr *,
+
-head_size)
;
/* if offload disabled, hdr is not zeroed yet, do it now */
if (!vq->hw->has_tx_offload)
/* if offload disabled, hdr is not zeroed yet, do it now */
if (!vq->hw->has_tx_offload)
@@
-734,7
+734,7
@@
virtqueue_enqueue_xmit_packed(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
struct virtqueue *vq = txvq->vq;
struct vring_packed_desc *start_dp, *head_dp;
uint16_t idx, id, head_idx, head_flags;
struct virtqueue *vq = txvq->vq;
struct vring_packed_desc *start_dp, *head_dp;
uint16_t idx, id, head_idx, head_flags;
-
u
int16_t head_size = vq->hw->vtnet_hdr_size;
+ int16_t head_size = vq->hw->vtnet_hdr_size;
struct virtio_net_hdr *hdr;
uint16_t prev;
bool prepend_header = false;
struct virtio_net_hdr *hdr;
uint16_t prev;
bool prepend_header = false;
@@
-756,8
+756,8
@@
virtqueue_enqueue_xmit_packed(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
if (can_push) {
/* prepend cannot fail, checked by caller */
if (can_push) {
/* prepend cannot fail, checked by caller */
- hdr =
(struct virtio_net_hdr *)(char *)cookie->buf_addr +
-
cookie->data_off - head_size
;
+ hdr =
rte_pktmbuf_mtod_offset(cookie, struct virtio_net_hdr *,
+
-head_size)
;
prepend_header = true;
/* if offload disabled, it is not zeroed below, do it now */
prepend_header = true;
/* if offload disabled, it is not zeroed below, do it now */
@@
-832,7
+832,7
@@
virtqueue_enqueue_xmit(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
struct vring_desc *start_dp;
uint16_t seg_num = cookie->nb_segs;
uint16_t head_idx, idx;
struct vring_desc *start_dp;
uint16_t seg_num = cookie->nb_segs;
uint16_t head_idx, idx;
-
u
int16_t head_size = vq->hw->vtnet_hdr_size;
+ int16_t head_size = vq->hw->vtnet_hdr_size;
bool prepend_header = false;
struct virtio_net_hdr *hdr;
bool prepend_header = false;
struct virtio_net_hdr *hdr;
@@
-849,8
+849,8
@@
virtqueue_enqueue_xmit(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
if (can_push) {
/* prepend cannot fail, checked by caller */
if (can_push) {
/* prepend cannot fail, checked by caller */
- hdr =
(struct virtio_net_hdr *)(char *)cookie->buf_addr +
-
cookie->data_off - head_size
;
+ hdr =
rte_pktmbuf_mtod_offset(cookie, struct virtio_net_hdr *,
+
-head_size)
;
prepend_header = true;
/* if offload disabled, it is not zeroed below, do it now */
prepend_header = true;
/* if offload disabled, it is not zeroed below, do it now */
@@
-1067,6
+1067,11
@@
virtio_dev_tx_queue_setup(struct rte_eth_dev *dev,
PMD_INIT_FUNC_TRACE();
PMD_INIT_FUNC_TRACE();
+ if (tx_conf->tx_deferred_start) {
+ PMD_INIT_LOG(ERR, "Tx deferred start is not supported");
+ return -EINVAL;
+ }
+
if (nb_desc == 0 || nb_desc > vq->vq_nentries)
nb_desc = vq->vq_nentries;
vq->vq_free_cnt = RTE_MIN(vq->vq_free_cnt, nb_desc);
if (nb_desc == 0 || nb_desc > vq->vq_nentries)
nb_desc = vq->vq_nentries;
vq->vq_free_cnt = RTE_MIN(vq->vq_free_cnt, nb_desc);
@@
-1080,7
+1085,7
@@
virtio_dev_tx_queue_setup(struct rte_eth_dev *dev,
RTE_MIN(vq->vq_nentries / 4, DEFAULT_TX_FREE_THRESH);
if (tx_free_thresh >= (vq->vq_nentries - 3)) {
RTE_MIN(vq->vq_nentries / 4, DEFAULT_TX_FREE_THRESH);
if (tx_free_thresh >= (vq->vq_nentries - 3)) {
-
RTE_LOG(ERR, PMD
, "tx_free_thresh must be less than the "
+
PMD_DRV_LOG(ERR
, "tx_free_thresh must be less than the "
"number of TX entries minus 3 (%u)."
" (tx_free_thresh=%u port=%u queue=%u)\n",
vq->vq_nentries - 3,
"number of TX entries minus 3 (%u)."
" (tx_free_thresh=%u port=%u queue=%u)\n",
vq->vq_nentries - 3,
@@
-1128,7
+1133,7
@@
virtio_discard_rxbuf(struct virtqueue *vq, struct rte_mbuf *m)
error = virtqueue_enqueue_recv_refill(vq, &m, 1);
if (unlikely(error)) {
error = virtqueue_enqueue_recv_refill(vq, &m, 1);
if (unlikely(error)) {
-
RTE_LOG(ERR, PMD
, "cannot requeue discarded mbuf");
+
PMD_DRV_LOG(ERR
, "cannot requeue discarded mbuf");
rte_pktmbuf_free(m);
}
}
rte_pktmbuf_free(m);
}
}
@@
-1140,7
+1145,7
@@
virtio_discard_rxbuf_inorder(struct virtqueue *vq, struct rte_mbuf *m)
error = virtqueue_enqueue_refill_inorder(vq, &m, 1);
if (unlikely(error)) {
error = virtqueue_enqueue_refill_inorder(vq, &m, 1);
if (unlikely(error)) {
-
RTE_LOG(ERR, PMD
, "cannot requeue discarded mbuf");
+
PMD_DRV_LOG(ERR
, "cannot requeue discarded mbuf");
rte_pktmbuf_free(m);
}
}
rte_pktmbuf_free(m);
}
}