← Prev in month ← Prev in thread

Network Device virtqueue numbering

From
Ladi Prosek <>
Date
2016-05-18T08:38:15+00:00
ID
Thread
Network Device virtqueue numbering
Hello virtio-comment,

This is a comment on section "5.1.2 Network Device: virtqueues" of
virtio 1.0 spec CS 04, copied below.

The numbers don't add up. For 1-based N, receiveqN is at index 2N-2,
transmitqN at index 2N-1 and controlq (if present) at index 2N.
Specifically for the N=1 special case mentioned in the paragraph,
controlq would be at index 2 and not 2*1+2 = 4.

This could be fixed either by using the correct queue indices [2N-2,
2N-1, 2N] instead of [2N, 2N+1, 2N+2] or by switching to 0-based
receiveq/transmitq numbering.

Thanks!
Ladi


5.1.2 Virtqueues

0
    receiveq1
1
    transmitq1
…
2N
    receiveqN
2N+1
    transmitqN
2N+2
    controlq

N=1 if VIRTIO_NET_F_MQ is not negotiated, otherwise N is set by
max_virtqueue_pairs.

controlq only exists if VIRTIO_NET_F_CTRL_VQ set.
← Prev in month ← Prev in thread