avf: Handle chain buffer in TX properly 18/25518/1
authorSteven Luong <sluong@cisco.com>
Thu, 13 Feb 2020 17:27:38 +0000 (09:27 -0800)
committersteven luong <sluong@cisco.com>
Thu, 27 Feb 2020 16:30:05 +0000 (16:30 +0000)
commitc7a00641f8004d87d38a1092ab16da8f49bd6cf2
treed55ce66377c846c7fa58d18f1118e49879eea907
parentde1aa39a56ce1ec8daabe189e04bb5ad4c0aaa78
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
Ticket: VPP-1843

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Id7c872f3e39e09f3566aa63f3cdba8f40736d508
(cherry picked from commit f7ab7b2d9bc0f42c1e766d22d49dd0dc4f28abb6)
src/plugins/avf/avf.h
src/plugins/avf/output.c