virtio: fix the trace

Type: fix

This patch fixes the commit e347acbc31111504c015531e8ad764a86d489309

Change-Id: Icee7a6e250c94ae93e606d7869acc55c7a5806b1
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
This commit is contained in:
Mohsin Kazmi
2020-10-07 13:23:55 +02:00
committed by Damjan Marion
parent adb10ad775
commit 83143710e8

View File

@ -312,11 +312,11 @@ set_gso_offsets (vlib_buffer_t * b, virtio_net_hdr_v1_t * hdr, int is_l2)
}
static_always_inline u16
add_buffer_to_slot (vlib_main_t * vm, virtio_if_t * vif,
virtio_if_type_t type, virtio_vring_t * vring,
u32 bi, u16 free_desc_count,
add_buffer_to_slot (vlib_main_t * vm, vlib_node_runtime_t * node,
virtio_if_t * vif, virtio_if_type_t type,
virtio_vring_t * vring, u32 bi, u16 free_desc_count,
u16 avail, u16 next, u16 mask, int do_gso,
int csum_offload, uword node_index)
int csum_offload)
{
u16 n_added = 0;
int hdr_sz = vif->virtio_net_hdr_sz;
@ -334,7 +334,7 @@ add_buffer_to_slot (vlib_main_t * vm, virtio_if_t * vif,
set_gso_offsets (b, hdr, is_l2);
else
{
virtio_interface_drop_inline (vm, node_index, &bi, 1,
virtio_interface_drop_inline (vm, node->node_index, &bi, 1,
VIRTIO_TX_ERROR_GSO_PACKET_DROP);
return n_added;
}
@ -346,12 +346,17 @@ add_buffer_to_slot (vlib_main_t * vm, virtio_if_t * vif,
set_checksum_offsets (b, hdr, is_l2);
else
{
virtio_interface_drop_inline (vm, node_index, &bi, 1,
virtio_interface_drop_inline (vm, node->node_index, &bi, 1,
VIRTIO_TX_ERROR_CSUM_OFFLOAD_PACKET_DROP);
return n_added;
}
}
if (PREDICT_FALSE (b->flags & VLIB_BUFFER_IS_TRACED))
{
virtio_tx_trace (vm, node, type, b, bi);
}
if (PREDICT_TRUE ((b->flags & VLIB_BUFFER_NEXT_PRESENT) == 0))
{
d->addr =
@ -374,7 +379,7 @@ add_buffer_to_slot (vlib_main_t * vm, virtio_if_t * vif,
u32 indirect_buffer = 0;
if (PREDICT_FALSE (vlib_buffer_alloc (vm, &indirect_buffer, 1) == 0))
{
virtio_interface_drop_inline (vm, node_index, &bi, 1,
virtio_interface_drop_inline (vm, node->node_index, &bi, 1,
VIRTIO_TX_ERROR_INDIRECT_DESC_ALLOC_FAILED);
return n_added;
}
@ -599,15 +604,11 @@ retry:
u32 bi = virtio_vring_buffering_read_from_front (vring->buffering);
if (bi == ~0)
break;
vlib_buffer_t *b0 = vlib_get_buffer (vm, bi);
if (b0->flags & VLIB_BUFFER_IS_TRACED)
{
virtio_tx_trace (vm, node, type, b0, buffers[0]);
}
n_added =
add_buffer_to_slot (vm, vif, type, vring, bi, free_desc_count,
avail, next, mask, do_gso, csum_offload,
node->node_index);
add_buffer_to_slot (vm, node, vif, type, vring, bi,
free_desc_count, avail, next, mask, do_gso,
csum_offload);
if (PREDICT_FALSE (n_added == 0))
{
n_buffers_left--;
@ -628,15 +629,10 @@ retry:
{
u16 n_added = 0;
vlib_buffer_t *b0 = vlib_get_buffer (vm, buffers[0]);
if (b0->flags & VLIB_BUFFER_IS_TRACED)
{
virtio_tx_trace (vm, node, type, b0, buffers[0]);
}
n_added =
add_buffer_to_slot (vm, vif, type, vring, buffers[0], free_desc_count,
avail, next, mask, do_gso, csum_offload,
node->node_index);
add_buffer_to_slot (vm, node, vif, type, vring, buffers[0],
free_desc_count, avail, next, mask, do_gso,
csum_offload);
if (PREDICT_FALSE (n_added == 0))
{