avf: Handle chain buffer in TX properly 19/25119/4
authorSteven Luong <sluong@cisco.com>
Thu, 13 Feb 2020 17:27:38 +0000 (09:27 -0800)
committerDave Barach <openvpp@barachs.net>
Tue, 25 Feb 2020 22:37:44 +0000 (22:37 +0000)
commitf7ab7b2d9bc0f42c1e766d22d49dd0dc4f28abb6
tree4bbea14cfb291fb5754a87c1575e65edd68d704c
parent2da39718f560478678caacccd198ee4c0c9673c3
avf: Handle chain buffer in TX properly

For chain buffer, need to traverse b->next_buffer to transmit all buffers
in the chain. Only set EOP at the last descriptor in the chain to signal
this is a chain descriptor.

Introduce slow path to handle ring wrap. This is needed because chain
buffer may consist of multiple pieces and it may span from near the end of
the ring to the beginning of the ring.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Id7c872f3e39e09f3566aa63f3cdba8f40736d508
src/plugins/avf/avf.h
src/plugins/avf/output.c