[dpdk-dev] [PATCH v2 6/8] net/virtio: support IN_ORDER Rx and Tx
Maxime Coquelin
maxime.coquelin at redhat.com
Wed Jun 27 10:18:15 CEST 2018
On 06/25/2018 05:17 PM, Marvin Liu wrote:
> IN_ORDER Rx function can support merge-able feature. Descriptors
My understanding of the code is that IN_ORDER Rx function only supports
mergeable feature (and it seems to be confirmed by patch 7).
So maybe change the text to:
"IN_ORDER Rx function requires merge-able feature."
> allocation and free will be done in bulk.
>
> Virtio dequeue logic:
> dequeue_burst_rx(burst mbufs)
> for (each mbuf b) {
> if (b need merge) {
> merge remained mbufs
> add merged mbuf to return mbufs list
> } else {
> add mbuf to return mbufs list
> }
> }
> if (last mbuf c need merge) {
> dequeue_burst_rx(required mbufs)
> merge last mbuf c
> }
> refill_avail_ring_bulk()
> update_avail_ring()
> return mbufs list
>
> IN_ORDER Tx function can support offloading features. Packets can't be
s/can support/supports/
> transmitted by IN_ORDER Tx will be handled by normal Tx.
Can you clarify why some packets can't be transmitted by IN_ORDER Tx?
> Virtio enqueue logic:
> xmit_cleanup(used descs)
> for (each xmit mbuf b) {
> if (b can inorder xmit) {
> add mbuf b to inorder burst list
> continue
> } else {
> xmit inorder burst list
> xmit mbuf b with normal xmit
> }
> }
> if (inorder burst list not empty) {
> xmit inorder burst list
> }
> update_avail_ring()
>
> Signed-off-by: Marvin Liu <yong.liu at intel.com>
>
Other than above clarification needed, the code looks good to me.
Thanks,
Maxime
More information about the dev
mailing list